4bdf50145e
recognise \t character (TAB) in string literals (note: only valid in iso encoding)
2024-03-10 13:20:09 +01:00
04f7b772a3
lib updates, removed unused and obsolete http and dbus modules
2024-03-05 23:42:35 +01:00
1581381467
streamline
2024-02-20 23:35:04 +01:00
5522a305ab
add -dumpvars option to dump all allocated variables (zp, normal ram, etc)
2024-02-10 18:42:31 +01:00
e941d2665a
preparing for new array copy codegen
2024-02-09 18:22:41 +01:00
9d6d98930b
fix ast printing of & array-element
2024-02-08 21:27:53 +01:00
24944ad49e
added string.strip() and string.trim() and l/r variants.
...
fixed memsizer for pointers-to-ubyte.
2024-02-07 02:09:08 +01:00
358215e4dd
removed postIncrDecr (still allow ++/-- to be parsed into +=1/-=1)
2024-02-06 18:50:08 +01:00
abcdfd8e28
optimize postincrdecr on memory a bit
2024-02-03 22:33:27 +01:00
b0f5b6925d
getting rid of pointer[idx] in ast, instead always use @(ptr+idx)
2024-02-03 19:22:04 +01:00
ef79d0c43e
fix temp variable name clash resulting in faulty code in certain common subexpression optimization
2024-02-03 19:20:28 +01:00
680f5d21ee
normalize DOS line endings to just \n, fixes source lines in asm for \r\n source files
2024-02-03 12:53:21 +01:00
64c132ee0a
changed -breakinstr option so that you now specify the exact instruction to use for a %breakpoint.
...
also fixed a IR issue with x=not x.
2024-01-22 22:01:47 +01:00
87c46ba730
check boolean array size mismatch.
...
check for weird string assignment.
check for X16 problematic cpu instructions rmb, smb, bbr, bbs.
tweak number node equality wrt bool type
2024-01-21 19:15:22 +01:00
69075376dc
get rid of the noshortcircuit fallback
2024-01-17 21:24:41 +01:00
3b199a2a87
added cx16 example: automatons.
...
added debug mode and RTC to cx16 emulator launchers.
dt error details.
2024-01-12 21:40:30 +01:00
4a4b6c04a1
tweak common subexpression optimization for array lookups
2024-01-07 22:37:15 +01:00
6d9fccacb1
boolean not expression tweaks and optimizations
2024-01-05 13:32:16 +01:00
bfd3edb617
fix expression evaluation bug where intermediate values were overwritten, yielding the wrong result
2024-01-04 21:04:11 +01:00
242a3eec63
fix data type difference error on range from and to values
2024-01-03 21:46:22 +01:00
517ea82b99
fixed todos in Ast printer
2024-01-01 23:52:03 +01:00
d1f8ee1e56
replace most common subexpressions by a single temp variable
2024-01-01 14:57:24 +01:00
1c55a6c6dc
shortcutting part one
2023-12-30 03:54:12 +01:00
f790182f0b
adding short-circuit boolean expression evaluation (in IR codegen) also -noshortcircuit cli option
2023-12-30 01:08:41 +01:00
9c1b11d605
some WARN messages are now INFO
2023-12-28 14:20:47 +01:00
09c6cb4d6b
replace unwritten vars by consts. Improved const eval.
...
Fixed some slight bugs in library code
2023-12-28 05:17:15 +01:00
2b8f613a00
added %option ignore_unused to suppress warnings about unused vars and subs in that module/block.
...
Also improved error for invalid directive.
2023-12-26 23:37:59 +01:00
2eb137618e
refactor block options
2023-12-26 22:13:08 +01:00
4bb2b8ca9b
make isArray a computed property by simply checking the datatype
2023-12-26 19:58:08 +01:00
0a4de45453
get rid of vardecl.declareddatatype
2023-12-26 19:33:58 +01:00
ffdc658dc8
type error tweaks
2023-12-26 18:49:01 +01:00
0d44492086
push,pushw,pop and popw are no longer built-in functions but regular routines in sys
2023-12-26 14:47:31 +01:00
8ae435549d
added -slabshigh N and -slabsgolden for memory() slabs
2023-12-23 20:45:30 +01:00
9b113c0cbb
added -varsgolden to put BSS into Golden Ram at $0400
2023-12-23 20:11:50 +01:00
0e0fac8c4b
BSSHIGHRAM_END more clearly defined (to be inclusive)
2023-12-23 19:05:06 +01:00
ad9eaeafeb
call
now returns a word value
2023-12-22 22:24:11 +01:00
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
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
ae66fcac1e
added call
builtin function for indirect JSR
2023-12-17 15:45:28 +01:00
a8be94de6b
better error message when attempting to cast a float to integer
2023-12-15 22:28:06 +01:00
01c2112881
remove PtJump label, just use identifier with dummy
2023-12-13 04:16:49 +01:00
a546c2247d
optimize if-else handling of asmsub boolean result in status flags
2023-12-13 04:03:21 +01:00
8e4319cd5a
module directive %encoding to set the text encoding for that whole file (iso, petscii, etc.)
2023-12-06 23:54:08 +01:00
f998888d6d
fix some unicode identifier issues
2023-12-05 17:38:23 +01:00
c609e982fe
allow const expression intermediate values to be 32 bits integers to avoid needless overflow errors.
2023-12-03 01:48:12 +01:00
ead8c59bda
allow all character encodings on all compilation targets.
2023-12-02 20:59:50 +01:00
ae2d96c455
added peekf
and pokef
builtin functions. Fixed sizeof() to allow number argument as well.
2023-11-27 23:36:02 +01:00
af5ca2d0b8
vm: treat floats as 64 bits doubles. 0.0 printed as "0".
2023-11-21 00:57:56 +01:00
76c09da961
make pokemon() be like poke, but also return the old value in the memory location.
2023-11-09 22:48:44 +01:00
f68b46fc60
add a %zpallowed option to specify the range of zeropage register that can be used
2023-11-03 00:19:25 +01:00