Commit graph

54 commits

Author SHA1 Message Date
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
35e4b77ee3 optimized xor generation somewhat. 2026-01-02 14:10:53 +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
22e6759409 Minor optimization on FOR when assignment and loop var is the same 2025-11-27 16:25:33 +01:00
23a721217d Fixed up memlib.c65 and added errors to POKEW and PEEKW if using the same variable for pointer and value. 2025-11-22 11:26:19 +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
c6b3e619c3 Added xor (^) operator to constant expressions 2025-11-20 22:01:23 +01:00
1617297067 New syntax to PEEK and added tests 2025-11-20 20:19:45 +01:00
315be292bf Added sensible handling for byte iterators 2025-11-18 23:23:05 +01:00
4f51572477 Changed for to not implement DOWNTO. 2025-11-17 23:58:51 +01:00
ee74135839 Fixed up comparision operator for FOR 2025-11-17 22:58:58 +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
c543dde600 Changed binary prefix from ! to % (as acme) 2025-11-09 12:15:50 +01:00
d57a40a7cf Improved funchandler.go HandleFuncCall to handle consts and expressions better 2025-11-08 13:46:41 +01:00
2dc591f40d Optimized equality and non equality tests with zero in comparison.go 2025-11-06 07:09:19 +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
6085bccad3 Added all peeks, pokes, pointer, gosub and subend 2025-11-05 23:23:56 +01:00
5b3e5737b8 Added label and origin commands. 2025-11-05 19:29:35 +01:00
aedc605445 Added goto 2025-11-05 19:14:26 +01:00
bacd4851ef Added incr and decr and also local variable expansion in asm blocks. 2025-11-05 18:49:54 +01:00
7ac90260af Added function handling using FuncHandler 2025-11-05 18:08:25 +01:00
afc340d52d IF and WHILE now take single operator 2025-11-04 20:47:04 +01:00
3d6f786949 Updated while_test.go to new code generation. Added new versions of IF, ELSE, ENDIF based on comparison.go 2025-11-04 20:01:52 +01:00
df7e5349ac Optimized operand byte and lo-byte comparisons. 2025-11-04 19:14:09 +01:00
5a944c65af Removed redundant cmp #0 after lda 2025-11-04 17:58:41 +01:00
cbecb769a0 Fix for longjumps. 2025-11-04 17:56:06 +01:00
bea0640f0b Added while break wend with a generic comparisonGenerator object 2025-11-04 17:45:41 +01:00
a0e8bf40ea Added basic equal / not equal versions of if/else/endif 2025-11-02 21:40:28 +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
f529835ba8 Fixed preprocessor tests 2025-11-01 19:54:01 +01:00
8c0056365e Added WORD command 2025-11-01 19:42:32 +01:00
ff64cc6b93 First main.go driver with only the BYTE command finished. 2025-11-01 18:55:48 +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
ce45f71b99 PreProcessor rewritten, ready for script blocks, no tokenization, emits Kind of source line (if asm, script or source) 2025-10-17 16:59:41 +02:00
a962e4acb7 Added example usage code for MultiIndex. Added unit tests for MultiIndex 2025-10-14 20:57:24 +02:00
63e321fd20 Added MultiIndex (replaces TMbsl in old version). Commented in main to make it compile 2025-10-14 20:42:05 +02:00
b251a7dd79 Cleanup imports 2025-10-13 09:58:03 +02:00
b9ec630026 Preprocessor first version. Unit test covered. Nothing tested yet with real code. 2025-10-12 17:46:28 +02:00
3e0422bf24 Preprocessor first version. Unit test covered. Nothing tested yet with real code. 2025-10-12 17:30:36 +02:00