Commit Graph

61 Commits

Author SHA1 Message Date
meisl
4eb61529f6 */+ rename prog8Parser (generated java) to Prog8ANTLRParser; add Kotlin class Prog8Parser to interface with it 2021-07-09 12:24:17 +02:00
meisl
dcc2549574 * fix 47, add tests 2021-06-18 21:55:03 +02:00
meisl
fcb1a7e4d4 * #40: fix grammar rules module and block s.t. we don't need a "synthesized double EOF" (behavior remains exactly the same) 2021-06-14 22:17:30 +02:00
meisl
ce76a7dfa5 * #40: fix grammar wrt line endings - tests pass 2021-06-14 22:04:22 +02:00
meisl
7c1de81861 * #40: fix mixed line endings test, now intentionally failing (!): also test sole \r AND do not allow any recovery, neither from parser not lexer. 2021-06-14 22:02:26 +02:00
meisl
eddad20acc Merge remote-tracking branch 'remotes/origin/master' into issue40(EOF,EOL) 2021-06-13 22:56:24 +02:00
meisl
7daad57862 + #40: test for mixed (Unix/Win/Mac) line endings - *TODO: test doesn't actually fail with old grammar, but a built jar does - WHY?!* 2021-06-13 22:49:54 +02:00
meisl
3496a30528 * #40: put back in fix for EOL-after-block - tests pass 2021-06-13 20:10:35 +02:00
meisl
32bad5df15 +/* #40: add tests; temporarily undo fix for EOL-after-block so we can see that tests actually fail 2021-06-13 20:08:50 +02:00
Irmen de Jong
3f58eca1be updated gradle scripts (fixed warnings), updated some library dependencies 2021-06-13 18:10:07 +02:00
meisl
e5292696c4 - #40 grammar: remove obsolete note about line endings 2021-06-13 14:38:25 +02:00
meisl
3aa3659bc7 * #40 grammar: handle different EOLs (Win, Unix, Mac) purely in grammar 2021-06-12 20:24:15 +02:00
meisl
b8117394c0 * #40 grammar: don't require EOL after blocks, so .p8 files need not end with that 2021-06-12 17:52:44 +02:00
Irmen de Jong
0e614ad6fc added @shared flag to vardecl to mark variable as shared with assembly code elsewhere, to not have it optimized away 2021-05-19 01:19:25 +02:00
Irmen de Jong
a9a7068818 removed support for structs. It was too much hassle and complexity and subtle bugs. 2021-04-29 00:01:20 +02:00
Irmen de Jong
a086d6e009 allow labels also in blocks instead of only in subroutines 2021-04-18 23:03:18 +02:00
Irmen de Jong
b4700af2f5 fix windows line ending (\r\n) parse errors 2021-04-05 00:12:04 +02:00
Irmen de Jong
170a0183f8 added 'inline' keyword to force inlining of trivial subroutines 2020-12-26 05:34:14 +01:00
Irmen de Jong
daaa83ee7d improved parsing of cpu registers (no more crash when invalid register) also adding CommanderX16 virtual registers language support 2020-12-21 19:19:53 +01:00
Irmen de Jong
b7c1450121 upgrade to Antlr 4.9 2020-12-21 19:19:04 +01:00
Irmen de Jong
3ab641aa21 removed @stack in subroutine args and returnvalues, can only use variables or registers now 2020-10-30 15:02:42 +01:00
Irmen de Jong
1e988116ce fixed precedence of comparison and bitwise operators 2020-10-11 19:02:53 +02:00
Irmen de Jong
dfa1d5e398 removed the ".w" word suffix (it confused the parser). 2020-09-19 23:27:40 +02:00
Irmen de Jong
49a0584c54 added a %target directive 2020-09-09 22:53:34 +02:00
Irmen de Jong
90c4a26d52 we don't implement asmsub params via @stack yet 2020-09-07 01:24:10 +02:00
Irmen de Jong
20cdcc673b identifiers can no longer start with an underscore. (this interfered with 64tass syntax) 2020-08-22 17:03:40 +02:00
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
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
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
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
bb7b063757 revert inline var declaration in for loops 2019-08-18 03:16:23 +02:00
Irmen de Jong
fba149ee28 removed the ~ before block names 2019-07-29 23:11: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
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
e384822b2c array size in vardecl is optional when initializer array value is given 2019-04-16 01:19:51 +02:00