Home | History | Annotate | Line # | Download | only in indent
lsym_do.c revision 1.6
      1 /* $NetBSD: lsym_do.c,v 1.6 2023/05/13 06:52:48 rillig Exp $ */
      2 
      3 /*
      4  * Tests for the token lsym_do, which represents the keyword 'do' that starts
      5  * a 'do-while' loop.
      6  *
      7  * See also:
      8  *	psym_do.c
      9  *	psym_do_stmt.c
     10  *	C11 6.8.5		"Iteration statements"
     11  *	C11 6.8.5.2		"The 'do' statement"
     12  */
     13 
     14 //indent input
     15 void
     16 function(void)
     17 {
     18 	do stmt();while(cond);
     19 }
     20 //indent end
     21 
     22 //indent run
     23 void
     24 function(void)
     25 {
     26 	do
     27 		stmt();
     28 	while (cond);
     29 }
     30 //indent end
     31 
     32 
     33 //indent input
     34 void
     35 else_do(int i)
     36 {
     37 	if (i > 0) return; else do {} while (0);
     38 }
     39 //indent end
     40 
     41 //indent run
     42 void
     43 else_do(int i)
     44 {
     45 	if (i > 0)
     46 		return;
     47 	else
     48 		do {
     49 		} while (0);
     50 }
     51 //indent end
     52 
     53 
     54 //indent input
     55 void
     56 variants(void)
     57 {
     58 	do stmt(); while (0);
     59 
     60 	do { stmt(); } while (0);
     61 
     62 	do /* comment */ stmt(); while (0);
     63 
     64 	while (0) do {} while (0);
     65 }
     66 //indent end
     67 
     68 //indent run
     69 void
     70 variants(void)
     71 {
     72 	do
     73 		stmt();
     74 	while (0);
     75 
     76 	do {
     77 		stmt();
     78 	} while (0);
     79 
     80 	do			/* comment */
     81 		stmt();
     82 	while (0);
     83 
     84 	while (0)
     85 		do {
     86 		} while (0);
     87 }
     88 //indent end
     89