In Files

  • ruby-3.1.2/lib/racc/grammar.rb

Files

Class/Module Index [+]

Quicksearch

Racc::Sym

Stands terminal and nonterminal symbols.

Attributes

assoc[RW]
expand[R]
hash[R]
heads[R]

cache

ident[R]
locate[R]
precedence[RW]
serialized[W]
value[R]

Public Class Methods

new(value, dummyp) click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 974
def initialize(value, dummyp)
  @ident = nil
  @value = value
  @dummyp = dummyp

  @term  = nil
  @nterm = nil
  @should_terminal = false
  @precedence = nil
  case value
  when Symbol
    @to_s = value.to_s
    @serialized = value.inspect
    @string = false
  when String
    @to_s = value.inspect
    @serialized = value.dump
    @string = true
  when false
    @to_s = '$end'
    @serialized = 'false'
    @string = false
  when ErrorSymbolValue
    @to_s = 'error'
    @serialized = 'Object.new'
    @string = false
  else
    raise ArgumentError, "unknown symbol value: #{value.class}"
  end

  @heads    = []
  @locate   = []
  @snull    = nil
  @null     = nil
  @expand   = nil
  @useless  = nil
end
            
once_writer(nm) click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1013
      def once_writer(nm)
        nm = nm.id2name
        module_eval(<<-EOS)
          def #{nm}=(v)
            raise 'racc: fatal: @#{nm} != nil' unless @#{nm}.nil?
            @#{nm} = v
          end
        EOS
      end
            

Public Instance Methods

dummy?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1031
def dummy?
  @dummyp
end
            
inspect() click to toggle source
Alias for: to_s
nonterminal?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1039
def nonterminal?
  @nterm
end
            
null=(n) click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1101
def null=(n)
  @null = n
end
            
nullable?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1097
def nullable?
  @null
end
            
rule() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1080
def rule
  Rule.new(nil, [self], UserAction.empty)
end
            
self_null?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1091
def self_null?
  @snull
end
            
serialize() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1061
def serialize
  @serialized
end
            
should_terminal() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1049
def should_terminal
  @should_terminal = true
end
            
should_terminal?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1053
def should_terminal?
  @should_terminal
end
            
string_symbol?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1057
def string_symbol?
  @string
end
            
term=(t) click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1043
def term=(t)
  raise 'racc: fatal: term= called twice' unless @term.nil?
  @term = t
  @nterm = !t
end
            
terminal?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1035
def terminal?
  @term
end
            
to_s() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1070
def to_s
  @to_s.dup
end
            
Also aliased as: inspect
useless=(f) click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1112
def useless=(f)
  @useless = f
end
            
useless?() click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1108
def useless?
  @useless
end
            
|(x) click to toggle source
 
               # File ruby-3.1.2/lib/racc/grammar.rb, line 1076
def |(x)
  rule() | x.rule
end