Commit graph

46 commits

Author SHA1 Message Date
9f24408a0b Added pragma to control number of steps in scripts and macros. Now that we support file loading some scripts might need more steps to process images or whatnot. 2026-06-12 15:12:34 +02:00
b2e9e3dc17 Added file loading (bin, text files) into SCRIPTS 2026-06-12 14:48:33 +02:00
d4f1213c06 Added meaningful error messages for Starlark code 2026-06-11 02:16:38 +02:00
1abad8bb92 Add experimental peephole optimizer with 5 passes, CLI flags, pragmas, and I/O region protection. 2026-06-04 01:21:10 +02:00
28723878b1 Optimizer removed redundant lda's 2026-06-04 00:05:24 +02:00
89bd30bfbd Fixed optimizer bugs 2026-06-03 23:23:54 +02:00
037d232c55 First naive version of optimizer 2026-06-03 21:51:29 +02:00
b6fce2a7f9 Fix pragma auto-removal for multi-FUNC groups sharing one FEND 2026-05-17 16:23:14 +02:00
411106ea36 Added pragma _P_ASM_AFTER_VARS to control is ASM blocks should be generated after everything else (vars and string constants) 2026-04-17 23:01:42 +02:00
bc6fdaf8f2 Also removing all function vars, consts and labels when a function is removed on pragma _P_REMOVE_UNUSED 2026-04-13 21:28:16 +02:00
bd4dc5d885 Updated tests so they work with new FuncHandler signature 2026-04-13 20:29:45 +02:00
652e147298 Added functionality to cull unused functions (by pragma _P_REMOVE_UNUSED) 2026-04-13 19:57:16 +02:00
4660b54d70 Added unused function warning. 2026-04-13 16:59:45 +02:00
51b9476a85 Fixed disabling some pragmas and test to go with them 2026-04-13 16:02:16 +02:00
2d2d665ebd Added pragma _P_IGNORE_UNUSED to suppress warnings for unused variables. 2026-04-13 15:13:21 +02:00
865930b161 Cleaned up bitfield handling so it's future proof (OR) 2026-04-13 13:36:59 +02:00
b400728893 Added so line numbers and source files are indicated on types declared but never used 2026-04-13 13:16:32 +02:00
0bfbfcdde5 Now unused vars seem to work 2026-04-13 12:57:27 +02:00
b25c11ae64 First commit refactoring and centralizing constant handling all over 2026-04-13 12:21:11 +02:00
4f4df41c18 Local variable expansion when calling macro 2026-03-04 22:32:53 +01:00
4acd8f2e87 Local variable expansion and macro expansion in ASM block now takes into account comments and ommits those. 2026-02-13 09:29:40 +01:00
83a0a20393 Added SCRIPT MACRO blocks 2026-02-11 13:56:21 +01:00
c6b67f8044 Added SCRIPT LIBRARY block for reusable StarLark code. 2026-02-11 13:25:07 +01:00
d717002b27 Updated FOR loop to do check at NEXT instead of at FOR handling edge cases 255 and 65536 better. Removed STEP 2026-01-11 14:45:15 +01:00
275f4782c8 Made error messages display the source and some context. 2026-01-03 12:05:02 +01:00
ebad3c2e16 Added call graph functionality and analysis/warning of absolute address variable reuse overlap 2026-01-02 15:15:57 +01:00
e33460d84d Added SWITCH/CASE/DEFAULT/ENDSWITCH 2025-12-19 22:56:16 +01:00
5f01282df5 Fixed so functions can do type conversion between in/out params and arguments. Lossy conversions give a warning now. 2025-12-12 14:11:31 +01:00
8f947f7149 Fixed func calls with string literal arguments and $-replacements in #DEFINE. memlib.c65 is still borked. 2025-11-21 16:27:57 +01:00
040c03467b Fixed to function without params can be called as myfunction() with empty parens 2025-11-21 10:59:51 +01:00
4f51572477 Changed for to not implement DOWNTO. 2025-11-17 23:58:51 +01:00
37296cf627 First non-working version of FOR/NEXT loops. (tests failing) 2025-11-17 22:19:20 +01:00
4b5f8b30b7 Renamed loop stacks to prepare for FOR loop 2025-11-17 21:20:29 +01:00
c8c1d7e705 Added support for absolute variable declarations in func declarations. 2025-11-17 20:40:24 +01:00
d57a40a7cf Improved funchandler.go HandleFuncCall to handle consts and expressions better 2025-11-08 13:46:41 +01:00
af315647bd Added Starlark scripting language for SCRIPT blocks. 2025-11-06 06:57:06 +01:00
d09a039697 Generate ASM, ENDASM and SCRIPT, ENDSCRIPT asm comments in output 2025-11-06 05:35:27 +01:00
bacd4851ef Added incr and decr and also local variable expansion in asm blocks. 2025-11-05 18:49:54 +01:00
bea0640f0b Added while break wend with a generic comparisonGenerator object 2025-11-04 17:45:41 +01:00
88f90fe5be Added and, or, xor and subtract commands 2025-11-02 18:07:14 +01:00
ac40f67ec0 Added ADD command 2025-11-02 00:43:23 +01:00
89d8493192 Added compiler, command and the BYTE command for a first iteration. 2025-11-01 18:50:01 +01:00
558dc8657c Added funchandler.go + tests 2025-10-27 20:56:43 +01:00
495aaeb6c0 Changed the delimiter between scope name and variable name to underscore and updated tests 2025-10-27 19:43:33 +01:00
8b4c7dc0d4 Added conststr + tests for handling constant strings. 2025-10-26 21:06:11 +01:00
134dbd1d3c Added labelstack and symboltable. 2025-10-26 17:10:18 +01:00