Module: PredicateLiteral

Defined in:
lib/PredicateLiteralKit4Ruby.rb

Class Method Summary collapse

Class Method Details

.parse(array) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/PredicateLiteralKit4Ruby.rb', line 10

def self.parse(array)
  type = array[0]
  case (type)
    when "cmd"
      return CompoundPredicate.parse(array)
    when "cmp"
      return ComparisonPredicate.parse(array)
    when "agr"
      return AggregateExpression.parse(array)
    when "key"
      return KeypathExpression.parse(array)
    when "con"
      return ConstantExpression.parse(array)
    when true
      return BooleanExpression::TRUE
    when false
      return BooleanExpression::FALSE
    when "slf"
      return SelfExpression::singleton
    when "fn"
      return FunctionExpression.parse(array)
    when "var"
      return VariableExpression.parse(array)
    else
      raise "Unknown Predicate type (#{array.inspect})!"
  end
end