Irmen de Jong
a8898a5993
using sealed class instead of interface
2019-07-17 02:35:26 +02:00
Irmen de Jong
e03c68b632
optimize imports
2019-07-17 02:11:16 +02:00
Irmen de Jong
411bedcc46
fixed assignment type error with structs
...
added structs example
2019-07-16 23:56:00 +02:00
Irmen de Jong
07d8caf884
string literal concatenation and repeating added again
2019-07-16 23:34:43 +02:00
Irmen de Jong
4dbf4b2005
tweaks about initialization values
2019-07-16 20:32:23 +02:00
Irmen de Jong
61af72b906
struct literals
2019-07-16 02:36:32 +02:00
Irmen de Jong
17be722e2b
arrays without init value are once again cleared with zeros
2019-07-15 23:05:04 +02:00
Irmen de Jong
16d7927d2f
fix arrays and some struct parsing issues
2019-07-15 22:28:05 +02:00
Irmen de Jong
55a7a5d9d5
fix aggregate functions in astvm
2019-07-15 03:57:51 +02:00
Irmen de Jong
78d7849197
fixes
2019-07-15 03:08:26 +02:00
Irmen de Jong
d5b12fb01d
made astchecker readonly
2019-07-15 01:47:59 +02:00
Irmen de Jong
31f4e378aa
split up Literalvalue into numeric and reference ones
2019-07-15 01:11:32 +02:00
Irmen de Jong
8a26b7b248
- fixed lookup of members in structs defined in another scope
...
- preserve order of variable definitions in the Ast (and thus, the output)
2019-07-13 23:03:22 +02:00
Irmen de Jong
87c28cfdbc
restructure c64 machinedefinition
2019-07-13 03:16:48 +02:00
Irmen de Jong
1f5420010d
prevent struct member vars from shuffling around, can take address of struct now
2019-07-13 01:16:34 +02:00
Irmen de Jong
a089c48378
finalize v 1.11
2019-07-12 20:31:18 +02:00
Irmen de Jong
3e5deda46c
struct finished
2019-07-12 20:07:41 +02:00
Irmen de Jong
7500c6efd0
struct fixes
2019-07-12 17:57:56 +02:00
Irmen de Jong
717b5f3b07
struct fixes
2019-07-12 16:40:18 +02:00
Irmen de Jong
9f6fa60bf1
prepare
2019-07-12 14:38:37 +02:00
Irmen de Jong
1e9586f635
Structs can be compiled and executed in the vm! structs are just syntactic sugar for a set of variables for now.
2019-07-12 12:41:08 +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
3d7a4bf81a
astvm can now more or less run all examples
2019-07-10 18:44:54 +02:00
Irmen de Jong
d4b3e35bd2
astvm almost complete
2019-07-10 16:50:41 +02:00
Irmen de Jong
a59f7c75dc
fixed some compile time and vm arithmetic errors
2019-07-10 13:33:52 +02:00
Irmen de Jong
44fe2369d6
multitarget assignments removed
2019-07-10 10:11:37 +02:00
Irmen de Jong
aaaab2cfcf
fix asm gen for loops when dealing with registers as loopvar
2019-07-10 08:51:05 +02:00
Irmen de Jong
9a3dab20dc
extra warnings about register usage in loops
2019-07-10 08:30:17 +02:00
Irmen de Jong
20379b5927
fixed astvm postincrdecr and rsave/rrestore
2019-07-10 08:13:42 +02:00
Irmen de Jong
34dcce67e4
fixed petscii conversion when printing text
2019-07-10 07:10:34 +02:00
Irmen de Jong
0c7f107d01
fix irq routine removal
2019-07-10 03:57:03 +02:00
Irmen de Jong
1f89571aa5
proper NOP removal
2019-07-10 03:06:31 +02:00
Irmen de Jong
7eed1ebbf8
optimized typecasting more
2019-07-10 02:54:39 +02:00
Irmen de Jong
12cb7d7abe
optimize redundant typecasts more
2019-07-10 01:52:04 +02:00
Irmen de Jong
c9b16dcbd9
nicer printing of arrays, fix inc/dec overflow issue in runtimevalue
2019-07-10 01:16:32 +02:00
Irmen de Jong
dcab6d00bb
ver
2019-07-10 00:50:18 +02:00
Irmen de Jong
14cabde5cf
when statement extended with multiple choice values
2019-07-10 00:25:21 +02:00
Irmen de Jong
2a0c3377f9
fixed Nop statements without parent
2019-07-09 23:27:09 +02:00
Irmen de Jong
16454f5560
optimized when asm
2019-07-09 21:59:50 +02:00
Irmen de Jong
c1343a78f1
when working correctly in asm (corrected dup & cmp)
2019-07-09 21:41:47 +02:00
Irmen de Jong
9d0c65c682
when working correctly in stackvm and astvm
2019-07-09 20:39:08 +02:00
Irmen de Jong
9e6408244f
fix scoping of variables in when statement
2019-07-09 19:44:59 +02:00
Irmen de Jong
3581017489
added ast printing of when statement
2019-07-09 09:02:56 +02:00
Irmen de Jong
9bc36b4d99
Merge remote-tracking branch 'origin/master'
...
# Conflicts:
# compiler/src/prog8/ast/Interfaces.kt
# compiler/src/prog8/ast/expressions/AstExpressions.kt
# compiler/src/prog8/ast/processing/AstChecker.kt
# compiler/src/prog8/ast/processing/IAstModifyingVisitor.kt
# compiler/src/prog8/ast/processing/IAstVisitor.kt
# compiler/src/prog8/ast/processing/StatementReorderer.kt
# compiler/src/prog8/ast/statements/AstStatements.kt
# compiler/src/prog8/compiler/AstToSourceCode.kt
# compiler/src/prog8/compiler/target/c64/AsmGen.kt
# compiler/src/prog8/optimizer/StatementOptimizer.kt
# examples/test.p8
2019-07-09 08:44:23 +02:00
Irmen de Jong
e8caf6d319
1.9
2019-07-09 08:42:38 +02:00
Irmen de Jong
5b9cc9592f
removed kotlin.reflection dependency
...
optimized gradle build now using shadowjar
2019-07-09 08:27:47 +02:00
Irmen de Jong
3cf87536ff
fix asmsub syntax
2019-07-09 07:24:21 +02:00
Irmen de Jong
cc452dffb8
restructure asmgen to improve compilation and IDE performance issues
2019-07-09 06:23:11 +02:00
Irmen de Jong
5ff79073f4
added DUP opcodes
2019-07-09 04:09:29 +02:00
Irmen de Jong
70462ffe6d
syntax check and optimization of 'when'
2019-07-09 02:42:56 +02:00
Irmen de Jong
158fe7596b
astvm eval of 'when'
2019-07-09 00:17:34 +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
65fa8c4613
ast source printer fixes
2019-07-08 22:29:22 +02:00
Irmen de Jong
c1102393bb
should not shuffle assignments.
2019-07-08 22:18:25 +02:00
Irmen de Jong
dbe048158c
cleaned up the ast processing:
...
- visitor pattern names are now used for the interfaces and the methods
- separated a modifying and a read-only ast visitor
There is now also an AstPrinter that produces original source code back from an AST
2019-07-08 21:51:16 +02:00
Irmen de Jong
2b3382ff8e
cleaned up the ast processing:
...
- visitor pattern names are now used for the interfaces and the methods
- separated a modifying and a read-only ast visitor
There is now also an AstPrinter that produces original source code back from an AST
2019-07-08 21:32:32 +02:00
Irmen de Jong
c970d899fa
DirectMemoryWrite is not an expression
2019-07-08 16:59:11 +02:00
Irmen de Jong
3c563d281a
restructuring more things
2019-07-08 15:13:24 +02:00
Irmen de Jong
1794f704e7
restructuring more things
2019-07-08 14:38:51 +02:00
Irmen de Jong
ade7a4c398
restructuring vm
2019-07-08 13:40:52 +02:00
Irmen de Jong
5a27b035b0
restructuring of the AST package
2019-07-08 13:33:31 +02:00
Irmen de Jong
e84bb8d94a
some attempts to make the gradle build faster
2019-07-08 12:26:15 +02:00
Irmen de Jong
5ed0893d96
tweak
2019-07-02 22:27:31 +02:00
Irmen de Jong
89314a0e1a
fix reading and writing rtc jiffy clock, memory can now intercept reads and writes
2019-07-02 20:48:14 +02:00
Irmen de Jong
d83f49d84f
remove unused variables, subroutines, blocks
2019-07-02 04:29:51 +02:00
Irmen de Jong
ff1294207e
improved parameter name shadowing check
2019-07-02 00:32:55 +02:00
Irmen de Jong
a56956797a
chars can now have a color
2019-07-01 23:41:30 +02:00
Irmen de Jong
3242495b0b
slightly improved warning about implicit float casts
2019-07-01 18:43:39 +02:00
Irmen de Jong
49eb7e7803
remove bogus
2019-07-01 18:11:16 +02:00
Irmen de Jong
1d7f0d3537
streamline moving values to heap
2019-07-01 18:01:36 +02:00
Irmen de Jong
31137743f0
simplified string handling a little in LiteralValue
2019-07-01 14:19:41 +02:00
Irmen de Jong
2c69e10489
heapId writable
2019-07-01 14:10:52 +02:00
Irmen de Jong
3a1fa9e069
fixed constantfolding of array values
2019-07-01 13:53:29 +02:00
Irmen de Jong
2c08d2f9c6
fix array size in vardecls
2019-06-30 20:10:53 +02:00
Irmen de Jong
4743cacb73
fix swap()
2019-06-30 18:06:11 +02:00
Irmen de Jong
5f5a1447e0
array on heap fix
2019-06-30 17:58:08 +02:00
Irmen de Jong
a3004555a8
branch
2019-06-30 17:07:08 +02:00
Irmen de Jong
267c678292
more swap logic, some typing fixes
2019-06-28 22:10:01 +02:00
Irmen de Jong
6c50043a4a
swap isn't yet finished
2019-06-28 02:57:13 +02:00
Irmen de Jong
3ee1b2efdd
left and right of a binary expression should usually have the same datatype, insert typecast if needed
2019-06-28 02:39:55 +02:00
Irmen de Jong
75d8c832ad
implemented Jump
2019-06-28 01:21:31 +02:00
Irmen de Jong
53a4379c45
implemented all builtin functions in the AstVm
2019-06-28 00:10:27 +02:00
Irmen de Jong
29b3a7e94e
optimize redundant typecasts, fix some runtime type casting errors
2019-06-27 21:09:21 +02:00
Irmen de Jong
0782f6ecf1
function call arguments
2019-06-27 00:07:41 +02:00
Irmen de Jong
595e58ec46
taking care of memory mapped vars
2019-06-26 03:28:34 +02:00
Irmen de Jong
060e05c868
strlen and strings with zeros in them should terminate at the zero
2019-06-26 02:34:43 +02:00
Irmen de Jong
f49eefad6f
some builtin functions
2019-06-26 00:01:23 +02:00
Irmen de Jong
d68360461b
registers
2019-06-25 22:48:40 +02:00
Irmen de Jong
343978d164
for loop and cleaner iteration over values
2019-06-25 21:49:02 +02:00
Irmen de Jong
b11d10e2ff
fix Return when dealing with non-subroutine scopes
2019-06-25 01:44:57 +02:00
Irmen de Jong
268856823a
got rid of old Value in favor of new RuntimeValue implementation
2019-06-24 22:45:27 +02:00
Irmen de Jong
4bac5043b6
fix integer wraparounds for RuntimeValue
2019-06-24 22:18:50 +02:00
Irmen de Jong
eb25b4c800
fix some initial value datatypes and type casting in assignments
2019-06-24 04:09:30 +02:00
Irmen de Jong
a079e44b02
fix some initial value datatypes and type casting in assignments
2019-06-24 01:31:25 +02:00
Irmen de Jong
e53c860f1a
first go at ast-based virtual machine (rather than the stackvm that uses intermediate code)
2019-06-24 00:17:48 +02:00
Irmen de Jong
99121004bf
more sensible subroutine inlining
2019-06-23 20:06:35 +02:00
Irmen de Jong
6dd3371781
some infix functions
2019-06-23 15:43:52 +02:00
Irmen de Jong
ebd38f27e6
cleaned up some symbol visibilities
2019-06-23 13:49:35 +02:00