call_rule_line: valid: - rule Test - rule :Test - "rule &package:Test" - rule $var invalid: - rule - "rule &package:$var" - rule $var:Test - rule :$var if_block_begin: valid: - "if $Var" - "if 1" - 'if "abc"' - "if 1.0" - "if A" - if true - if false - "if +A" - "if -A" - "if ?A" invalid: - "if $$" conditional_block_end: valid: - "end" else_block: valid: - | else rule Test - | else if_block: valid: - | if $Var rule Test end - | if $Var rule Test1 rule Test2 rule Test3 end - | if $Var if $Var rule Test end end - | if $Var rule Test1 else rule Test2 end - | if $Var rule Test else end - | if $a if $b rule A else rule B end else rule C end invalid: - | if $Var rule Test - | else rule Test end case_block_begin: valid: - case $Var - case 1 - case 1.0 - case 'data.txt' - case "string" - case +A - case -A - case ?A when_block_begin: valid: - when $Var - when 1 - when 1.0 - when 'data.txt' - when "string" - when +A - when -A - when ?A - when @ - when * - "when !A" - when ^A when_block: valid: - when $Var - | when $Var rule Test - | when $Var rule Test1 rule Test2 rule Test3 case_block: valid: - | case $Var end - | case $Var when 1 rule Test end - | case $Var when 1 rule Test1 rule Test2 rule Test3 end - | case $Var when 1 rule Test1 when 2 rule Test2 end - | case $Var when 1 rule Test1 when 2 rule Test2 else rule Test3 end - | case $Var when 1 rule Test1 when 2 rule Test2 else end flow_element: valid: - rule Test - | if $Var rule Test end - | case $Var when 1 rule Test1 when 2 rule Test2 end assignment: valid: - "$X := 1" - "$Var := true" - "$X := $Y" - "$X := 1 + 1" - "$X := true || false || true" - "$X := ($Y := 1)"