fix array in if_false
This commit is contained in:
parent
dab32bc307
commit
8e07a7568f
@ -40,7 +40,7 @@ module Parser
|
|||||||
rule(:if => simple(:if), :conditional => simple(:conditional),
|
rule(:if => simple(:if), :conditional => simple(:conditional),
|
||||||
:if_true => {:expressions => sequence(:if_true) , :else => simple(:else) },
|
:if_true => {:expressions => sequence(:if_true) , :else => simple(:else) },
|
||||||
:if_false => {:expressions => sequence(:if_false) , :end => simple(:e) }) do
|
: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
|
end
|
||||||
|
|
||||||
rule(:if => simple(:if), :conditional => simple(:conditional),
|
rule(:if => simple(:if), :conditional => simple(:conditional),
|
||||||
|
@ -8,21 +8,22 @@ class Ifi
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- -- --
|
-- -- --
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:class, :Ifi,
|
s(:class, :Ifi,
|
||||||
s(:derives, nil),
|
s(:derives, nil),
|
||||||
s(:function, :int,
|
s(:function, :int,
|
||||||
s(:name, :ofthen),
|
s(:name, :ofthen),
|
||||||
s(:parameters,
|
s(:parameters,
|
||||||
s(:field, :int, :n)),
|
s(:field, :int, :n)),
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:if,
|
s(:if,
|
||||||
s(:condition,
|
s(:condition,
|
||||||
s(:int, 0)),
|
s(:int, 0)),
|
||||||
s(:if_true,
|
s(:if_true,
|
||||||
s(:assign,
|
s(:assign,
|
||||||
s(:name, :isit),
|
s(:name, :isit),
|
||||||
s(:int, 42))),
|
s(:int, 42))),
|
||||||
s(:if_false, [s(:assign,
|
s(:if_false,
|
||||||
s(:name, :maybenot),
|
s(:assign,
|
||||||
s(:int, 667))]))))))
|
s(:name, :maybenot),
|
||||||
|
s(:int, 667))))))))
|
||||||
|
@ -4,10 +4,11 @@ else
|
|||||||
667
|
667
|
||||||
end
|
end
|
||||||
-- -- --
|
-- -- --
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:if,
|
s(:if,
|
||||||
s(:condition,
|
s(:condition,
|
||||||
s(:int, 0)),
|
s(:int, 0)),
|
||||||
s(:if_true,
|
s(:if_true,
|
||||||
s(:int, 42)),
|
s(:int, 42)),
|
||||||
s(:if_false, [s(:int, 667)])))
|
s(:if_false,
|
||||||
|
s(:int, 667))))
|
||||||
|
@ -4,22 +4,22 @@ else
|
|||||||
var.new(33)
|
var.new(33)
|
||||||
end
|
end
|
||||||
-- -- --
|
-- -- --
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:if,
|
s(:if,
|
||||||
s(:condition,
|
s(:condition,
|
||||||
s(:operator, ">",
|
s(:operator, ">",
|
||||||
s(:int, 3),
|
s(:int, 3),
|
||||||
s(:name, :var))),
|
s(:name, :var))),
|
||||||
s(:if_true,
|
s(:if_true,
|
||||||
s(:call,
|
s(:call,
|
||||||
s(:name, :initialize),
|
s(:name, :initialize),
|
||||||
s(:arguments,
|
s(:arguments,
|
||||||
s(:int, 3)),
|
s(:int, 3)),
|
||||||
s(:receiver,
|
s(:receiver,
|
||||||
s(:module, "Object")))),
|
s(:module, "Object")))),
|
||||||
s(:if_false, [s(:call,
|
s(:if_false, s(:call,
|
||||||
s(:name, :new),
|
s(:name, :new),
|
||||||
s(:arguments,
|
s(:arguments,
|
||||||
s(:int, 33)),
|
s(:int, 33)),
|
||||||
s(:receiver,
|
s(:receiver,
|
||||||
s(:name, :var)))])))
|
s(:name, :var))))))
|
||||||
|
@ -6,19 +6,20 @@ ref ofthen(int n)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- -- --
|
-- -- --
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:function, :ref,
|
s(:function, :ref,
|
||||||
s(:name, :ofthen),
|
s(:name, :ofthen),
|
||||||
s(:parameters,
|
s(:parameters,
|
||||||
s(:field, :int, :n)),
|
s(:field, :int, :n)),
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:if,
|
s(:if,
|
||||||
s(:condition,
|
s(:condition,
|
||||||
s(:int, 0)),
|
s(:int, 0)),
|
||||||
s(:if_true,
|
s(:if_true,
|
||||||
s(:assign,
|
s(:assign,
|
||||||
s(:name, :isit),
|
s(:name, :isit),
|
||||||
s(:int, 42))),
|
s(:int, 42))),
|
||||||
s(:if_false, [s(:assign,
|
s(:if_false,
|
||||||
s(:name, :maybenot),
|
s(:assign,
|
||||||
s(:int, 667))])))))
|
s(:name, :maybenot),
|
||||||
|
s(:int, 667)))))))
|
||||||
|
@ -6,19 +6,20 @@ int retvar(int n)
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- -- --
|
-- -- --
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:function, :int,
|
s(:function, :int,
|
||||||
s(:name, :retvar),
|
s(:name, :retvar),
|
||||||
s(:parameters,
|
s(:parameters,
|
||||||
s(:field, :int, :n)),
|
s(:field, :int, :n)),
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:if,
|
s(:if,
|
||||||
s(:condition,
|
s(:condition,
|
||||||
s(:operator, ">",
|
s(:operator, ">",
|
||||||
s(:name, :n),
|
s(:name, :n),
|
||||||
s(:int, 5))),
|
s(:int, 5))),
|
||||||
s(:if_true,
|
s(:if_true,
|
||||||
s(:return,
|
s(:return,
|
||||||
s(:int, 10))),
|
s(:int, 10))),
|
||||||
s(:if_false, [s(:return,
|
s(:if_false,
|
||||||
s(:int, 20))])))))
|
s(:return,
|
||||||
|
s(:int, 20)))))))
|
||||||
|
@ -8,20 +8,21 @@ module Foo
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
-- -- --
|
-- -- --
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:module, :Foo,
|
s(:module, :Foo,
|
||||||
s(:function, :ref,
|
s(:function, :ref,
|
||||||
s(:name, :ofthen),
|
s(:name, :ofthen),
|
||||||
s(:parameters,
|
s(:parameters,
|
||||||
s(:field, :int, :n)),
|
s(:field, :int, :n)),
|
||||||
s(:expressions,
|
s(:expressions,
|
||||||
s(:if,
|
s(:if,
|
||||||
s(:condition,
|
s(:condition,
|
||||||
s(:int, 0)),
|
s(:int, 0)),
|
||||||
s(:if_true,
|
s(:if_true,
|
||||||
s(:assign,
|
s(:assign,
|
||||||
s(:name, :isit),
|
s(:name, :isit),
|
||||||
s(:int, 42))),
|
s(:int, 42))),
|
||||||
s(:if_false, [s(:assign,
|
s(:if_false,
|
||||||
s(:name, :maybenot),
|
s(:assign,
|
||||||
s(:int, 667))]))))))
|
s(:name, :maybenot),
|
||||||
|
s(:int, 667))))))))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user