psym_do_stmt.c revision 1.5 1 /* $NetBSD: psym_do_stmt.c,v 1.5 2025/01/07 03:55:00 rillig Exp $ */
2
3 /*
4 * Tests for the parser symbol psym_do_stmt, which represents the state after
5 * reading the keyword 'do' and the loop body, now waiting for the keyword
6 * 'while' and the controlling expression.
7 */
8
9 //indent input
10 void function(void) {
11 do stmt(); while (0);
12 do { stmt(); } while (0);
13 do /* comment */ stmt(); while (0);
14 }
15 //indent end
16
17 //indent run
18 void
19 function(void)
20 {
21 do
22 stmt();
23 while (0);
24 do {
25 stmt();
26 } while (0);
27 do /* comment */
28 stmt();
29 while (0);
30 }
31 //indent end
32
33
34 //indent input
35 {
36 if (cond) do stmt; while (cond); stmt;
37 }
38 //indent end
39
40 //indent run
41 {
42 if (cond)
43 do
44 stmt;
45 while (cond);
46 //$ Ensure that this statement is indented the same as the 'if' above.
47 stmt;
48 }
49 //indent end
50