Irmen de Jong
|
a862a81480
|
added unit test for name shadowing warning
|
2022-06-04 21:35:48 +02:00 |
|
Irmen de Jong
|
1e61d84fd1
|
vm: fix expression codegen for pointer indexing
|
2022-06-04 19:32:35 +02:00 |
|
Irmen de Jong
|
c40cfaa388
|
preparing optimizing pointer indexing
|
2022-06-04 14:23:02 +02:00 |
|
Irmen de Jong
|
ba614801ee
|
cleanup
|
2022-05-22 23:11:22 +02:00 |
|
Irmen de Jong
|
dad5b17ac8
|
fix regression compiler crash in string comparison
|
2022-05-08 13:47:24 +02:00 |
|
Irmen de Jong
|
fef52c0112
|
automatically convert multi-compare expression (if X==1 or X==2..) to contaiment check if X in [1,2,..]
|
2022-05-08 13:21:34 +02:00 |
|
Irmen de Jong
|
8c4765b386
|
vm: support non-unary functions in pipe expressions
|
2022-05-07 20:42:05 +02:00 |
|
Irmen de Jong
|
7eea97d741
|
- floats: remove all floating point builtin functions and move them to the floats module instead
|
2022-04-22 00:45:54 +02:00 |
|
Irmen de Jong
|
6f2fdbe447
|
added %option merge, also fixed problem with unit test building in newer IntelliJ version
|
2022-04-15 22:38:32 +02:00 |
|
Irmen de Jong
|
220246278a
|
removed sum(), max(), min(). abs() now always returns uword type.
This greatly simplifies internal handling of builtin functions by always having one fixed return type.
|
2022-04-14 00:21:16 +02:00 |
|
Irmen de Jong
|
ab1766a559
|
moved all *integer* builtin trig functions (sin8u, cos8u etc) as regular asmsubs in math module
|
2022-04-13 00:27:35 +02:00 |
|
Irmen de Jong
|
3f6393f732
|
PtNumber can now be compared
|
2022-04-10 17:48:03 +02:00 |
|
Irmen de Jong
|
b6eb343234
|
moving string escaping out of antlr project
|
2022-04-10 17:31:30 +02:00 |
|
Irmen de Jong
|
036d9dbe59
|
got rid of unnecessary cast of boolean expressions by making their type dynamically adjust to byte or word
|
2022-04-04 23:43:55 +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
|
3b6e7eccdd
|
simplified containment check, only possible on string and arrays (as per the docs)
|
2022-03-27 16:59:55 +02:00 |
|
Irmen de Jong
|
3e44620966
|
add unit test for the string encoders special handling of 0x0000 and 0x8000-0x80ff
|
2022-03-25 18:26:23 +01:00 |
|
Irmen de Jong
|
27f6d47efa
|
working on vm codegen
|
2022-03-24 23:26:57 +01:00 |
|
Irmen de Jong
|
ff57c5e9d3
|
working on vm and new ast
|
2022-03-21 01:36:11 +01:00 |
|
Irmen de Jong
|
9b16d7c786
|
working on vm
|
2022-03-20 15:06:29 +01:00 |
|
Irmen de Jong
|
7d2bf892b1
|
added start of virtual machine compilation target
|
2022-03-19 00:57:35 +01:00 |
|
Irmen de Jong
|
92737bb695
|
better handling of loadAddress
|
2022-03-13 16:21:02 +01:00 |
|
Irmen de Jong
|
4a0031080a
|
getting rid of directives in new Ast
|
2022-03-13 00:30:20 +01:00 |
|
Irmen de Jong
|
3961f26635
|
consolidating modules
|
2022-03-11 20:45:39 +01:00 |
|
Irmen de Jong
|
e51c274a18
|
reducing dependencies
|
2022-03-11 20:32:35 +01:00 |
|
Irmen de Jong
|
e75d0c58a9
|
reducing dependencies
|
2022-03-10 23:46:43 +01:00 |
|
Irmen de Jong
|
9a798360f4
|
introduced codeAst and codeCore modules to reduce dependencies
|
2022-03-10 22:38:16 +01:00 |
|
Irmen de Jong
|
844ad09464
|
reducing dependencies
|
2022-03-10 21:36:51 +01:00 |
|
Irmen de Jong
|
abcdd331db
|
started with a simulator
|
2022-03-10 21:23:00 +01:00 |
|
Irmen de Jong
|
775d136b91
|
new compileText result
|
2022-03-10 21:22:32 +01:00 |
|
Irmen de Jong
|
dc93691fd9
|
working on new ast
|
2022-03-10 21:22:32 +01:00 |
|
Irmen de Jong
|
48d782c69c
|
added flat mapping to symboltable
|
2022-03-10 21:22:31 +01:00 |
|
Irmen de Jong
|
0a04e626d7
|
added new intermediate (simplified) AST meant for new codegen
|
2022-03-10 21:21:15 +01:00 |
|
Irmen de Jong
|
251b6fcf70
|
reducing dependencies
|
2022-03-10 02:09:34 +01:00 |
|
Irmen de Jong
|
ab1fffb721
|
reducing dependencies
|
2022-03-10 01:41:42 +01:00 |
|
Irmen de Jong
|
da352a322c
|
reducing dependencies
|
2022-03-10 01:27:27 +01:00 |
|
Irmen de Jong
|
7d20458e82
|
fixed arrayliteral regression
|
2022-03-10 01:02:40 +01:00 |
|
Irmen de Jong
|
5a54066f81
|
unravel more dependency of SymbolTable on the ASt nodes (Expression), and fix initializing zp-allocated array
|
2022-03-09 01:42:05 +01:00 |
|
Irmen de Jong
|
9872f43cbf
|
repeat-forever loop is now replaced by label+jump
|
2022-03-08 03:25:34 +01:00 |
|
Irmen de Jong
|
db7ae028b2
|
simplified CompilationResult a bit
|
2022-03-07 21:41:12 +01:00 |
|
Irmen de Jong
|
f7aa0c45df
|
optimize imports
|
2022-03-05 15:54:42 +01:00 |
|
Irmen de Jong
|
067283834a
|
got rid of old IVariablesAndConsts object
|
2022-03-05 14:40:41 +01:00 |
|
Irmen de Jong
|
496245c801
|
working on symboltable
|
2022-03-05 12:10:20 +01:00 |
|
Irmen de Jong
|
859ab36347
|
variables extraction moved to the very end, so no need anymore to change the table after the fact
|
2022-03-04 23:12:24 +01:00 |
|
Irmen de Jong
|
1d740c7c36
|
removed need to store ast scope on each zp allocated var, now uses scoped name to find them
|
2022-03-04 22:58:05 +01:00 |
|
Irmen de Jong
|
38beebe720
|
fix pipe check for number of args
|
2022-03-02 21:29:09 +01:00 |
|
Irmen de Jong
|
fc1c3c6808
|
working on altered pipe syntax
|
2022-03-02 20:58:38 +01:00 |
|
Irmen de Jong
|
96ba895b84
|
working on altered Pipe syntax
|
2022-02-27 02:42:28 +01:00 |
|
Irmen de Jong
|
df35dfe3bf
|
added atari XEX output format with default $2000 load address
|
2022-02-26 15:36:22 +01:00 |
|
Irmen de Jong
|
c5504c6657
|
added ATASCII encoding table for atari
|
2022-02-25 23:48:39 +01:00 |
|
Irmen de Jong
|
eeb3c968d6
|
streamline handling of launcher type and program load address. %address is now required if not using a basic-launcher.
|
2022-02-22 22:43:14 +01:00 |
|
Irmen de Jong
|
6a0551cea1
|
added 'atari' compiler target beginnings (Atari 800 XL)
also default char and string encoding now taken from compiler target
|
2022-02-22 00:52:35 +01:00 |
|
Irmen de Jong
|
553f3b45d2
|
compile time calculated values of sin/cos routines fixed to be identical to the results of the run-time functions
|
2022-02-21 21:30:42 +01:00 |
|
Irmen de Jong
|
21e9723bb2
|
allow the last term in a pipe statement to be a variable, rewrites this as var = <rest of pipe>
|
2022-02-21 02:33:19 +01:00 |
|
Irmen de Jong
|
60b2c44a44
|
fix returntype handling of builtinfunctions, fix errors in pipe expressions
|
2022-02-21 01:44:29 +01:00 |
|
Irmen de Jong
|
7aa807ec7f
|
proper error if attempting to do a containment check against non const range, and some cleanup in asmgen
|
2022-02-16 00:39:19 +01:00 |
|
Irmen de Jong
|
4d16e1e14a
|
now checks for invalid text encodings for given compilation target
|
2022-02-15 01:39:12 +01:00 |
|
Irmen de Jong
|
e34dac8dbb
|
remove unit test issue
|
2022-02-15 00:38:51 +01:00 |
|
Irmen de Jong
|
af0e7f7187
|
searching names in inlined assembly now ignores source comments
|
2022-02-13 13:41:12 +01:00 |
|
Irmen de Jong
|
2725c4ad4d
|
slight tweaks to zp and allocator
|
2022-02-12 00:15:52 +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
|
b47fc1c020
|
renames of some Ast node classes
|
2022-02-11 00:34:36 +01:00 |
|
Irmen de Jong
|
08bacdd090
|
temp vars are now dynamically added to AST as needed
|
2022-02-10 02:52:47 +01:00 |
|
Irmen de Jong
|
e5d7316e5d
|
streamlining non-zpvars asmgen using new mechanism
|
2022-02-10 00:09:09 +01:00 |
|
Irmen de Jong
|
b043c3a6da
|
streamlining vars asmgen using new mechanism
|
2022-02-09 21:58:25 +01:00 |
|
Irmen de Jong
|
98b2855b9c
|
cleanups
|
2022-02-09 16:35:52 +01:00 |
|
Irmen de Jong
|
8c2e6971fc
|
start using vars instead of callgraph (2)
|
2022-02-08 21:09:00 +01:00 |
|
Irmen de Jong
|
7d67005709
|
more rewrite variable allocation
|
2022-02-08 20:40:10 +01:00 |
|
Irmen de Jong
|
101fb0b8aa
|
some naming changes and cleanups
|
2022-02-06 23:14:44 +01:00 |
|
Irmen de Jong
|
10de7dc1f9
|
fixed the concurrent modification issue on zeropage when running unit tests in parallel, by not having machine targets be static objects
|
2022-02-06 21:29:06 +01:00 |
|
Irmen de Jong
|
d2309b8114
|
introducing IVariableAllocation (WIP)
|
2022-02-06 18:57:23 +01:00 |
|
Irmen de Jong
|
6bdd81623f
|
cleaning up AsmGen interface
|
2022-02-06 17:07:03 +01:00 |
|
Irmen de Jong
|
8ae3bad6f7
|
fix rts in empty asmsub
|
2022-02-06 05:05:58 +01:00 |
|
Irmen de Jong
|
312949f336
|
added experimental codegen backend option
|
2022-02-05 21:42:03 +01:00 |
|
Irmen de Jong
|
30e1c3307c
|
simplify SourceCode: just read the full text immediately. Also optimized imports.
|
2022-02-05 03:50:54 +01:00 |
|
Irmen de Jong
|
69b9dfa468
|
fix invalid recursion warning for code referencing subroutine but not via a call
|
2022-02-01 23:09:52 +01:00 |
|
Irmen de Jong
|
5c8c64242f
|
callgraph: nameInAssemblyCode searches smarter (for unused())
|
2022-02-01 00:33:05 +01:00 |
|
Irmen de Jong
|
e773be2f58
|
remove no longer needed asmSymbol scoping prefixing, now asmSymbolName are identical to asmVarName
|
2022-01-31 01:47:22 +01:00 |
|
Irmen de Jong
|
990c8e1f18
|
split out 6502 codegen module from various compilertargets module.
|
2022-01-28 00:32:09 +01:00 |
|
Irmen de Jong
|
a170506356
|
simplify IdentifierReference equality check back to default (name+pos)
|
2022-01-27 23:32:55 +01:00 |
|
Irmen de Jong
|
5ecf2a3357
|
enable more optimizations for typecasted assignments. Fixed missing codegen for assigning bytes to words in certain cases.
|
2022-01-27 18:05:25 +01:00 |
|
Irmen de Jong
|
e2b8c069d7
|
check for missing '&' in string + value expressions (can't just add a value to a string)
|
2022-01-24 23:30:40 +01:00 |
|
Irmen de Jong
|
b7d06f2c0a
|
API change: added alignment parameter to memory() function
|
2022-01-24 18:58:57 +01:00 |
|
Irmen de Jong
|
3401cb5b4a
|
fixed compiler recursion crash when returning certain typecasted value
|
2022-01-23 19:13:20 +01:00 |
|
Irmen de Jong
|
5766208207
|
fix compiler crash when initializing an array var with another array var
|
2022-01-23 14:23:34 +01:00 |
|
Irmen de Jong
|
7afc96112b
|
now correctly requires using & (address-of) when assigning the address of a label or subroutine, used to generate invalid code when it was omitted
|
2022-01-23 02:23:30 +01:00 |
|
Irmen de Jong
|
7bb41a30ed
|
fixed compiler crash when assigning number larger than 65535
|
2022-01-23 01:44:16 +01:00 |
|
Irmen de Jong
|
9219ec539d
|
allow "goto pointervar" for indirect jumps
|
2022-01-21 22:55:59 +01:00 |
|
Irmen de Jong
|
651c383668
|
refactor encoder to be the same for all 3 machine targets now
|
2022-01-19 21:21:33 +01:00 |
|
Irmen de Jong
|
674295e800
|
improve error reporting from string encoders
|
2022-01-19 21:21:33 +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
|
3b59592110
|
generalize string encoding flag into enum
|
2022-01-18 21:21:49 +01:00 |
|
Irmen de Jong
|
d916027e75
|
labels no longer start with '_' fixes #62
|
2022-01-17 22:03:53 +01:00 |
|
Irmen de Jong
|
8966d2aa06
|
comments and prepare new version 7.7
|
2022-01-16 23:03:00 +01:00 |
|
Irmen de Jong
|
fe51698579
|
tweak how zp varnames are stored
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
a798fe72d3
|
cx16 reserved zp vars (virtual registers)
|
2022-01-16 17:20:36 +01:00 |
|
Irmen de Jong
|
7dd2517f67
|
fix Zp allocation issues
|
2022-01-16 17:20:36 +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
|
056ec986c2
|
use var initializer assignments in a clearer way
|
2022-01-11 00:34:44 +01:00 |
|