class DDQL::TokenType::Group

Public Class Methods

new() click to toggle source
Calls superclass method DDQL::TokenType::new
# File lib/ddql/token_type.rb, line 231
def initialize
  super(name: :lparen, pattern: /\((?=[^%])/)
end

Public Instance Methods

group?() click to toggle source
# File lib/ddql/token_type.rb, line 235
def group?
  true
end
parse(parser, _token, expression: nil) click to toggle source
# File lib/ddql/token_type.rb, line 239
def parse(parser, _token, expression: nil)
  new_expression = parser.parse
  parser.consume TokenType::RPAREN

  if expression.nil?
    next_token = parser.peek
    if next_token && (next_token.and? || next_token.or?)
      {
        lstatement: new_expression,
      }
    else
      new_expression
    end
  else
    expression.merge(new_expression)
  end
end