Irmen de Jong
dfb3257c04
reserve the 'pointer' datatype name, it can no longer be used as a symbol name
2026-10-13 00:00:26 +02:00
Irmen de Jong
8bcd176746
fix invalid parsing of ^^pointer
2026-10-12 20:45:12 +02:00
Irmen de Jong
f086918e6f
add union types: structs where every field is at offset 0, thus saving memory
2026-09-23 00:07:44 +02:00
Irmen de Jong
7ba2ee9857
added named struct field initializers
2026-09-14 00:56:22 +02:00
Irmen de Jong
a025d68291
added %assert expression, "message"
2026-09-13 23:04:56 +02:00
Irmen de Jong
9ac60eec40
fix some more pointer syntax related issues
2026-09-09 01:33:43 +02:00
Irmen de Jong
94822b8662
Add arrays of struct instances (StructType[N] vars)
...
Parser: accept `Type[N] name` between type and identifier
(Prog8ANTLR.g4, Antlr2KotlinVisitor) via elementToArray()
for STRUCT_INSTANCE; CodeDesugarer: handle struct-instance
bases, addressOfStructInstance(), whole-struct memcopy
(points[a]=points[b]), and fix variable-index 16-bit scaling
in 6502 AssignmentAsmGen.computeStructArrayElementAddress();
IR: preserve STRUCTDEFS round-trip, VM loader support;
m68k/new6502/intermediate backends; docs + todo updated.
Limitations: not as struct fields (AstChecker/
AstIdentifiersChecker error) nor as sub params.
2026-08-30 14:14:49 +02:00
Irmen de Jong
b0d50c2a68
preserve block comments in compiler AST and AST output
2026-08-30 02:33:30 +02:00
Irmen de Jong
561f31329d
support pointer assignment targets like (expr as ^^Struct).field = v and func().field = v (grammar + CodeDesugarer poke desugar, IR pointer-cast widening, tests/docs)
2026-08-24 23:00:23 +02:00
Irmen de Jong
f3de26bf6c
for-loop support for list/node iteration, and reverse str/array iteration using step -1
2026-08-21 07:28:39 +02:00
Irmen de Jong
ffb0a4d603
amiga: custom now includes interrupt vector offset symbols, cpuVBR and isPAL (set in grab_system)
2026-08-18 22:07:13 +02:00
Irmen de Jong
f011d3f100
new language feature: %option private_symbols, and public keyword - to manage visibility
2026-08-13 22:05:58 +02:00
Irmen de Jong
ed1abe7e6b
allow (optional) explicit for loop variable type to override the inferred type
2026-08-10 21:20:37 +02:00
Irmen de Jong
57254233e4
Merge branch 'master' into new-codegens
...
# Conflicts:
# codeCore/src/prog8/code/target/NormalMemSizer.kt
2026-07-11 18:22:11 +02:00
Irmen de Jong
5b5f553d37
improved error message when attempting to alias types,
...
fix size test
2026-07-11 17:04:52 +02:00
Irmen de Jong
0e978b250b
added 'pointer' as type alias for uword or long depending on the compilation target's pointer size
2026-07-11 16:59:24 +02:00
Irmen de Jong
1c50e397de
m68k registers
2026-07-05 03:41:59 +02:00
Irmen de Jong
f9b3514f2a
fixes and tests for embedded arrays in structs
2026-06-14 16:18:23 +02:00
Irmen de Jong
be12fb507e
arrays in structs
2026-06-14 15:35:30 +02:00
Irmen de Jong
de706e79de
add friendly error for invalid 2D array syntax
2026-06-10 04:14:32 +02:00
Irmen de Jong
de988f72c6
switch from IDEA iml to Gradle build config, this finally fixes Kotest integration as well
2026-06-08 20:43:54 +02:00
Irmen de Jong
83aeb8846c
add support for private keyword for structs, enums, aliases, variables, and subroutines
2026-05-22 02:27:38 +02:00
Irmen de Jong
5dcc11d67e
try to avoid crash when importing modules twice (via symlink for instance).
2026-04-18 18:06:41 +02:00
Irmen de Jong
d808818506
refactor grammar for signatures
2026-04-15 01:51:58 +02:00
Irmen de Jong
d5a53c5d21
implement missing division operations in VM
2026-04-13 18:48:35 +02:00
Irmen de Jong
59d0f7d49c
2-dimensional array support
2026-04-10 04:22:38 +02:00
Irmen de Jong
db7edde2aa
report multiple parse errors at once.
...
grammar rules improvements.
2026-04-09 07:06:03 +02:00
Irmen de Jong
92751d9285
document links in the LSP, remove repl/beanshell
2026-04-02 21:55:56 +02:00
Irmen de Jong
5fd11ca036
more consistent allowance of inline keyword
2026-03-29 10:15:51 +02:00
Irmen de Jong
5330069b53
disallow weird sizeof argument types
2026-03-29 09:50:13 +02:00
Irmen de Jong
5408a3ca68
fix compiler crash on certain pointer type struct fields
...
added new compiler options for debugging purposes
2026-03-29 08:25:53 +02:00
Irmen de Jong
04910ffbc0
add enum syntax (sugar for list of const decls)
2026-03-10 20:33:43 +01:00
Irmen de Jong
a326c6f079
adding multivalue vardecls and assignments
2026-03-03 00:06:48 +01:00
Irmen de Jong
2613d45cd5
swap() is now a statement instead of a builtin function call
2026-02-17 20:56:21 +01:00
Irmen de Jong
a385412e70
smaller floats.internal_long_to_float()
2026-01-17 20:38:30 +01:00
Irmen de Jong
23d3fb96b9
improved parsing rule of constdecl
2026-01-02 23:36:55 +01:00
Irmen de Jong
928ef6bbaa
fix on..call parse problem, also struct name cannot be a keyword
2025-11-03 21:21:07 +01:00
Irmen de Jong
7e26ecb0b6
allow 'then' in if-expressions to separate condition and result value
2025-10-10 23:26:53 +02:00
Irmen de Jong
37afdf5a18
tweak antlr grammar to improve parsing performance
2025-10-06 01:28:33 +02:00
Irmen de Jong
ad0c767ea8
%breakpoint! introduced to place after an assignment to make it parse correctly
2025-09-20 00:46:15 +02:00
Irmen de Jong
6de95f7a3b
new static struct initializer syntax ^^Node : [1,2,3]
...
avoids confusion with function calls
2025-09-10 13:47:12 +02:00
Irmen de Jong
beb28b061d
fix non-struct pointer deref code bug
...
fix gradle 9 compatibility issue (fixes #175 )
2025-09-04 21:30:20 +02:00
Irmen de Jong
bc58a25765
allow sizeof(^^type) to return the size of a pointer
2025-08-02 11:33:15 +02:00
Irmen de Jong
9f6106452e
revert & to untyped pointer, added && for typed pointer address-of
2025-07-07 16:17:07 +02:00
Irmen de Jong
d5cc414221
Merge branch 'master' into structs
...
# Conflicts:
# codeOptimizers/src/prog8/optimizer/StatementOptimizer.kt
# compiler/src/prog8/compiler/astprocessing/CodeDesugarer.kt
# compilerAst/src/prog8/ast/antlr/Antlr2Kotlin.kt
# examples/test.p8
2025-06-02 20:52:50 +02:00
Irmen de Jong
0456badd02
creating on a new visitor-based antlr to kotlin translator
2025-06-02 01:18:07 +02:00
Irmen de Jong
d28f154f1c
Merge branch 'master' into structs
...
# Conflicts:
# examples/test.p8
# parser/src/main/antlr/Prog8ANTLR.g4
2025-06-01 17:53:41 +02:00
Irmen de Jong
a87f2640d3
fixed signed byte comparisons in case of overflowing values
2025-06-01 14:01:25 +02:00
Irmen de Jong
8e7bbcdbe0
clear syntax error for yet unsupported deref after array indexing
2025-05-29 21:14:38 +02:00
Irmen de Jong
8a0c02e264
Merge branch 'refs/heads/master' into structs
...
# Conflicts:
# codeCore/src/prog8/code/target/NormalMemSizer.kt
# codeCore/src/prog8/code/target/VMTarget.kt
# compiler/src/prog8/compiler/BuiltinFunctions.kt
# compilerAst/src/prog8/ast/antlr/Antlr2Kotlin.kt
# examples/test.p8
2025-05-29 13:42:16 +02:00