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
|