Class: Collie::Analyzer::SymbolResolver

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

Overview

Resolves symbol kinds using declared tokens and nonterminals.

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(grammar, symbol_table) ⇒ SymbolResolver

Returns a new instance of SymbolResolver.



13
14
15
16
# File 'lib/collie/analyzer/symbol_resolver.rb', line 13

def initialize(grammar, symbol_table)
  @grammar = grammar
  @symbol_table = symbol_table
end

Class Method Details

.resolve(grammar, symbol_table) ⇒ Object



9
10
11
# File 'lib/collie/analyzer/symbol_resolver.rb', line 9

def self.resolve(grammar, symbol_table)
  new(grammar, symbol_table).resolve
end

Instance Method Details

#resolveObject



18
19
20
21
22
23
24
# File 'lib/collie/analyzer/symbol_resolver.rb', line 18

def resolve
  each_alternative do |alternative|
    alternative.symbols.each { |symbol| resolve_symbol(symbol) }
  end

  @grammar
end