# file : tests/eval/ternary.testscript # license : MIT; see accompanying LICENSE file # Test the ternary operator (eval-ternary). .include ../common.testscript $* <'print (true ? foo : bar)' >'foo' : true $* <'print (false ? foo : bar)' >'bar' : false : associativity : { $* <'print (true ? false ? foo : bar : baz)' >'bar' : middle $* <'print (true ? foo : true ? bar : baz)' >'foo' : right $* <'print (true ? false ? foo : bar : true ? baz : fox)' >'bar' : both $* <'print (false ? foo ? false ? bar : false : baz : fox)' >'fox' : chain } : short-circuit : { $* <'print (false ? $bogus() : foo)' >'foo' : middle $* <'print (true ? foo : $bogus())' >'foo' : right # @@ TODO: complate pre-parse support in parse_name(). # #$* <'print (true ? foo : $out_base/{foo bar})' >'foo' : pre-parse }