# 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 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 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 lib/racc/grammar.rb, line 1031
    def dummy?
      @dummyp
    end

inspect()
Alias for: to_s
nonterminal?() click to toggle source

    # File lib/racc/grammar.rb, line 1039
    def nonterminal?
      @nterm
    end

null=(n) click to toggle source

    # File lib/racc/grammar.rb, line 1101
    def null=(n)
      @null = n
    end

nullable?() click to toggle source

    # File lib/racc/grammar.rb, line 1097
    def nullable?
      @null
    end

rule() click to toggle source

    # File lib/racc/grammar.rb, line 1080
    def rule
      Rule.new(nil, [self], UserAction.empty)
    end

self_null?() click to toggle source

    # File lib/racc/grammar.rb, line 1091
    def self_null?
      @snull
    end

serialize() click to toggle source

    # File lib/racc/grammar.rb, line 1061
    def serialize
      @serialized
    end

should_terminal() click to toggle source

    # File lib/racc/grammar.rb, line 1049
    def should_terminal
      @should_terminal = true
    end

should_terminal?() click to toggle source

    # File lib/racc/grammar.rb, line 1053
    def should_terminal?
      @should_terminal
    end

string_symbol?() click to toggle source

    # File lib/racc/grammar.rb, line 1057
    def string_symbol?
      @string
    end

term=(t) click to toggle source

    # File 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 lib/racc/grammar.rb, line 1035
    def terminal?
      @term
    end

to_s() click to toggle source

    # File lib/racc/grammar.rb, line 1070
    def to_s
      @to_s.dup
    end

Also aliased as: inspect
useless=(f) click to toggle source

    # File lib/racc/grammar.rb, line 1112
    def useless=(f)
      @useless = f
    end

useless?() click to toggle source

    # File lib/racc/grammar.rb, line 1108
    def useless?
      @useless
    end

|(x) click to toggle source

    # File lib/racc/grammar.rb, line 1076
    def |(x)
      rule() | x.rule
    end