Commit Graph

158 Commits

Author SHA1 Message Date
Irmen de Jong
c0887b5f08 removed 'continue' statement to be able to generate more optimized loop assembly code. started with for loop optimizations 2020-08-17 19:22:29 +02:00
Irmen de Jong
c38508c262 introduced repeat loop. repeat-until changed to do-util.
forever loop is gone (use repeat without iteration count).
struct literal is now same as array literal [...] to avoid parsing ambiguity with scope blocks.
2020-07-25 16:56:34 +02:00
Irmen de Jong
0c461ffe2e removed Register expression (directly accessing cpu register) 2020-07-25 14:14:24 +02:00
Irmen de Jong
97d36243f2 don't include the generated parser java files in git 2020-03-20 22:53:56 +01:00
Irmen de Jong
1de328b2e8 added forever-loop and optimizer 2020-03-14 18:11:04 +01:00
Irmen de Jong
3245a9b157 restricted block to only directive/subroutine/vardecl/inlineasm 2020-03-14 14:20:55 +01:00
Irmen de Jong
2b28493bba simplified module grammar rules 2020-03-14 13:44:13 +01:00
Irmen de Jong
7fbe486dff fix eval stack register X error in print_uw 2020-03-13 00:50:30 +01:00
Irmen de Jong
8d1a4588d3 added 'downto' range expression 2020-03-11 20:59:14 +01:00
Irmen de Jong
ef6c731bb3 added '@' alternative string/char encoding 2020-03-11 00:32:50 +01:00
Irmen de Jong
98a638a2f3 split asmsub and romsub declarations 2020-03-10 23:09:31 +01:00
Irmen de Jong
96d8a7f0d7 float assembly code moved to separate library file 2020-03-10 22:03:24 +01:00
Irmen de Jong
3162b10392 optimize callgraph 2020-03-10 21:47:15 +01:00
Irmen de Jong
e2358de27c ver 2020-03-10 20:39:30 +01:00
Irmen de Jong
4796c56c35 antlr code back 2020-02-09 01:29:58 +01:00
Irmen de Jong
e2cb031386 added 'void' keyword to explicitly ignore subroutine return values (and no longer get a warning) 2020-02-09 01:29:09 +01:00
Irmen de Jong
3dd38c0ac8 antlr library updated to 4.8 2020-02-07 23:58:07 +01:00
Irmen de Jong
b8816a0e2f got rid of separate str_s datatype 2020-02-07 20:47:38 +01:00
Irmen de Jong
66e0b07428 gradle updates 2020-01-07 01:29:25 +01:00
Irmen de Jong
9afe451b8d fix build script to target jdk 1.8 2019-08-26 21:27:45 +02:00
Irmen de Jong
bb7b063757 revert inline var declaration in for loops 2019-08-18 03:16:23 +02:00
Irmen de Jong
d4a77321d2 tweak gradle to work with openjdk-11 2019-08-11 22:56:54 +02:00
Irmen de Jong
fba149ee28 removed the ~ before block names 2019-07-29 23:11:13 +02:00
Irmen de Jong
fed020825a some more asmgen v2; fixed duplicate label namings, if stmt, and vars in anon scopes 2019-07-28 13:12:13 +02:00
Irmen de Jong
61af72b906 struct literals 2019-07-16 02:36:32 +02:00
Irmen de Jong
16d7927d2f fix arrays and some struct parsing issues 2019-07-15 22:28:05 +02:00
Irmen de Jong
44f9d5e69e added struct syntax 2019-07-12 06:14:59 +02:00
Irmen de Jong
845a99d623 return statement only has one single possible value
astvm can now more or less run all examples
2019-07-10 19:27:44 +02:00
Irmen de Jong
44fe2369d6 multitarget assignments removed 2019-07-10 10:11:37 +02:00
Irmen de Jong
14cabde5cf when statement extended with multiple choice values 2019-07-10 00:25:21 +02:00
Irmen de Jong
5b9cc9592f removed kotlin.reflection dependency
optimized gradle build now using shadowjar
2019-07-09 08:27:47 +02:00
Irmen de Jong
5ff79073f4 added DUP opcodes 2019-07-09 04:09:29 +02:00
Irmen de Jong
f4f113da7b parser for 'when' statement 2019-07-09 00:02:38 +02:00
Irmen de Jong
d6b6254b72 simplified the asmsub syntax 2019-07-08 23:00:18 +02:00
Irmen de Jong
c559682c0b refresh IDE project files 2019-05-30 16:03:53 +02:00
Irmen de Jong
3b37e0f99d new build scripts 2019-04-20 00:50:15 +02:00
Irmen de Jong
e384822b2c array size in vardecl is optional when initializer array value is given 2019-04-16 01:19:51 +02:00
Irmen de Jong
a9bbe0bc40 removed the memory keyword instead use & now (reuse the address-of operator to reduce the number of different concepts in the grammar) 2019-04-12 22:00:32 +02:00
Irmen de Jong
0a73125606 fix auto-insertion of AddressOf expression in function call arguments 2019-04-11 21:32:23 +02:00
Irmen de Jong
8bec4eaa87 rename PointerOf to AddressOf 2019-04-11 21:01:02 +02:00
Irmen de Jong
1069b5f5d5 w.i.p pointer-to 2019-04-04 21:45:30 +02:00
Irmen de Jong
cd2c4e13da cleanups 2019-03-10 18:30:01 +01:00
Irmen de Jong
f5ba072294 removed str_p and str_ps pascal string types, fixes #10 2019-03-10 18:11:26 +01:00
Irmen de Jong
ed43f7cd9b grade: also include parser in fatJar to make it complete, and exclude the huge ic4j library that isn't used 2019-03-02 22:41:21 +01:00
Irmen de Jong
7ff1af3934 avoid zp corruption issues and added zp mode for floating point (todo: allocate) 2019-02-03 00:26:07 +01:00
Irmen de Jong
8e36a64d49 error message for invalid operand types for logical or bitwise operators 2019-01-31 21:38:45 +01:00
Ferenc Boldog
1e89bea288 just changed by build 2019-01-29 12:10:09 +01:00
Ferenc Boldog
2c64f95b06 set antlr source (grammar) directory 2019-01-29 12:09:39 +01:00
Ferenc Boldog
037c78cfaf set current java source directory 2019-01-29 12:09:18 +01:00
Ferenc Boldog
de777b1308 initial version of compiler and parser gradle module 2019-01-29 12:08:21 +01:00
Ferenc Boldog
b3df3c999d package definition for antlr 2019-01-29 12:06:33 +01:00
Irmen de Jong
953cf9a335 preparing for vars on zeropage 2019-01-26 22:46:01 +01:00
Irmen de Jong
6f583e7092 readme 2019-01-26 19:13:42 +01:00
Irmen de Jong
fa8a3c997a Expressions can now be split over multiple lines. Fixed datatype of len(). 2019-01-26 17:32:26 +01:00
Irmen de Jong
f08c2828e9 examples and license for antlr 2019-01-19 20:02:03 +01:00
Irmen de Jong
25e44a54fb stuff 2019-01-19 17:07:01 +01:00
Irmen de Jong
49c3dc3c32 for loop body can be a single statement without curly braces now as well 2019-01-16 22:02:35 +01:00
Irmen de Jong
e3eace9e28 project folder restructure 2019-01-09 23:57:27 +01:00