xref: /netbsd-src/tests/usr.bin/indent/psym_do_stmt.c (revision e9e76ef7a149bd6fcd92f4c4168cba2aa2619461)
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