52 lines
1001 B
Ruby
52 lines
1001 B
Ruby
require_relative './operation'
|
|
|
|
module Dentaku
|
|
module AST
|
|
class Comparator < Operation
|
|
def self.precedence
|
|
5
|
|
end
|
|
|
|
def type
|
|
:logical
|
|
end
|
|
end
|
|
|
|
class LessThan < Comparator
|
|
def value(context={})
|
|
left.value(context) < right.value(context)
|
|
end
|
|
end
|
|
|
|
class LessThanOrEqual < Comparator
|
|
def value(context={})
|
|
left.value(context) <= right.value(context)
|
|
end
|
|
end
|
|
|
|
class GreaterThan < Comparator
|
|
def value(context={})
|
|
left.value(context) > right.value(context)
|
|
end
|
|
end
|
|
|
|
class GreaterThanOrEqual < Comparator
|
|
def value(context={})
|
|
left.value(context) >= right.value(context)
|
|
end
|
|
end
|
|
|
|
class NotEqual < Comparator
|
|
def value(context={})
|
|
left.value(context) != right.value(context)
|
|
end
|
|
end
|
|
|
|
class Equal < Comparator
|
|
def value(context={})
|
|
left.value(context) == right.value(context)
|
|
end
|
|
end
|
|
end
|
|
end
|