Class: SQLTree::Node::Expression
- Defined in:
- lib/active_record/turntable/sql_tree_patch.rb
Direct Known Subclasses
Defined Under Namespace
Classes: BinaryOperator, EscapedValue, Field, PrefixOperator, Value
Class Method Summary collapse
Methods inherited from Base
Class Method Details
.parse_atomic(tokens) ⇒ Object
295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 |
# File 'lib/active_record/turntable/sql_tree_patch.rb', line 295 def self.parse_atomic(tokens) if SQLTree::Token::LPAREN === tokens.peek tokens.consume(SQLTree::Token::LPAREN) expr = self.parse(tokens) tokens.consume(SQLTree::Token::RPAREN) expr elsif tokens.peek.prefix_operator? PrefixOperator.parse(tokens) elsif tokens.peek.variable? if SQLTree::Token::LPAREN === tokens.peek(2) FunctionCall.parse(tokens) elsif SQLTree::Token::DOT === tokens.peek(2) Field.parse(tokens) else Variable.parse(tokens) end elsif SQLTree::Token::STRING_ESCAPE == tokens.peek EscapedValue.parse(tokens) elsif SQLTree::Token::BINARY_ESCAPE == tokens.peek EscapedValue.parse(tokens) elsif SQLTree::Token::INTERVAL === tokens.peek IntervalValue.parse(tokens) else Value.parse(tokens) end end |