1 1.4 rillig /* $NetBSD: psym_do.c,v 1.4 2022/04/24 10:36:37 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.1 rillig */ 7 1.1 rillig 8 1.3 rillig //indent input 9 1.4 rillig void function(void) { 10 1.4 rillig do stmt(); while (0); 11 1.4 rillig do {} while (0); 12 1.4 rillig } 13 1.3 rillig //indent end 14 1.1 rillig 15 1.4 rillig //indent run 16 1.4 rillig void 17 1.4 rillig function(void) 18 1.4 rillig { 19 1.4 rillig do 20 1.4 rillig stmt(); 21 1.4 rillig while (0); 22 1.4 rillig do { 23 1.4 rillig } while (0); 24 1.4 rillig } 25 1.4 rillig //indent end 26 1.4 rillig 27 1.4 rillig 28 1.4 rillig /* 29 1.4 rillig * The keyword 'do' is followed by a statement, as opposed to 'while', which 30 1.4 rillig * is followed by a parenthesized expression. 31 1.4 rillig */ 32 1.4 rillig //indent input 33 1.4 rillig void 34 1.4 rillig function(void) 35 1.4 rillig { 36 1.4 rillig do(var)--;while(var>0); 37 1.4 rillig } 38 1.4 rillig //indent end 39 1.4 rillig 40 1.4 rillig //indent run 41 1.4 rillig void 42 1.4 rillig function(void) 43 1.4 rillig { 44 1.4 rillig do 45 1.4 rillig (var)--; 46 1.4 rillig while (var > 0); 47 1.4 rillig } 48 1.4 rillig //indent end 49