Commit Graph

30 Commits

Author SHA1 Message Date
df8e9f7e83 refactoring: switched to match/case
wow! python actually added switch cases! too bad this is just syntax sugar...
2023-12-09 12:01:04 -06:00
a22aa808e0 lp: added support for OP_TEST 2022-08-26 01:18:24 -05:00
935844f274 more minor refactoring 2022-08-22 00:59:21 -05:00
c37e9a21d8 ld: minor refactoring 2022-08-22 00:54:59 -05:00
34b1ec7285 ld: added LuaDump()
- chunks can now be serialized back into lua bytecode dumps :D
2022-08-22 00:50:08 -05:00
f9f1d4af00 ld: minor refactoring 2022-08-19 15:46:47 -05:00
3be45f156a lp: support OP_CLOSURE, boilerplate function/proto support 2022-08-17 22:14:45 -05:00
b28edcba1d lp: fix isValidLocal() not respecting capitals 2022-08-17 22:14:13 -05:00
bc4e762e26 lp: bug fix (forgot to transfer registers) 2022-08-16 00:26:50 -05:00
19bed999ee lp: added __parseNewTable(), better table pseudo-code 2022-08-16 00:12:26 -05:00
a248cc4807 lp: added NEWTABLE && SETLIST
- tables can now be (mostly) decompiled
- changed 'decompiled source' to 'pseudo-code' since the output doesn't typically match the compiled script source.
- misc. refactoring
2022-08-15 23:30:32 -05:00
9da0d0ffbd lp: support FORPREP && FORLOOP 2022-08-14 01:36:05 -05:00
5d91dbbc64 lundump.py: better instruction annotations 2022-08-12 17:31:15 -05:00
0d947f4f3d Added 'repeat .. until' support
- lines are now tracked by start & end PC
- new config option: annotatedLines. if true line annotations show start & end PC will be emitted
- lundump.py now shows locals for each proto
2022-08-12 17:08:31 -05:00
368ff62538 'not' not '!' 2022-08-12 00:10:47 -05:00
a6623c8953 lparser.py: if local name is invalid, resort to fallback 2022-08-12 00:04:11 -05:00
0f72e71a59 lparser.py: proper support for locals 2022-08-11 23:58:21 -05:00
b8bf02f7d0 lparser.py: minor refactoring, cleanup 2022-08-11 23:10:36 -05:00
95ca3bb26b lparser.py: added support for while loops 2022-08-11 17:26:48 -05:00
78e137d033 updated README 2022-08-11 16:56:42 -05:00
875e91636b lundump.py: SETGLOBAL uses K[] 2022-08-11 16:49:48 -05:00
055af56e27 lparser.py: don't read RK values here, use lundump.py to read them 2022-08-11 16:45:05 -05:00
eb1d3ffe87 lundump.py: minor refactoring, added instruction annotations 2022-08-11 16:43:34 -05:00
2258888956 lundump.py: Instruction.__readRK() should be a static method 2022-08-11 16:19:21 -05:00
ac0b7039d2 README: clarification 2022-08-11 16:00:41 -05:00
28db2dcb8b Added LICENSE 2022-08-11 15:55:49 -05:00
0adecfae2b Added README 2022-08-11 15:54:19 -05:00
61ce2d416b lundump.py: only list protos if we have any 2022-08-11 15:52:50 -05:00
4d8c78f023 lundump.py: improved instruction operand labeling
- RKs are fully supported
- KBx are also supported
2022-08-11 15:49:57 -05:00
0dbdfc49c6 Inital commit
- Extremely basic decompiler implemented in lparser.py
- lundump.py ported from [this repository](https://github.com/CPunch/LuaPytecode)
2022-08-11 15:38:31 -05:00