class Racc::SymbolTable
Attributes
          anchor[R]
        
        
          dummy[R]
        
        
          error[R]
        
        
          nt_base[R]
        
        
          symbols[R]
        
        
          to_a[R]
        
        Public Class Methods
            new()
            click to toggle source
          
        # File lib/racc/grammar.rb, line 950 def initialize @symbols = [] # :: [Racc::Sym] @cache = {} # :: {(String|Symbol) => Racc::Sym} @dummy = intern(:$start, true) @anchor = intern(false, true) # Symbol ID = 0 @error = intern(:error, false) # Symbol ID = 1 end
Public Instance Methods
            [](id)
            click to toggle source
          
        # File lib/racc/grammar.rb, line 962 def [](id) @symbols[id] end
            delete(sym)
            click to toggle source
          
        # File lib/racc/grammar.rb, line 978 def delete(sym) @symbols.delete sym @cache.delete sym.value end
            each(&block)
            click to toggle source
          
        # File lib/racc/grammar.rb, line 989 def each(&block) @symbols.each(&block) end
            each_nonterminal(&block)
            click to toggle source
          
        # File lib/racc/grammar.rb, line 1005 def each_nonterminal(&block) @nterms.each(&block) end
            each_terminal(&block)
            click to toggle source
          
        # File lib/racc/grammar.rb, line 997 def each_terminal(&block) @terms.each(&block) end
            fix()
            click to toggle source
          
        # File lib/racc/grammar.rb, line 1009 def fix terms, nterms = @symbols.partition {|s| s.terminal? } @symbols = terms + nterms @terms = terms @nterms = nterms @nt_base = terms.size fix_ident check_terminals end
            intern(val, dummy = false)
            click to toggle source
          
        # File lib/racc/grammar.rb, line 966 def intern(val, dummy = false) @cache[val] ||= begin sym = Sym.new(val, dummy) @symbols.push sym sym end end
            nonterminals()
            click to toggle source
          
        # File lib/racc/grammar.rb, line 1001 def nonterminals @symbols[@nt_base, @symbols.size - @nt_base] end
            nt_max()
            click to toggle source
          
        # File lib/racc/grammar.rb, line 985 def nt_max @symbols.size end
            terminals(&block)
            click to toggle source
          
        # File lib/racc/grammar.rb, line 993 def terminals(&block) @symbols[0, @nt_base] end