refactor name expression for compiler

This commit is contained in:
Torsten Ruger
2016-12-09 12:13:33 +02:00
parent ca4bdcc528
commit 224670e449
7 changed files with 84 additions and 72 deletions

View File

@ -1,39 +1,41 @@
module Typed
class IntegerExpression < Expression
attr_accessor :value
def initialize(value)
@value = value
module Tree
class IntegerExpression < Expression
attr_accessor :value
def initialize(value)
@value = value
end
end
end
class FloatExpression < Expression
attr_accessor :value
def initialize(value)
@value = value
class FloatExpression < Expression
attr_accessor :value
def initialize(value)
@value = value
end
end
end
class TrueExpression < Expression
end
class FalseExpression < Expression
end
class NilExpression < Expression
end
class StringExpression < Expression
attr_accessor :value
def initialize(value)
@value = value
class TrueExpression < Expression
end
end
class NameExpression < Expression
attr_accessor :value
alias :name :value
def initialize(value)
@value = value
class FalseExpression < Expression
end
end
class ClassExpression < Expression
attr_accessor :value
def initialize(value)
@value = value
class NilExpression < Expression
end
class StringExpression < Expression
attr_accessor :value
def initialize(value)
@value = value
end
end
class NameExpression < Expression
attr_accessor :value
alias :name :value
def initialize(value)
@value = value
end
end
class ClassExpression < Expression
attr_accessor :value
def initialize(value)
@value = value
end
end
end
end

View File

@ -125,26 +125,26 @@ module Typed
end
def on_int expression
IntegerExpression.new(expression.children.first)
Tree::IntegerExpression.new(expression.children.first)
end
def on_true expression
TrueExpression.new
Tree::TrueExpression.new
end
def on_false expression
FalseExpression.new
Tree::FalseExpression.new
end
def on_nil expression
NilExpression.new
Tree::NilExpression.new
end
def on_name statement
NameExpression.new(statement.children.first)
Tree::NameExpression.new(statement.children.first)
end
def on_string expression
StringExpression.new(expression.children.first)
Tree::StringExpression.new(expression.children.first)
end
def on_class_name expression