36 lines
626 B
Ruby
36 lines
626 B
Ruby
module Ast
|
|
|
|
class FieldExpression < Expression
|
|
attr_reader :receiver , :name
|
|
|
|
def initialize receiver , name
|
|
@receiver = receiver
|
|
@name = name.to_sym
|
|
end
|
|
def attributes
|
|
[:receiver , :name]
|
|
end
|
|
|
|
def to_s
|
|
receiver.inspect + "," + name.inspect
|
|
end
|
|
end
|
|
|
|
class CallSiteExpression < Expression
|
|
attr_reader :field , :args
|
|
|
|
def initialize field, args
|
|
@field = field
|
|
@args = args
|
|
end
|
|
def attributes
|
|
[:field , :args]
|
|
end
|
|
|
|
def to_s
|
|
field.inspect + ", ["+
|
|
args.collect{|m| m.inspect }.join( ",") + "] "
|
|
end
|
|
end
|
|
end
|