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