rubyx/lib/ruby/basic_values.rb
Torsten Rüger 57b0ad2c32 Fix super as statement
Super is a statement, a send really.
Not an expression (as maybe in c++)
The actual implementation will be a bit tricky, like raise, a bit of stack walking, but not impossible. Still, later
2019-08-19 18:48:13 +03:00

59 lines
1.0 KiB
Ruby

module Ruby
class Constant < Statement
def to_vool
vool_brother.new
end
end
class ValueConstant < Constant
attr_reader :value
def initialize(value)
@value = value
end
def to_vool
vool_brother.new(@value)
end
end
class IntegerConstant < ValueConstant
def to_s
value.to_s
end
end
class FloatConstant < ValueConstant
attr_reader :value
def initialize(value)
@value = value
end
end
class TrueConstant < Constant
def to_s(depth = 0)
"true"
end
end
class FalseConstant < Constant
def to_s(depth = 0)
"false"
end
end
class NilConstant < Constant
def to_s(depth = 0)
"nil"
end
end
class SelfExpression < Constant
def to_s(depth = 0)
"self"
end
end
class StringConstant < ValueConstant
attr_reader :value
def initialize(value)
@value = value
end
def to_s(depth = 0)
"'#{@value}'"
end
end
class SymbolConstant < StringConstant
end
end