38 lines
813 B
Ruby
38 lines
813 B
Ruby
module Ast
|
|
|
|
class OperatorExpression < Expression
|
|
attr_reader :operator, :left, :right
|
|
|
|
def initialize operator, left, right
|
|
@operator, @left, @right = operator, left, right
|
|
end
|
|
def attributes
|
|
[:operator, :left, :right]
|
|
end
|
|
def inspect
|
|
self.class.name + ".new(" + operator.inspect + ", " + left.inspect + "," + right.inspect + ")"
|
|
end
|
|
def to_s
|
|
"#{left} #{operator} #{right}"
|
|
end
|
|
end
|
|
|
|
class AssignmentExpression < Expression
|
|
attr_reader :left, :right
|
|
|
|
def initialize left, right
|
|
@left, @right = left, right
|
|
end
|
|
def attributes
|
|
[:left, :right]
|
|
end
|
|
def inspect
|
|
self.class.name + ".new(" + left.inspect + "," + right.inspect + ")"
|
|
end
|
|
def to_s
|
|
"#{left} = #{right}"
|
|
end
|
|
end
|
|
|
|
end
|