class Racc::GrammarFileParser

def parse_user_code

def parse_user_code
  line = @scanner.lineno
  _, *blocks = *@scanner.epilogue.split(/^----/)
  blocks.each do |block|
    header, *body = block.lines.to_a
    label0, paths = *header.sub(/\A-+/, '').split('=', 2)
    label = canonical_label(label0)
    (paths ? paths.strip.split(' ') : []).each do |path|
      add_user_code label, SourceText.new(File.read(path), path, 1)
    end
    add_user_code label, SourceText.new(body.join(''), @filename, line + 1)
    line += (1 + body.size)
  end
end