Class: SQLTree::Node::ArithmeticExpression
- Inherits:
-
Expression
- Object
- Base
- Expression
- SQLTree::Node::ArithmeticExpression
- Defined in:
- lib/sql_tree/node/expression.rb
Instance Attribute Summary collapse
-
#lhs ⇒ Object
Returns the value of attribute lhs.
-
#operator ⇒ Object
Returns the value of attribute operator.
-
#rhs ⇒ Object
Returns the value of attribute rhs.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(operator, lhs, rhs) ⇒ ArithmeticExpression
constructor
A new instance of ArithmeticExpression.
- #to_sql ⇒ Object
Methods inherited from Expression
Methods inherited from Base
[], #inspect, #quote_str, #quote_var
Constructor Details
#initialize(operator, lhs, rhs) ⇒ ArithmeticExpression
Returns a new instance of ArithmeticExpression.
186 187 188 189 190 |
# File 'lib/sql_tree/node/expression.rb', line 186 def initialize(operator, lhs, rhs) @lhs = lhs @rhs = rhs @operator = operator end |
Instance Attribute Details
#lhs ⇒ Object
Returns the value of attribute lhs.
184 185 186 |
# File 'lib/sql_tree/node/expression.rb', line 184 def lhs @lhs end |
#operator ⇒ Object
Returns the value of attribute operator.
184 185 186 |
# File 'lib/sql_tree/node/expression.rb', line 184 def operator @operator end |
#rhs ⇒ Object
Returns the value of attribute rhs.
184 185 186 |
# File 'lib/sql_tree/node/expression.rb', line 184 def rhs @rhs end |
Class Method Details
.parse(tokens) ⇒ Object
196 197 198 |
# File 'lib/sql_tree/node/expression.rb', line 196 def self.parse(tokens) self.parse_primary(tokens) end |
.parse_primary(tokens) ⇒ Object
200 201 202 203 204 205 206 |
# File 'lib/sql_tree/node/expression.rb', line 200 def self.parse_primary(tokens) expr = self.parse_secondary(tokens) while [SQLTree::Token::PLUS, SQLTree::Token::MINUS].include?(tokens.peek) expr = self.new(tokens.next.literal, expr, self.parse_secondary(tokens)) end return expr end |
.parse_secondary(tokens) ⇒ Object
208 209 210 211 212 213 214 |
# File 'lib/sql_tree/node/expression.rb', line 208 def self.parse_secondary(tokens) expr = Expression.parse_atomic(tokens) while [SQLTree::Token::PLUS, SQLTree::Token::MINUS].include?(tokens.peek) expr = self.new(tokens.next.literal, expr, SQLTree::Node::Expression.parse_atomic(tokens)) end return expr end |
Instance Method Details
#to_sql ⇒ Object
192 193 194 |
# File 'lib/sql_tree/node/expression.rb', line 192 def to_sql "(#{@lhs.to_sql} #{@operator} #{@rhs.to_sql})" end |