1*abcf191eSrillig /* $NetBSD: lsym_do.c,v 1.10 2023/06/05 09:41:40 rillig Exp $ */ 29ae26de1Srillig 39ae26de1Srillig /* 49ae26de1Srillig * Tests for the token lsym_do, which represents the keyword 'do' that starts 59ae26de1Srillig * a 'do-while' loop. 69ae26de1Srillig * 79ae26de1Srillig * See also: 89ae26de1Srillig * psym_do.c 99ae26de1Srillig * psym_do_stmt.c 109ae26de1Srillig * C11 6.8.5 "Iteration statements" 119ae26de1Srillig * C11 6.8.5.2 "The 'do' statement" 129ae26de1Srillig */ 139ae26de1Srillig 1447306038Srillig //indent input 15b60cb68fSrillig void function(void)16b60cb68fSrilligfunction(void) 17b60cb68fSrillig { 18b60cb68fSrillig do stmt();while(cond); 19b60cb68fSrillig } 2047306038Srillig //indent end 219ae26de1Srillig 22b60cb68fSrillig //indent run 23b60cb68fSrillig void function(void)24b60cb68fSrilligfunction(void) 25b60cb68fSrillig { 26b60cb68fSrillig do 27b60cb68fSrillig stmt(); 28b60cb68fSrillig while (cond); 29b60cb68fSrillig } 30b60cb68fSrillig //indent end 3144c1f7b6Srillig 3244c1f7b6Srillig 3344c1f7b6Srillig //indent input 3444c1f7b6Srillig void else_do(int i)3544c1f7b6Srilligelse_do(int i) 3644c1f7b6Srillig { 3744c1f7b6Srillig if (i > 0) return; else do {} while (0); 3844c1f7b6Srillig } 3944c1f7b6Srillig //indent end 4044c1f7b6Srillig 4144c1f7b6Srillig //indent run 4244c1f7b6Srillig void else_do(int i)4344c1f7b6Srilligelse_do(int i) 4444c1f7b6Srillig { 4544c1f7b6Srillig if (i > 0) 4644c1f7b6Srillig return; 4744c1f7b6Srillig else 4844c1f7b6Srillig do { 4944c1f7b6Srillig } while (0); 5044c1f7b6Srillig } 5144c1f7b6Srillig //indent end 52ff059387Srillig 53ff059387Srillig 54ff059387Srillig //indent input 55ff059387Srillig void variants(void)56ff059387Srilligvariants(void) 57ff059387Srillig { 58ff059387Srillig do stmt(); while (0); 59ff059387Srillig 60ff059387Srillig do { stmt(); } while (0); 61ff059387Srillig 62ff059387Srillig do /* comment */ stmt(); while (0); 63ff059387Srillig 64ff059387Srillig while (0) do {} while (0); 65ff059387Srillig } 66ff059387Srillig //indent end 67ff059387Srillig 68ff059387Srillig //indent run 69ff059387Srillig void variants(void)70ff059387Srilligvariants(void) 71ff059387Srillig { 72ff059387Srillig do 73ff059387Srillig stmt(); 74ff059387Srillig while (0); 75ff059387Srillig 76ff059387Srillig do { 77ff059387Srillig stmt(); 78ff059387Srillig } while (0); 79ff059387Srillig 80ff059387Srillig do /* comment */ 81ff059387Srillig stmt(); 82ff059387Srillig while (0); 83ff059387Srillig 84ff059387Srillig while (0) 85ff059387Srillig do { 86ff059387Srillig } while (0); 87ff059387Srillig } 88ff059387Srillig //indent end 899bf98238Srillig 909bf98238Srillig //indent run -bl 919bf98238Srillig void variants(void)929bf98238Srilligvariants(void) 939bf98238Srillig { 949bf98238Srillig do 959bf98238Srillig stmt(); 969bf98238Srillig while (0); 979bf98238Srillig 989bf98238Srillig do 999bf98238Srillig { 1009bf98238Srillig stmt(); 1019bf98238Srillig } while (0); 1029bf98238Srillig 1039bf98238Srillig do /* comment */ 1049bf98238Srillig stmt(); 1059bf98238Srillig while (0); 1069bf98238Srillig 1079bf98238Srillig while (0) 1089bf98238Srillig do 1099bf98238Srillig { 1109bf98238Srillig } while (0); 1119bf98238Srillig } 1129bf98238Srillig //indent end 113452673c1Srillig 114452673c1Srillig 115452673c1Srillig /* Ensure that the 'do' starts a line. */ 116452673c1Srillig //indent input 117452673c1Srillig { 118452673c1Srillig /* */ do {} while (false); 119452673c1Srillig 120452673c1Srillig word do {} while (false); 121452673c1Srillig 122452673c1Srillig label: do {} while (false); 123452673c1Srillig } 124452673c1Srillig //indent end 125452673c1Srillig 126452673c1Srillig //indent run 127452673c1Srillig { 128452673c1Srillig /* */ 129452673c1Srillig do { 130452673c1Srillig } while (false); 131452673c1Srillig 132452673c1Srillig word 133452673c1Srillig do { 134452673c1Srillig } while (false); 135452673c1Srillig 136452673c1Srillig label: do { 137452673c1Srillig } while (false); 138452673c1Srillig } 139452673c1Srillig //indent end 140452673c1Srillig 141*abcf191eSrillig //indent run-equals-prev-output -sob 142