# file : libbuild2/test/script/parser+while.test.testscript # license : MIT; see accompanying LICENSE file : while : { : true : $* <>EOO while ($v != "aa") cmd "$v" v = "$(v)a" end EOI ? true cmd '' ? true cmd a ? false EOO : false : $* <>EOO while ($v == "aa") cmd "$v" v = "$(v)a" end EOI ? false EOO : without-command : $* <>EOE != 0 while cmd end EOI testscript:1:6: error: missing program EOE : after-semi : $* -s <>EOO cmd1; while ($v != "aa") cmd2 "$v" v = "$(v)a" end EOI { { cmd1 ? true cmd2 '' ? true cmd2 a ? false } } EOO : setup : $* -s <>EOO +while ($v != "aa") cmd2 "$v" v = "$(v)a" end EOI { ? true +cmd2 '' ? true +cmd2 a ? false } EOO : tdown : $* -s <>EOO -while ($v != "aa") cmd2 "$v" v = "$(v)a" end EOI { ? true -cmd2 '' ? true -cmd2 a ? false } EOO } : end : { : without-end : $* <>EOE != 0 while true cmd EOI testscript:3:1: error: expected closing 'end' EOE } : elif : { : without-if : $* <>EOE != 0 while false elif true cmd end end EOI testscript:2:3: error: 'elif' without preceding 'if' EOE } : nested : { $* -l -r <>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; cmd6 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 cmd6 # 9 EOO } : contained : { : semi : $* <>EOE != 0 while cmd; cmd end EOI testscript:2:3: error: ';' inside 'while' EOE : colon-leading : $* <>EOE != 0 while : foo cmd end EOI testscript:2:3: error: description inside 'while' EOE : colon-trailing : $* <>EOE != 0 while cmd : foo end EOI testscript:2:3: error: description inside 'while' EOE : eos : $* <>EOE != 0 while EOI testscript:2:1: error: expected closing 'end' EOE : scope : $* <>EOE != 0 while cmd { } end EOI testscript:3:3: error: expected closing 'end' EOE : setup : $* <>EOE != 0 while +cmd end EOI testscript:2:3: error: setup command inside 'while' EOE : tdown : $* <>EOE != 0 while -cmd end EOI testscript:2:3: error: teardown command inside 'while' EOE } : var : $* <>EOO while ($v1 != "a") v1 = "$(v1)a" v2 = "$v1" end cmd $v1 EOI ? true ? false cmd a EOO : leading-and-trailing-description : $* <>EOE != 0 : foo while false cmd end : bar EOI testscript:4:1: error: both leading and trailing descriptions EOE