11.5Srillig/* $NetBSD: lsym_question.c,v 1.5 2023/05/15 10:13:40 rillig Exp $ */ 21.1Srillig 31.1Srillig/* 41.1Srillig * Tests for the token lsym_question, which represents the '?' in a '?:' 51.1Srillig * conditional expression. 61.1Srillig */ 71.1Srillig 81.4Srillig//indent input 91.2Srilligconst char *result = cond ? "then" : "else"; 101.2Srillig 111.2Srilligconst char *multi = cond1 ? "cond1" : cond2 ? "cond2" : cond3 ? "cond3" : ""; 121.4Srillig//indent end 131.2Srillig 141.4Srillig//indent run-equals-input -di0 151.2Srillig 161.2Srillig 171.2Srillig/* 181.2Srillig * To make them easier to read, conditional expressions can be split into 191.2Srillig * multiple lines. 201.2Srillig */ 211.4Srillig//indent input 221.2Srilligconst char *separate_lines = cond 231.2Srillig ? "then" 241.2Srillig : "else"; 251.4Srillig//indent end 261.2Srillig 271.4Srillig//indent run -di0 281.2Srilligconst char *separate_lines = cond 291.2Srillig// $ XXX: Continuation lines in expressions should be indented, even in column 1. 301.2Srillig? "then" 311.2Srillig: "else"; 321.4Srillig//indent end 331.2Srillig 341.2Srillig 351.2Srillig/* 361.2Srillig * In functions, conditional expressions are indented as intended. 371.2Srillig */ 381.4Srillig//indent input 391.2Srilligvoid 401.2Srilligfunction(void) 411.2Srillig{ 421.2Srillig return cond 431.2Srillig ? "then" 441.2Srillig : "else"; 451.2Srillig} 461.4Srillig//indent end 471.1Srillig 481.4Srillig//indent run-equals-input 491.2Srillig 501.2Srillig 511.2Srillig/* 521.2Srillig * In functions, conditional expressions are indented as intended. 531.2Srillig */ 541.4Srillig//indent input 551.2Srilligvoid 561.2Srilligfunction(void) 571.2Srillig{ 581.2Srillig const char *branch = cond 591.5Srillig ? "then" 601.5Srillig : "else"; 611.5Srillig 621.5Srillig const char *multiple_branches = cond1 631.5Srillig ? "then 1" 641.5Srillig : cond2 651.5Srillig ? "then 2" 661.5Srillig : "else"; 671.5Srillig 681.5Srillig const char *condensed = cond1 ? "condensed 1" 691.5Srillig : cond2 ? "condensed 2" 701.5Srillig : "condensed else"; 711.2Srillig} 721.4Srillig//indent end 731.2Srillig 741.4Srillig//indent run-equals-input -di0 75