psym_do.c revision 1.4 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