xref: /netbsd-src/tests/usr.bin/indent/psym_do.c (revision 7d62b00eb9ad855ffcd7da46b41e23feb5476fac)
1 /* $NetBSD: psym_do.c,v 1.4 2022/04/24 10:36:37 rillig Exp $ */
2 
3 /*
4  * Tests for the parser symbol psym_do, which represents the state after
5  * reading the token 'do', now waiting for the statement of the loop body.
6  */
7 
8 //indent input
9 void function(void) {
10 	do stmt(); while (0);
11 	do {} while (0);
12 }
13 //indent end
14 
15 //indent run
16 void
17 function(void)
18 {
19 	do
20 		stmt();
21 	while (0);
22 	do {
23 	} while (0);
24 }
25 //indent end
26 
27 
28 /*
29  * The keyword 'do' is followed by a statement, as opposed to 'while', which
30  * is followed by a parenthesized expression.
31  */
32 //indent input
33 void
34 function(void)
35 {
36 	do(var)--;while(var>0);
37 }
38 //indent end
39 
40 //indent run
41 void
42 function(void)
43 {
44 	do
45 		(var)--;
46 	while (var > 0);
47 }
48 //indent end
49