Class: Collie::Parser::Parser

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

Overview

Parser for .y grammar files

Instance Method Summary collapse

Constructor Details

#initialize(tokens) ⇒ Parser

Returns a new instance of Parser.



9
10
11
12
# File 'lib/collie/parser/parser.rb', line 9

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

Instance Method Details

#parseObject



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/collie/parser/parser.rb', line 14

def parse
  prologue = parse_prologue
  declarations = parse_declarations
  expect(:SECTION_SEPARATOR)
  rules = parse_rules
  epilogue = parse_epilogue

  AST::GrammarFile.new(
    prologue: prologue,
    declarations: declarations,
    rules: rules,
    epilogue: epilogue,
    location: current_token.location
  )
end