Irmen de Jong
0d4dd385b8
added '%ir' to write inline IR code, '%asm' is now only for real 6502 assembly.
...
(%ir is probably only used in the library modules for the virtual machine target)
2022-09-30 15:12:26 +02:00
Irmen de Jong
bb5ffb24a8
add IDEA antlr parser build info to documentation
2022-08-21 13:32:31 +02:00
Irmen de Jong
7ef4ddf0f3
fixed operator precedence: bitwise must come before comparisons
2022-08-14 12:34:00 +02:00
Irmen de Jong
41f4e22a17
introduce BOOL type
2022-07-07 22:23:56 +02:00
Irmen de Jong
5a756aaed9
Pipe expression "|>" removed from the language
2022-06-12 18:41:42 +02:00
Irmen de Jong
627aa61184
clean up subroutine inlining, basis for new try
2022-05-09 15:42:58 +02:00
Irmen de Jong
b133d51a83
make the parser report '&&' as an error instead of treating it as bitwise and followed by address-of.
2022-04-02 02:08:01 +02:00
Irmen de Jong
ed30108961
removed '**' power-operator. Use floats.pow() instead.
2022-03-27 13:16:34 +02:00
Irmen de Jong
e227cc92ff
new ast: regular subroutine has just 0 or 1 return type
2022-03-12 14:12:06 +01:00
Irmen de Jong
73dbdbcbe6
module rename
2022-03-11 21:24:16 +01:00
Irmen de Jong
96ba895b84
working on altered Pipe syntax
2022-02-27 02:42:28 +01:00
Irmen de Jong
c8cd6e9460
removed old @"screencodes" string encoding syntax (use sc:"hello" instead)
2022-02-11 22:07:14 +01:00
Irmen de Jong
6b02f2eea0
implement iso encoding and new string encoding syntax, fixes #38
2022-01-19 21:21:32 +01:00
Irmen de Jong
641477d6f6
add @requirezp and allow str/array to be on zp (with warning)
2022-01-16 17:20:32 +01:00
Irmen de Jong
c58b8a4973
fix ast to source: @shared wasn't printed
...
fix grammar: @shared and @zp can occur in any order now in vardecl
2022-01-13 02:29:55 +01:00
Irmen de Jong
7dd7e562bc
pipes also as expressions, cleanup codegen, fix various typecasting issues
2022-01-08 13:45:19 +01:00
Irmen de Jong
8f3df3039a
added pipe operator `|>
`
2022-01-06 22:54:18 +01:00
Irmen de Jong
de6ce4a46e
add "X in [1,2,3]" expression (efficient containment check)
2021-12-29 17:26:00 +01:00
Irmen de Jong
77c2b2b326
fix position of @shared in array var declarations so that the order is now type[] @shared
2021-12-16 20:36:05 +01:00
Irmen de Jong
33061aaa0d
fix: allow scoped variables such as cx16.rX as loop variable in forloops
2021-12-10 14:59:04 +01:00
Irmen de Jong
81deed143b
fix grammar problem: \x and \u escape sequences didn't work in character literals.
2021-12-05 18:11:40 +01:00
Irmen de Jong
a9b0400d13
fixed 'not' operator priority: it now has higher priority as or/and/xor.
2021-11-08 18:38:04 +01:00
Irmen de Jong
51b2e41879
libs updated to maven
2021-10-12 03:33:52 +02:00
Irmen de Jong
1625e4eb85
rename prog8Parser (generated java) to Prog8ANTLRParser
2021-10-09 16:56:39 +02:00
Irmen de Jong
fd1f30f92b
removed %target directive (didn't add much, too confusing, only supported single target)
2021-09-04 15:01:16 +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
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
f5ba072294
removed str_p and str_ps pascal string types, fixes #10
2019-03-10 18:11:26 +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
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
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