# file : libbuild2/build/script/parser+for.test.testscript # license : MIT; see accompanying LICENSE file : form-1 : : for x: ... : { : for : { : no-var : $* <>EOE != 0 for cmd end EOI buildfile:11:4: error: expected variable name instead of EOE : untyped : $* <>EOO for x: a b cmd $x end EOI cmd a cmd b EOO : null : $* <:'' for x: [null] cmd $x end EOI : empty : $* <:'' for x: cmd $x end EOI : expansion : $* <>EOO vs = a b for x: $vs cmd $x end EOI cmd a cmd b EOO : typed-value : $* <>~%EOO% for x: [dir_paths] a b cmd $x end EOI %cmd (a/|'a\\')% %cmd (b/|'b\\')% EOO : typed-var : $* <>~%EOO% for [dir_path] x: a b cmd $x end EOI %cmd (a/|'a\\')% %cmd (b/|'b\\')% EOO : type-mismatch : $* <>EOE != 0 for [string] x: [dir_paths] a b cmd $x end EOI buildfile:11:1: error: conflicting variable x type string and value type dir_path EOE : defined-var : $* <>EOO x = x for x: a b cmd $x end cmd $x EOI cmd a cmd b cmd b EOO } : end : { : without-end : $* <>EOE != 0 for x: a b cmd EOI buildfile:13:1: error: expected closing 'end' EOE } : elif : { : without-if : $* <>EOE != 0 for x: a b elif true cmd end end EOI buildfile:12:3: error: 'elif' without preceding 'if' EOE } : nested : { $* -l -r <>EOO for x: a b cmd1 $x # 1 if ($x == "a") # 2 cmd2 # 3 for y: x y cmd3 # 4 end else cmd4 # 5 end cmd5 # 6 end cmd6 # 7 EOI cmd1 a # 1 i1 ? true # 2 i1 cmd2 # 3 i1 cmd3 # 4 i1 i1 cmd3 # 4 i1 i2 cmd5 # 6 i1 cmd1 b # 1 i2 ? false # 2 i2 cmd4 # 5 i2 cmd5 # 6 i2 cmd6 # 7 EOO } : contained : { : eos : $* <>EOE != 0 for x: EOI buildfile:12:1: error: expected closing 'end' EOE } }