fix array in if_false

This commit is contained in:
Torsten Ruger 2015-09-19 17:11:15 +03:00
parent dab32bc307
commit 8e07a7568f
7 changed files with 99 additions and 94 deletions

View File

@ -40,7 +40,7 @@ module Parser
rule(:if => simple(:if), :conditional => simple(:conditional),
:if_true => {:expressions => sequence(:if_true) , :else => simple(:else) },
:if_false => {:expressions => sequence(:if_false) , :end => simple(:e) }) do
s(:if , s(:condition, conditional), s(:if_true, *if_true), s(:if_false , if_false))
s(:if , s(:condition, conditional), s(:if_true, *if_true), s(:if_false , *if_false))
end
rule(:if => simple(:if), :conditional => simple(:conditional),

View File

@ -23,6 +23,7 @@ s(:expressions,
s(:assign,
s(:name, :isit),
s(:int, 42))),
s(:if_false, [s(:assign,
s(:if_false,
s(:assign,
s(:name, :maybenot),
s(:int, 667))]))))))
s(:int, 667))))))))

View File

@ -10,4 +10,5 @@ s(:expressions,
s(:int, 0)),
s(:if_true,
s(:int, 42)),
s(:if_false, [s(:int, 667)])))
s(:if_false,
s(:int, 667))))

View File

@ -17,9 +17,9 @@ s(:expressions,
s(:int, 3)),
s(:receiver,
s(:module, "Object")))),
s(:if_false, [s(:call,
s(:if_false, s(:call,
s(:name, :new),
s(:arguments,
s(:int, 33)),
s(:receiver,
s(:name, :var)))])))
s(:name, :var))))))

View File

@ -19,6 +19,7 @@ s(:expressions,
s(:assign,
s(:name, :isit),
s(:int, 42))),
s(:if_false, [s(:assign,
s(:if_false,
s(:assign,
s(:name, :maybenot),
s(:int, 667))])))))
s(:int, 667)))))))

View File

@ -20,5 +20,6 @@ s(:expressions,
s(:if_true,
s(:return,
s(:int, 10))),
s(:if_false, [s(:return,
s(:int, 20))])))))
s(:if_false,
s(:return,
s(:int, 20)))))))

View File

@ -22,6 +22,7 @@ s(:expressions,
s(:assign,
s(:name, :isit),
s(:int, 42))),
s(:if_false, [s(:assign,
s(:if_false,
s(:assign,
s(:name, :maybenot),
s(:int, 667))]))))))
s(:int, 667))))))))