Module | ScopedSearch::QueryLanguage::AST |
In: |
lib/scoped_search/query_language/ast.rb
|
Constructs an AST from an array notation.
# File lib/scoped_search/query_language/ast.rb, line 4 4: def self.from_array(arg) 5: if arg.kind_of?(Array) 6: operator = arg.shift 7: case operator 8: when :and, :or 9: LogicalOperatorNode.new(operator, arg.map { |c| from_array(c) }) 10: when Symbol 11: OperatorNode.new(operator, arg.map { |c| from_array(c) }) 12: else 13: raise ScopedSearch::Exception, "Not a valid array representation of an AST!" 14: end 15: else 16: return LeafNode.new(arg) 17: end 18: end