wrapping class / module expressions in own node
This commit is contained in:
parent
20b6c9b476
commit
e8bc570d25
@ -95,10 +95,11 @@ module Parser
|
||||
#modules and classes are understandibly quite similar Class < Module
|
||||
rule( :module_name => simple(:module_name) , :derived_name => simple(:derived_name) , :class_expressions => sequence(:class_expressions) , :end=>"end") do
|
||||
s(:class , module_name.to_s.to_sym ,
|
||||
s(:derives, derived_name ? derived_name.to_a.first.to_sym : nil) , *class_expressions)
|
||||
s(:derives, derived_name ? derived_name.to_a.first.to_sym : nil) ,
|
||||
s(:expressions, *class_expressions) )
|
||||
end
|
||||
rule( :module_name => simple(:module_name) , :module_expressions => sequence(:module_expressions) , :end=>"end") do
|
||||
s(:module , module_name.to_s.to_sym , *module_expressions)
|
||||
s(:module , module_name.to_s.to_sym , s(:expressions, *module_expressions))
|
||||
end
|
||||
|
||||
rule(:expression_list => sequence(:expression_list)) {
|
||||
|
@ -35,6 +35,7 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :String,
|
||||
s(:derives, nil),
|
||||
s(:expressions,
|
||||
s(:function, :ref,
|
||||
s(:name, :new_string),
|
||||
s(:parameters,
|
||||
@ -157,4 +158,4 @@ s(:expressions,
|
||||
s(:name, :i),
|
||||
s(:int, 1))))),
|
||||
s(:return,
|
||||
s(:name, :new_string))))))
|
||||
s(:name, :new_string)))))))
|
||||
|
@ -9,6 +9,7 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :Foo,
|
||||
s(:derives, :Object),
|
||||
s(:expressions,
|
||||
s(:field_def, :int, :field,
|
||||
s(:int, 3)),
|
||||
s(:function, :int,
|
||||
@ -25,4 +26,4 @@ s(:expressions,
|
||||
s(:name, :ofthen),
|
||||
s(:arguments,
|
||||
s(:int, 3),
|
||||
s(:name, :var)))))
|
||||
s(:name, :var))))))
|
||||
|
@ -10,6 +10,7 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :Pifi,
|
||||
s(:derives, nil),
|
||||
s(:expressions,
|
||||
s(:call,
|
||||
s(:name, :ofthen),
|
||||
s(:arguments,
|
||||
@ -32,4 +33,4 @@ s(:expressions,
|
||||
s(:name, :index))))),
|
||||
s(:return,
|
||||
s(:name, :n))),
|
||||
s(:receiver, :self))))
|
||||
s(:receiver, :self)))))
|
||||
|
@ -11,6 +11,7 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :Ifi,
|
||||
s(:derives, nil),
|
||||
s(:expressions,
|
||||
s(:function, :int,
|
||||
s(:name, :ofthen),
|
||||
s(:parameters,
|
||||
@ -26,4 +27,4 @@ s(:expressions,
|
||||
s(:if_false,
|
||||
s(:assign,
|
||||
s(:name, :maybenot),
|
||||
s(:int, 667))))))))
|
||||
s(:int, 667)))))))))
|
||||
|
@ -7,8 +7,9 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :Foo,
|
||||
s(:derives, :Object),
|
||||
s(:expressions,
|
||||
s(:function, :int,
|
||||
s(:name, :test),
|
||||
s(:parameters),
|
||||
s(:expressions,
|
||||
s(:int, 43)))))
|
||||
s(:int, 43))))))
|
||||
|
@ -7,9 +7,11 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :Foo,
|
||||
s(:derives, nil),
|
||||
s(:expressions,
|
||||
s(:module, :Boo,
|
||||
s(:expressions,
|
||||
s(:call,
|
||||
s(:name, :funcall),
|
||||
s(:arguments,
|
||||
s(:int, 3),
|
||||
s(:name, :var))))))
|
||||
s(:name, :var))))))))
|
||||
|
@ -8,6 +8,7 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :Opers,
|
||||
s(:derives, nil),
|
||||
s(:expressions,
|
||||
s(:function, :int,
|
||||
s(:name, :foo),
|
||||
s(:parameters,
|
||||
@ -17,4 +18,4 @@ s(:expressions,
|
||||
s(:int, 5)),
|
||||
s(:operator, "+",
|
||||
s(:name, :abba),
|
||||
s(:int, 5))))))
|
||||
s(:int, 5)))))))
|
||||
|
@ -5,4 +5,5 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :Foo,
|
||||
s(:derives, nil),
|
||||
s(:int, 5)))
|
||||
s(:expressions,
|
||||
s(:int, 5))))
|
||||
|
@ -4,6 +4,7 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :Opers,
|
||||
s(:expressions,
|
||||
s(:assign,
|
||||
s(:name, :abba),
|
||||
s(:int, 5))))
|
||||
s(:int, 5)))))
|
||||
|
@ -6,10 +6,12 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :Foo,
|
||||
s(:expressions,
|
||||
s(:class, :Bar,
|
||||
s(:derives, nil),
|
||||
s(:expressions,
|
||||
s(:call,
|
||||
s(:name, :funcall),
|
||||
s(:arguments,
|
||||
s(:int, 3),
|
||||
s(:name, :var))))))
|
||||
s(:name, :var))))))))
|
||||
|
@ -7,6 +7,7 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :Soho,
|
||||
s(:expressions,
|
||||
s(:call,
|
||||
s(:name, :ofthen),
|
||||
s(:arguments,
|
||||
@ -19,4 +20,4 @@ s(:expressions,
|
||||
s(:parameter, :ref, :m)),
|
||||
s(:expressions,
|
||||
s(:return,
|
||||
s(:int, 44))))))
|
||||
s(:int, 44)))))))
|
||||
|
@ -10,6 +10,7 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :Foo,
|
||||
s(:expressions,
|
||||
s(:function, :ref,
|
||||
s(:name, :ofthen),
|
||||
s(:parameters,
|
||||
@ -25,4 +26,4 @@ s(:expressions,
|
||||
s(:if_false,
|
||||
s(:assign,
|
||||
s(:name, :maybenot),
|
||||
s(:int, 667))))))))
|
||||
s(:int, 667)))))))))
|
||||
|
@ -7,6 +7,7 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :Opers,
|
||||
s(:expressions,
|
||||
s(:function, :int,
|
||||
s(:name, :foo),
|
||||
s(:parameters,
|
||||
@ -21,4 +22,4 @@ s(:expressions,
|
||||
s(:return,
|
||||
s(:operator, "+",
|
||||
s(:name, :abba),
|
||||
s(:int, 5)))))))
|
||||
s(:int, 5))))))))
|
||||
|
@ -4,4 +4,5 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :Simple,
|
||||
s(:int, 5)))
|
||||
s(:expressions,
|
||||
s(:int, 5))))
|
||||
|
@ -6,9 +6,10 @@ end
|
||||
s(:expressions,
|
||||
s(:class, :FooBo,
|
||||
s(:derives, nil),
|
||||
s(:expressions,
|
||||
s(:call,
|
||||
s(:name, :call),
|
||||
s(:arguments,
|
||||
s(:int, 35)),
|
||||
s(:receiver,
|
||||
s(:module, "Bar")))))
|
||||
s(:module, "Bar"))))))
|
||||
|
@ -6,6 +6,7 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :Fibo,
|
||||
s(:expressions,
|
||||
s(:assign,
|
||||
s(:name, :a),
|
||||
s(:operator, "+",
|
||||
@ -16,4 +17,4 @@ s(:expressions,
|
||||
s(:arguments,
|
||||
s(:name, :b),
|
||||
s(:name, :a),
|
||||
s(:name, :r)))))
|
||||
s(:name, :r))))))
|
||||
|
@ -10,6 +10,7 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :Fibo,
|
||||
s(:expressions,
|
||||
s(:function, :int,
|
||||
s(:name, :fibonaccit),
|
||||
s(:parameters,
|
||||
@ -22,4 +23,4 @@ s(:expressions,
|
||||
s(:call,
|
||||
s(:name, :fibonaccit),
|
||||
s(:arguments,
|
||||
s(:int, 10)))))
|
||||
s(:int, 10))))))
|
||||
|
@ -7,10 +7,12 @@ end
|
||||
-- -- --
|
||||
s(:expressions,
|
||||
s(:module, :FooBo,
|
||||
s(:expressions,
|
||||
s(:class, :Bar,
|
||||
s(:derives, nil),
|
||||
s(:expressions,
|
||||
s(:assign,
|
||||
s(:name, :a),
|
||||
s(:operator, "+",
|
||||
s(:int, 5),
|
||||
s(:name, :foo))))))
|
||||
s(:name, :foo))))))))
|
||||
|
Loading…
x
Reference in New Issue
Block a user