Class: ColumnSifter::Base::Parser

Inherits:
Object
  • Object
show all
Defined in:
lib/column_sifter/base/parser.rb

Constant Summary collapse

MAX_DEPTH =
100

Instance Method Summary collapse

Constructor Details

#initialize(tokens) ⇒ Parser

Returns a new instance of Parser.



8
9
10
11
12
# File 'lib/column_sifter/base/parser.rb', line 8

def initialize(tokens)
  @tokens = tokens
  @pos = 0
  @depth = 0
end

Instance Method Details

#parseObject

Raises:



14
15
16
17
18
19
20
21
# File 'lib/column_sifter/base/parser.rb', line 14

def parse
  raise ParseError, 'query is empty' if @tokens.empty?

  node = parse_or
  raise ParseError, "unexpected token: #{peek.value.inspect}" unless at_end?

  node
end