Parse error at or near `LOAD_FAST' instruction at offset 4824

Open
#176 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
25/100
Issue type
Bug
Clarity
Needs clarification
Activity status
Stale
Tech stack
python

Research direction

The issue provides parser productions and bytecode context at L. 746, ending at LOAD_FAST offset 4824, but names no source file, test, or reproduction. First obtain a reproducible input and trace the decompiler path handling this instruction against the whilestmt38 grammar. Done means the parse error has a confirmed cause and a regression test demonstrates the input is handled correctly.

Written by the indexing model from the issue text.

Description

Further information is needed

whilestmt38 ::= \e__come_froms testexpr . c_stmts_opt COME_FROM JUMP_LOOP POP_BLOCK
whilestmt38 ::= \e__come_froms testexpr . c_stmts_opt JUMP_LOOP POP_BLOCK
whilestmt38 ::= \e__come_froms testexpr . c_stmts_opt JUMP_LOOP come_froms
whilestmt38 ::= \e__come_froms testexpr . returns POP_BLOCK
whilestmt38 ::= \e__come_froms testexpr \e_c_stmts_opt . COME_FROM JUMP_LOOP POP_BLOCK
whilestmt38 ::= \e__come_froms testexpr \e_c_stmts_opt . JUMP_LOOP POP_BLOCK
whilestmt38 ::= \e__come_froms testexpr \e_c_stmts_opt . JUMP_LOOP come_froms
whilestmt38 ::= \e__come_froms testexpr \e_c_stmts_opt COME_FROM . JUMP_LOOP POP_BLOCK
whilestmt38 ::= \e__come_froms testexpr c_stmts . JUMP_LOOP \e__come_froms
whilestmt38 ::= \e__come_froms testexpr c_stmts . JUMP_LOOP _come_froms
whilestmt38 ::= \e__come_froms testexpr c_stmts . come_froms
whilestmt38 ::= \e__come_froms testexpr c_stmts come_froms .
whilestmt38 ::= \e__come_froms testexpr c_stmts_opt . COME_FROM JUMP_LOOP POP_BLOCK
whilestmt38 ::= \e__come_froms testexpr c_stmts_opt . JUMP_LOOP POP_BLOCK
whilestmt38 ::= \e__come_froms testexpr c_stmts_opt . JUMP_LOOP come_froms
whilestmt38 ::= \e__come_froms testexpr c_stmts_opt COME_FROM . JUMP_LOOP POP_BLOCK
whilestmt38 ::= \e__come_froms testexprc . c_stmts_opt come_froms JUMP_LOOP \e__come_froms
whilestmt38 ::= \e__come_froms testexprc . c_stmts_opt come_froms JUMP_LOOP _come_froms
whilestmt38 ::= \e__come_froms testexprc \e_c_stmts_opt . come_froms JUMP_LOOP \e__come_froms
whilestmt38 ::= \e__come_froms testexprc \e_c_stmts_opt . come_froms JUMP_LOOP _come_froms
whilestmt38 ::= \e__come_froms testexprc \e_c_stmts_opt come_froms . JUMP_LOOP \e__come_froms
whilestmt38 ::= \e__come_froms testexprc \e_c_stmts_opt come_froms . JUMP_LOOP _come_froms
whilestmt38 ::= \e__come_froms testexprc c_stmts_opt . come_froms JUMP_LOOP \e__come_froms
whilestmt38 ::= \e__come_froms testexprc c_stmts_opt . come_froms JUMP_LOOP _come_froms
whilestmt38 ::= \e__come_froms testexprc c_stmts_opt come_froms . JUMP_LOOP \e__come_froms
whilestmt38 ::= \e__come_froms testexprc c_stmts_opt come_froms . JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms . bool_op c_stmts JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms . bool_op c_stmts JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms . testexpr \e_c_stmts_opt COME_FROM JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms . testexpr \e_c_stmts_opt JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms . testexpr \e_c_stmts_opt JUMP_LOOP come_froms
whilestmt38 ::= _come_froms . testexpr c_stmts JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms . testexpr c_stmts JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms . testexpr c_stmts come_froms
whilestmt38 ::= _come_froms . testexpr c_stmts_opt COME_FROM JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms . testexpr c_stmts_opt JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms . testexpr c_stmts_opt JUMP_LOOP come_froms
whilestmt38 ::= _come_froms . testexpr returns POP_BLOCK
whilestmt38 ::= _come_froms . testexprc \e_c_stmts_opt come_froms JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms . testexprc \e_c_stmts_opt come_froms JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms . testexprc c_stmts_opt come_froms JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms . testexprc c_stmts_opt come_froms JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms bool_op . c_stmts JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms bool_op . c_stmts JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms bool_op c_stmts . JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms bool_op c_stmts . JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms testexpr . c_stmts JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms testexpr . c_stmts JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms testexpr . c_stmts come_froms
whilestmt38 ::= _come_froms testexpr . c_stmts_opt COME_FROM JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms testexpr . c_stmts_opt JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms testexpr . c_stmts_opt JUMP_LOOP come_froms
whilestmt38 ::= _come_froms testexpr . returns POP_BLOCK
whilestmt38 ::= _come_froms testexpr \e_c_stmts_opt . COME_FROM JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms testexpr \e_c_stmts_opt . JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms testexpr \e_c_stmts_opt . JUMP_LOOP come_froms
whilestmt38 ::= _come_froms testexpr \e_c_stmts_opt COME_FROM . JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms testexpr c_stmts . JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms testexpr c_stmts . JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms testexpr c_stmts . come_froms
whilestmt38 ::= _come_froms testexpr c_stmts come_froms .
whilestmt38 ::= _come_froms testexpr c_stmts_opt . COME_FROM JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms testexpr c_stmts_opt . JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms testexpr c_stmts_opt . JUMP_LOOP come_froms
whilestmt38 ::= _come_froms testexpr c_stmts_opt COME_FROM . JUMP_LOOP POP_BLOCK
whilestmt38 ::= _come_froms testexprc . c_stmts_opt come_froms JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms testexprc . c_stmts_opt come_froms JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms testexprc \e_c_stmts_opt . come_froms JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms testexprc \e_c_stmts_opt . come_froms JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms testexprc \e_c_stmts_opt come_froms . JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms testexprc \e_c_stmts_opt come_froms . JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms testexprc c_stmts_opt . come_froms JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms testexprc c_stmts_opt . come_froms JUMP_LOOP _come_froms
whilestmt38 ::= _come_froms testexprc c_stmts_opt come_froms . JUMP_LOOP \e__come_froms
whilestmt38 ::= _come_froms testexprc c_stmts_opt come_froms . JUMP_LOOP _come_froms
yield ::= expr . YIELD_VALUE
yield_from ::= expr . GET_YIELD_FROM_ITER LOAD_CONST YIELD_FROM
Instruction context:

L. 746 4818 LOAD_FAST 'self'
4820 LOAD_ATTR world
4822 LOAD_ATTR play_mode
-> 4824 LOAD_FAST 'self'

Dominant language
Python
Stars
1.3k
Forks
167
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from rocky/python-decompile3

All issues in rocky/python-decompile3

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.