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-1.7.1/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
  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-1.7.1/lib/racc/grammar.rb, line 1009
      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-1.7.1/lib/racc/grammar.rb, line 1027
def dummy?
  @dummyp
end
inspect()
Alias for: to_s
nonterminal?() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1035
def nonterminal?
  @nterm
end
null=(n) click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1097
def null=(n)
  @null = n
end
nullable?() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1093
def nullable?
  @null
end
rule() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1076
def rule
  Rule.new(nil, [self], UserAction.empty)
end
self_null?() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1087
def self_null?
  @snull
end
serialize() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1057
def serialize
  @serialized
end
should_terminal() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1045
def should_terminal
  @should_terminal = true
end
should_terminal?() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1049
def should_terminal?
  @should_terminal
end
string_symbol?() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1053
def string_symbol?
  @string
end
term=(t) click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1039
def term=(t)
  raise 'racc: fatal: term= called twice' unless @term.nil?
  @term = t
  @nterm = !t
end
terminal?() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1031
def terminal?
  @term
end
to_s() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1066
def to_s
  @to_s.dup
end
Also aliased as: inspect
useless=(f) click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1108
def useless=(f)
  @useless = f
end
useless?() click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1104
def useless?
  @useless
end
|(x) click to toggle source
# File racc-1.7.1/lib/racc/grammar.rb, line 1072
def |(x)
  rule() | x.rule
end