class 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 racc/grammar.rb, line 969
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 racc/grammar.rb, line 1008
      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 racc/grammar.rb, line 1026
def dummy?
  @dummyp
end
inspect()
Alias for: to_s
nonterminal?() click to toggle source
# File racc/grammar.rb, line 1034
def nonterminal?
  @nterm
end
null=(n) click to toggle source
# File racc/grammar.rb, line 1096
def null=(n)
  @null = n
end
nullable?() click to toggle source
# File racc/grammar.rb, line 1092
def nullable?
  @null
end
rule() click to toggle source
# File racc/grammar.rb, line 1075
def rule
  Rule.new(nil, [self], UserAction.empty)
end
self_null?() click to toggle source
# File racc/grammar.rb, line 1086
def self_null?
  @snull
end
serialize() click to toggle source
# File racc/grammar.rb, line 1056
def serialize
  @serialized
end
should_terminal() click to toggle source
# File racc/grammar.rb, line 1044
def should_terminal
  @should_terminal = true
end
should_terminal?() click to toggle source
# File racc/grammar.rb, line 1048
def should_terminal?
  @should_terminal
end
string_symbol?() click to toggle source
# File racc/grammar.rb, line 1052
def string_symbol?
  @string
end
term=(t) click to toggle source
# File racc/grammar.rb, line 1038
def term=(t)
  raise 'racc: fatal: term= called twice' unless @term.nil?
  @term = t
  @nterm = !t
end
terminal?() click to toggle source
# File racc/grammar.rb, line 1030
def terminal?
  @term
end
to_s() click to toggle source
# File racc/grammar.rb, line 1065
def to_s
  @to_s.dup
end
Also aliased as: inspect
useless=(f) click to toggle source
# File racc/grammar.rb, line 1107
def useless=(f)
  @useless = f
end
useless?() click to toggle source
# File racc/grammar.rb, line 1103
def useless?
  @useless
end
|(x) click to toggle source
# File racc/grammar.rb, line 1071
def |(x)
  rule() | x.rule
end