# file : libbuild2/build/script/parser+while.test.testscript # license : MIT; see accompanying LICENSE file : while : { : true : $* <<EOI >>EOO while ($v != "aa") cmd "$v" v = "$(v)a" end EOI ? true cmd '' ? true cmd a ? false EOO : false : $* <<EOI >>EOO while ($v == "aa") cmd "$v" v = "$(v)a" end EOI ? false EOO : without-command : $* <<EOI 2>>EOE != 0 while cmd end EOI buildfile:11:6: error: missing program EOE } : end : { : without-end : $* <<EOI 2>>EOE != 0 while true cmd EOI buildfile:13:1: error: expected closing 'end' EOE } : elif : { : without-if : $* <<EOI 2>>EOE != 0 while false elif true cmd end end EOI buildfile:12:3: error: 'elif' without preceding 'if' EOE } : nested : { $* -l -r <<EOI >>EOO while ($v != "aa") # 1 cmd1 "$v" # 2 if ($v == "a") # 3 cmd2 # 4 while ($v2 != "$v") # 5 cmd3 # 6 v2=$v end else cmd4 # 7 end cmd5 # 8 v = "$(v)a" end EOI ? true # 1 i1 cmd1 '' # 2 i1 ? false # 3 i1 cmd4 # 7 i1 cmd5 # 8 i1 ? true # 1 i2 cmd1 a # 2 i2 ? true # 3 i2 cmd2 # 4 i2 ? true # 5 i2 i1 cmd3 # 6 i2 i1 ? false # 5 i2 i2 cmd5 # 8 i2 ? false # 1 i3 EOO } : contained : { : eos : $* <<EOI 2>>EOE != 0 while EOI buildfile:12:1: error: expected closing 'end' EOE } : var : $* <<EOI >>EOO while ($v1 != "a") v1 = "$(v1)a" v2 = "$v1" end cmd $v1 EOI ? true ? false cmd a EOO