@@ -769,6 +769,13 @@ describe "Parser" do
769
769
it_parses " macro foo;%var;end" , Macro .new(" foo" , [] of Arg , Expressions .from([MacroVar .new(" var" ), MacroLiteral .new(" ;" )] of ASTNode ))
770
770
it_parses " macro foo;%var{1, x} = hello;end" , Macro .new(" foo" , [] of Arg , Expressions .from([MacroVar .new(" var" , [1 .int32, " x" .var] of ASTNode ), MacroLiteral .new(" = hello;" )] of ASTNode ))
771
771
772
+ [" if" , " unless" ].each do |keyword |
773
+ it_parses " macro foo;%var #{ keyword } true;end" , Macro .new(" foo" , [] of Arg , Expressions .from([MacroVar .new(" var" ), " #{ keyword } true;" .macro_literal] of ASTNode ))
774
+ it_parses " macro foo;var #{ keyword } true;end" , Macro .new(" foo" , [] of Arg , " var #{ keyword } true;" .macro_literal)
775
+ it_parses " macro foo;#{ keyword } %var;true;end;end" , Macro .new(" foo" , [] of Arg , Expressions .from([" #{ keyword } " .macro_literal, MacroVar .new(" var" ), " ;true;" .macro_literal, " end;" .macro_literal] of ASTNode ))
776
+ it_parses " macro foo;#{ keyword } var;true;end;end" , Macro .new(" foo" , [] of Arg , Expressions .from([" #{ keyword } var;true;" .macro_literal, " end;" .macro_literal] of ASTNode ))
777
+ end
778
+
772
779
it_parses " a = 1; pointerof(a)" , [Assign .new(" a" .var, 1 .int32), PointerOf .new(" a" .var)]
773
780
it_parses " pointerof(@a)" , PointerOf .new(" @a" .instance_var)
774
781
it_parses " a = 1; pointerof(a)" , [Assign .new(" a" .var, 1 .int32), PointerOf .new(" a" .var)]
0 commit comments