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