Irmen de Jong
6bc079c7b7
more asm symbol prefixing: variables with p8v_, subroutines with p8s_ etc
...
labels with p8l_ . All this to avoid symbol clashes in the generated assembly code.
Everything got its own distinguishing prefix so we're done with it once and for all and have only 1 breaking change moment.
2023-12-20 22:20:59 +01:00
Irmen de Jong
69f6afe420
block names in asm now prefixed with p8b_ (instead of p8_)
...
as part of fixing var versus block symbol conflict handling
2023-12-19 23:00:20 +01:00
Irmen de Jong
b7279a3d9e
fix 'not in' parsing error
...
fixes #115
2023-12-19 19:49:25 +01:00
Irmen de Jong
a8be94de6b
better error message when attempting to cast a float to integer
2023-12-15 22:28:06 +01:00
Irmen de Jong
e98e951834
fix chained assignment and multi-vardecl RHS evaluation
2023-12-10 16:44:51 +01:00
Irmen de Jong
ef1c665b9a
allow underscores for numerical grouping
2023-12-09 13:13:34 +01:00
Irmen de Jong
d56565be25
fix multi-var decl
2023-12-09 12:32:41 +01:00
Irmen de Jong
e076b3aedc
fix multi-var decl in nested scopes
2023-12-09 12:07:09 +01:00
Irmen de Jong
ae3b2ddf5f
allow multi var declarations for floats too
2023-12-08 23:29:13 +01:00
Irmen de Jong
1bdc427d73
multi var declarations ubyte x,y,z
2023-12-08 22:18:21 +01:00
Irmen de Jong
6a639ce533
chained assignments x=y=z=42
2023-12-08 01:07:16 +01:00
Irmen de Jong
8e4319cd5a
module directive %encoding to set the text encoding for that whole file (iso, petscii, etc.)
2023-12-06 23:54:08 +01:00
Irmen de Jong
ee782e92ac
fix cast error and vm float parsing
2023-12-05 22:51:15 +01:00
Irmen de Jong
b09e0a05bf
some tweaks to errors about long integer literals
2023-12-03 02:45:26 +01:00
Irmen de Jong
c609e982fe
allow const expression intermediate values to be 32 bits integers to avoid needless overflow errors.
2023-12-03 01:48:12 +01:00
Irmen de Jong
c45fbe6310
continue stmt added
2023-11-25 01:14:35 +01:00
Irmen de Jong
62d3f01948
fix name check in inline asm
...
this no longer removes a subroutine that is otherwise only called from inlined asm.
2023-11-21 01:26:50 +01:00
Irmen de Jong
7e3b8c2c59
fix compiler crash on certain subroutine inlining attempts.
2023-11-09 21:16:12 +01:00
Irmen de Jong
3b0d7ea960
better const-evaluation of addressOf a memory mapped variable
2023-11-08 22:04:41 +01:00
Irmen de Jong
ee2888e744
verafx.mult/muls now return upper 16 bits of the result in r0
2023-11-06 21:55:58 +01:00
Irmen de Jong
0904712a00
remove last trace of getTempVar (arry index expression)
...
tiny optimization
2023-10-27 21:41:52 +02:00
Irmen de Jong
880c0a5da8
allow taking address of array element
2023-09-18 04:37:41 +02:00
Irmen de Jong
00b0ec58b4
update to Antlr 4.13.1
2023-09-14 21:11:55 +02:00
Irmen de Jong
6afdd4e6fd
preparing next version
2023-09-12 21:53:49 +02:00
Irmen de Jong
c15c10a94e
fixed 'unroll CONSTANTEXPR' compiler errors
2023-09-05 01:03:35 +02:00
Irmen de Jong
525a9b5036
prepare parser to allow chained array indexing later
2023-09-03 19:06:47 +02:00
Irmen de Jong
66857ca477
prepare parser to be more flexible with array indexed expressions
2023-08-15 13:07:01 +02:00
Irmen de Jong
f98ee326b4
error when doing txt.print('@') where "@" was intended (byte for string parameter)
2023-08-14 19:25:31 +02:00
Irmen de Jong
2c9e50873c
use math.square for optimized X*X calculation (words only).
...
Added IR SQUARE instruction.
2023-08-14 01:05:17 +02:00
Irmen de Jong
7c0bde7310
parser: allow curly brace on next line for asmsub too
...
downgrade antlr4 one version again to what is used in IntelliJ's antlr plugin, to avoid potential version conflicts
2023-08-09 20:01:12 +02:00
Irmen de Jong
c223702ea0
code cleanups
2023-07-30 18:42:45 +02:00
Irmen de Jong
70c9ab9074
upgrade libraries
2023-07-06 23:33:58 +02:00
Irmen de Jong
6d1fdf1ba6
upgrade to Kotlin 1.9.0
2023-07-06 23:03:47 +02:00
Irmen de Jong
0db141eeac
todo
2023-07-02 21:19:33 +02:00
Irmen de Jong
c544b7f5ba
fixing up p8_ prefixing
2023-07-02 21:15:05 +02:00
Irmen de Jong
bb95484c8a
uniform symbol prefixing with p8_
2023-07-02 06:15:09 +02:00
Irmen de Jong
cad18b8a3a
uniform symbol prefixing with p8_
2023-07-02 06:15:02 +02:00
Irmen de Jong
e7b631b087
allow comment lines inside array initializer value
2023-06-27 23:30:37 +02:00
Irmen de Jong
bb35a80177
%option splitarrays now also at module level
2023-05-31 21:50:41 +02:00
Irmen de Jong
bb9d29b061
fix an array literal assignment type error for word arrays
2023-05-30 22:46:37 +02:00
Irmen de Jong
52a77db60f
adding split array type
2023-05-26 19:11:07 +02:00
Irmen de Jong
91e1643627
update 3rd party libraries
2023-05-18 11:47:30 +02:00
Irmen de Jong
1fa2e2e37d
3rd party library versions upgrades
2023-03-26 21:36:21 +02:00
Irmen de Jong
6218c1c00b
fix too greedy expression simplification
...
could cause problems when variables occur multiple times in the same expression.
Fixes #101
2023-03-22 18:25:28 +01:00
Irmen de Jong
1152191f48
add optimization: replace simple for loops by repeat loop
2023-03-15 21:11:37 +01:00
Irmen de Jong
af1b07ad44
add more referencesIdentifier() on ast nodes
2023-03-15 20:44:24 +01:00
Irmen de Jong
ff6948cf2d
syntax defs for unroll
2023-03-14 23:52:07 +01:00
Irmen de Jong
fd25e85d59
added unroll
loop construct
2023-03-14 23:37:49 +01:00
Irmen de Jong
f20ca06f85
give correct error when using memory mapped var as array pointer
2023-03-11 00:26:19 +01:00
Irmen de Jong
25199dfb43
change tokenizer so that A,X,Y now are parsed correctly as identifiers as well
2023-03-08 22:57:19 +01:00