{"record":{"id":"3e284d897228a3fe","repo":"mame/quine-relay","slug":"parse-error-at-app","errorCode":null,"errorMessage":"parse error at app","messagePattern":"parse error at app","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"vendor/grass.rb","lineNumber":179,"sourceCode":"    raise IllegalState, \"illegal final machine state\" unless m.env.size == 1\n    m.env.first\n  end\n\n  InitialEnv = [In.new, CharFn.new(?w.ord), Succ.new, Out.new]\n  InitialDump = [[[], []], [[App.new(1, 1)], []]]\n\n  def start(code)\n    eval Machine.new(code, InitialEnv, InitialDump)\n  end\n\n  def parse(src)\n    code = []\n    src = src.sub(/\\A[^wｗ]*/, '').gsub(/[^wｗWＷvｖ]/, '')\n    src.split(/[vｖ]+/).each { |s|\n      a = s.scan(/[wｗ]+|[WＷ]+/).map { |i| i.split(//).size }\n      arity = 0\n      arity = a.shift if /\\A[wｗ]/ =~ s\n      raise \"parse error at app\" unless a.size % 2 == 0\n      body = []\n      0.step(a.size - 1, 2) { |i| body.push App.new(a[i], a[i+1]) }\n      insn = (0...arity).inject(body) { |body,| [Abs.new(body)] }\n      code.concat insn\n    }\n    code\n  end\n\n  public\n\n  def run(src)\n    start parse(src)\n  end\n\nend\n\nif $0 == __FILE__ then\n  $stderr.puts \"Grass #{Grass::RELEASE_DATE}\" if $VERBOSE","sourceCodeStart":161,"sourceCodeEnd":197,"githubUrl":"https://github.com/mame/quine-relay/blob/c2aa5098d3e95409a36185b16371089dd04db642/vendor/grass.rb#L161-L197","documentation":"Error \"parse error at app\" thrown in mame/quine-relay.","triggerScenarios":"Thrown at vendor/grass.rb:179 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c2aa5098d3e95409a36185b16371089dd04db642","analyzedAt":"2026-08-21T15:28:43.741Z","schemaVersion":2},"datasetVersion":"2026-08-21T18:17:14.833Z"}