class Racc::GrammarFileParser

def add_rule_block(list)

def add_rule_block(list)
  sprec = nil
  target = list.shift
  case target
  when OrMark, UserAction, Prec
    raise CompileError, "#{target.lineno}: unexpected symbol #{target.name}"
  end
  curr = []
  list.each do |i|
    case i
    when OrMark
      add_rule target, curr, sprec
      curr = []
      sprec = nil
    when Prec
      raise CompileError, "'=<prec>' used twice in one rule" if sprec
      sprec = i.symbol
    else
      curr.push i
    end
  end
  add_rule target, curr, sprec
end