1 1.3 rillig /* $NetBSD: psym_if_expr_stmt_else.c,v 1.3 2022/04/23 09:01:03 rillig Exp $ */ 2 1.1 rillig 3 1.1 rillig /* 4 1.1 rillig * Tests for the parser symbol psym_if_expr_stmt_else, which represents the 5 1.1 rillig * parser state after reading the keyword 'if', the controlling expression, 6 1.3 rillig * the statement of the 'then' branch and the keyword 'else'. 7 1.3 rillig * 8 1.3 rillig * If the next token is an 'if', the formatting depends on the option '-ei' or 9 1.3 rillig * '-nei'. Any other lookahead token completes the 'if' statement. 10 1.1 rillig */ 11 1.1 rillig 12 1.1 rillig #indent input 13 1.3 rillig void 14 1.3 rillig example(_Bool cond) 15 1.3 rillig { 16 1.3 rillig if (cond) {} 17 1.3 rillig else if (cond) {} 18 1.3 rillig else if (cond) i++; 19 1.3 rillig else {} 20 1.3 rillig } 21 1.1 rillig #indent end 22 1.1 rillig 23 1.3 rillig #indent run 24 1.3 rillig void 25 1.3 rillig example(_Bool cond) 26 1.3 rillig { 27 1.3 rillig if (cond) { 28 1.3 rillig } else if (cond) { 29 1.3 rillig } else if (cond) 30 1.3 rillig i++; 31 1.3 rillig else { 32 1.3 rillig } 33 1.3 rillig } 34 1.3 rillig #indent end 35 1.3 rillig 36 1.3 rillig /* 37 1.3 rillig * Combining the options '-bl' (place brace on the left margin) and '-ce' 38 1.3 rillig * (cuddle else) looks strange, but is technically correct. 39 1.3 rillig */ 40 1.3 rillig #indent run -bl 41 1.3 rillig void 42 1.3 rillig example(_Bool cond) 43 1.3 rillig { 44 1.3 rillig if (cond) 45 1.3 rillig { 46 1.3 rillig } else if (cond) 47 1.3 rillig { 48 1.3 rillig } else if (cond) 49 1.3 rillig i++; 50 1.3 rillig else 51 1.3 rillig { 52 1.3 rillig } 53 1.3 rillig } 54 1.3 rillig #indent end 55 1.3 rillig 56 1.3 rillig #indent run -bl -nce 57 1.3 rillig void 58 1.3 rillig example(_Bool cond) 59 1.3 rillig { 60 1.3 rillig if (cond) 61 1.3 rillig { 62 1.3 rillig } 63 1.3 rillig else if (cond) 64 1.3 rillig { 65 1.3 rillig } 66 1.3 rillig else if (cond) 67 1.3 rillig i++; 68 1.3 rillig else 69 1.3 rillig { 70 1.3 rillig } 71 1.3 rillig } 72 1.3 rillig #indent end 73 1.3 rillig 74 1.3 rillig /* 75 1.3 rillig * Adding the option '-nei' (do not join 'else if') expands the code even 76 1.3 rillig * more. 77 1.3 rillig */ 78 1.3 rillig #indent run -bl -nce -nei 79 1.3 rillig void 80 1.3 rillig example(_Bool cond) 81 1.3 rillig { 82 1.3 rillig if (cond) 83 1.3 rillig { 84 1.3 rillig } 85 1.3 rillig else 86 1.3 rillig if (cond) 87 1.3 rillig { 88 1.3 rillig } 89 1.3 rillig else 90 1.3 rillig if (cond) 91 1.3 rillig i++; 92 1.3 rillig else 93 1.3 rillig { 94 1.3 rillig } 95 1.3 rillig } 96 1.3 rillig #indent end 97