Commit Graph

834 Commits

Author SHA1 Message Date
Irmen de Jong
885b22df40 fixed while and repeat warning messages line number
fixed invalid while and repeat asm label names
fixed boolean checking of numbers
2020-02-08 19:45:30 +01:00
Irmen de Jong
11de3db25f simplified heapId for arrayvalues 2020-02-08 18:49:48 +01:00
Irmen de Jong
14a13da7ec simplified heapId for stringvalue 2020-02-08 15:54:03 +01:00
Irmen de Jong
875a71c786 removed datatype from StringValue classes (is always STR now) 2020-02-08 02:21:18 +01:00
Irmen de Jong
0ff5b79353 code inspection cleanups 2020-02-08 01:31:41 +01:00
Irmen de Jong
8c4d276810 improvements to string encoding/decoding and text output in the simulator 2020-02-08 01:12:30 +01:00
Irmen de Jong
3dd38c0ac8 antlr library updated to 4.8 2020-02-07 23:58:07 +01:00
Irmen de Jong
b8816a0e2f got rid of separate str_s datatype 2020-02-07 20:47:38 +01:00
Irmen de Jong
a01a9e76f9 removed bogus clang target
fixed various simulator bugs regarding strings and chars
2020-02-07 01:22:07 +01:00
Irmen de Jong
357d704aec clean up version specifier 2020-02-02 19:33:40 +01:00
Irmen de Jong
654d74da1e automatic selection of best Vice C64 emulator executable 2020-02-02 13:39:56 +01:00
Irmen de Jong
66e0b07428 gradle updates 2020-01-07 01:29:25 +01:00
Irmen de Jong
52769decd4 fix assembler float truncation warning 2019-11-27 22:36:59 +01:00
Irmen de Jong
165eec4054 started a c++ language compiler code target
(meant to be an intermediate step before direct Wasm/binaryen, via clang compilation to wasm)
2019-10-30 00:15:03 +01:00
Irmen de Jong
8c2e602cc7 preparing for multiple compiler backends/targets 2019-10-26 23:41:15 +02:00
Irmen de Jong
b5d1e8653d tiny cleanups 2019-10-20 23:52:26 +02:00
Irmen de Jong
f6d4c90dea improved number-to-decimal routines 2019-09-23 20:44:41 +02:00
Irmen de Jong
9dedbbf47c use more modern java date/time api 2019-09-10 01:29:33 +02:00
Irmen de Jong
adfddddac6 attempt to fix bcd 2019-09-05 21:38:40 +02:00
Irmen de Jong
8d6542905d beginnings of 6502 cpu simulator 2019-09-03 23:58:46 +02:00
Irmen de Jong
befe4b8e9f try to fix windows path issue with drive letter 2019-08-27 01:02:31 +02:00
Irmen de Jong
772e48105e fixed some type cast compiler errors in for loops 2019-08-26 23:38:59 +02:00
Irmen de Jong
9afe451b8d fix build script to target jdk 1.8 2019-08-26 21:27:45 +02:00
Irmen de Jong
59a43889a5 examples 2019-08-25 00:24:00 +02:00
Irmen de Jong
7caa0daffc examples 2019-08-24 21:40:50 +02:00
Irmen de Jong
5e854c2cf8 more forloop asm 2019-08-24 21:26:29 +02:00
Irmen de Jong
9edc92ec29 more bitshift asm stubs (actual functions still to be done) 2019-08-23 23:06:36 +02:00
Irmen de Jong
1d178080a3 more bitshift asm 2019-08-23 21:33:43 +02:00
Irmen de Jong
aa94300bdd added output directory command line option
improved cli parser by using kotlinx.cli
2019-08-23 00:11:08 +02:00
Irmen de Jong
2d768c3f28 code cleanups 2019-08-22 22:06:21 +02:00
Irmen de Jong
b79af624ae added more asmgen for bitshift operations 2019-08-22 00:34:17 +02:00
Irmen de Jong
38208a7c9e removed fake vm functions 2019-08-21 22:00:05 +02:00
Irmen de Jong
8eff51904e taking down the heapvalue mess further 2019-08-21 00:29:31 +02:00
Irmen de Jong
c717f4573d taking down the heapvalue mess further 2019-08-20 23:02:13 +02:00
Irmen de Jong
984d251a6d taking down the heapvalue mess, RuntimeValue class separation 2019-08-20 00:01:31 +02:00
Irmen de Jong
8c3b43f3ed taking down the heapvalue mess 2019-08-19 22:28:41 +02:00
Irmen de Jong
0f1485f30b added sorted, sgn, reverse to the AstVm 2019-08-18 16:39:08 +02:00
Irmen de Jong
f0d4654917 v1.60 2019-08-18 14:06:30 +02:00
Irmen de Jong
4ce93b5d9d restored proper compiler error when trying to modify a constant 2019-08-18 14:05:20 +02:00
Irmen de Jong
fb0d7a1908 some array literals weren't put on the heap 2019-08-18 13:46:13 +02:00
Irmen de Jong
bb7b063757 revert inline var declaration in for loops 2019-08-18 03:16:23 +02:00
Irmen de Jong
c495f54bbb don't fall-through into nested subroutine 2019-08-18 02:33:42 +02:00
Irmen de Jong
1cc1f2d91d reverse() added (byte+word) 2019-08-18 02:05:51 +02:00
Irmen de Jong
d837cc11f9 sort() added (bytes+words) 2019-08-18 00:04:03 +02:00
Irmen de Jong
cbb7083307 fix problem with typechecking of const arrays 2019-08-17 21:43:48 +02:00
Irmen de Jong
d4a17dfad1 fixed builtin functions no longer const-folding over arrays 2019-08-17 20:16:39 +02:00
Irmen de Jong
59f8b91e25 tweak 2019-08-17 18:44:44 +02:00
Irmen de Jong
80113f9208 version 1.52 2019-08-17 16:44:46 +02:00
Irmen de Jong
27f987f0ae fixed bit shifts, added sgn() function 2019-08-17 16:44:28 +02:00
Irmen de Jong
3ae2597261 irq driven music player example 2019-08-17 13:13:15 +02:00
Irmen de Jong
248e7b808c split codegen 2019-08-16 22:49:29 +02:00
Irmen de Jong
a983a896f2 some asm and some for loop asm fixed, renamed asmgen2 back to just asmgen 2019-08-16 21:37:27 +02:00
Irmen de Jong
68df1730f5 cleaned up some stuff, improved checking of asmsub statement body 2019-08-14 23:17:50 +02:00
Irmen de Jong
d62ab93b24 word >> 8 optimized to msb(word) 2019-08-14 22:28:44 +02:00
Irmen de Jong
47297f7e31 improved handling of inferredType 2019-08-14 02:25:27 +02:00
Irmen de Jong
b64d611e02 split array and string literal classes 2019-08-13 03:00:17 +02:00
Irmen de Jong
9fb9bcfebd correction 2019-08-12 23:25:19 +02:00
Irmen de Jong
d4a77321d2 tweak gradle to work with openjdk-11 2019-08-11 22:56:54 +02:00
Irmen de Jong
2665618fa6 zp test added, some cleanups 2019-08-11 22:23:18 +02:00
Irmen de Jong
b5c5560af8 info 2019-08-11 18:21:15 +02:00
Irmen de Jong
065587525e version 2019-08-11 17:43:14 +02:00
Irmen de Jong
58e5d5c071 hash 2019-08-11 17:32:28 +02:00
Irmen de Jong
b44e76db57 fix any/all assembly routine, added asm for min/max/sum/ etc aggregates
removed avg function because of hidden internal overflow issues
2019-08-11 16:13:09 +02:00
Irmen de Jong
2ce6bc5946 fix strlen 2019-08-11 14:02:53 +02:00
Irmen de Jong
fe5b225732 asmsub stack arg 2019-08-11 12:29:18 +02:00
Irmen de Jong
d499e40a4b doc tweaks 2019-08-11 10:56:36 +02:00
Irmen de Jong
62a66d89c6 was not needed 2019-08-11 10:15:34 +02:00
Irmen de Jong
1c151f4a3f remove dysfunctional repl 2019-08-10 21:36:26 +02:00
Irmen de Jong
8917926996 new version 2019-08-10 20:45:41 +02:00
Irmen de Jong
b54a9b9831 fix output of word arrays containing addressofs 2019-08-10 20:43:27 +02:00
Irmen de Jong
f08906dba1 fix byte->word typecast 2019-08-10 14:20:42 +02:00
Irmen de Jong
a6bba824d3 fixed some array codegen issues 2019-08-10 12:55:27 +02:00
Irmen de Jong
fd84152a2b import cleanups 2019-08-09 02:21:04 +02:00
Irmen de Jong
3466106119 fixed some array codegen issues 2019-08-09 02:15:31 +02:00
Irmen de Jong
c79b587eea nonconst forloops (bytes) 2019-08-08 23:13:02 +02:00
Irmen de Jong
4862fb7db1 asmsub return value in registers is now put on evalstack, and loopvar sequence numbering 2019-08-08 00:13:58 +02:00
Irmen de Jong
2136db0e61 fix auto var naming collisions 2019-08-07 22:25:57 +02:00
Irmen de Jong
2f0c0f6fcd fix function arguments 2019-08-07 02:31:27 +02:00
Irmen de Jong
7ddc01f883 added continuous compilation mode (file watching) 2019-08-05 23:36:24 +02:00
Irmen de Jong
efe2723874 version 2019-08-05 21:06:41 +02:00
Irmen de Jong
bccfeb2fa2 fix some unittests 2019-08-05 21:04:15 +02:00
Irmen de Jong
5095d090cc added optimized multiplications to asmgen2 2019-08-05 21:00:55 +02:00
Irmen de Jong
6544fcdc36 fixed output of force_output blocks 2019-08-04 23:08:58 +02:00
Irmen de Jong
e834924857 more ++ and -- code, 'dontuse' zeropage option 2019-08-04 22:44:20 +02:00
Irmen de Jong
2c3b8a9819 more ++ and -- code, 'dontuse' zeropage option 2019-08-04 22:35:27 +02:00
Irmen de Jong
309c82fc9e fixed some compiler errors 2019-08-04 19:54:32 +02:00
Irmen de Jong
0f91ce6441 removed a few more hazardous zp addresses 2019-08-04 19:40:31 +02:00
Irmen de Jong
f29ec3b4e1 relaxed symbol shadowing 2019-08-04 18:52:03 +02:00
Irmen de Jong
cc1fc869cf fix param type casts for builtin functions 2019-08-04 18:25:00 +02:00
Irmen de Jong
0431d3cddc implemented asm for continue and break 2019-08-04 16:05:50 +02:00
Irmen de Jong
a1cd202cd2 some more array asm 2019-08-04 15:33:00 +02:00
Irmen de Jong
b842493cf0 trying to fix arithmetic and funcion calls and var scoping issues 2019-08-03 13:21:38 +02:00
Irmen de Jong
4718f09cb7 trying to fix arithmetic and funcion calls 2019-08-03 01:51:12 +02:00
Irmen de Jong
e9c357a885 fix range typing issues and function call param cleanup bug for asmsub 2019-08-02 01:26:28 +02:00
Irmen de Jong
fb00ff74d1 simplistic repeat and while loops 2019-08-01 21:23:55 +02:00
Irmen de Jong
b740b079db simplified mapping of builtin functions to just a jsr 2019-08-01 21:03:21 +02:00
Irmen de Jong
6394841041 fix byte/word add/sub mixup 2019-08-01 20:42:09 +02:00
Irmen de Jong
3f4050c647 more for loops, words 2019-08-01 00:35:25 +02:00
Irmen de Jong
82f01d84c2 more for loops 2019-07-31 22:15:20 +02:00
Irmen de Jong
299ea72d70 various for loops 2019-07-31 21:47:30 +02:00
Irmen de Jong
50aa286d3a begin of for asm 2019-07-31 00:54:04 +02:00
Irmen de Jong
6f7322150f fix string literal replacing by identifierref 2019-07-31 00:14:12 +02:00
Irmen de Jong
cc9965cc96 improved deduction of array datatypes 2019-07-30 23:35:25 +02:00
Irmen de Jong
ae90a957c6 fix var prefix issues in asm gen of anonscopes 2019-07-30 21:13:52 +02:00
Irmen de Jong
8cec032e7d more asm for byte writes to memory 2019-07-30 02:49:13 +02:00
Irmen de Jong
3732ab1e62 fix compilation errors 2019-07-30 02:26:30 +02:00
Irmen de Jong
fba149ee28 removed the ~ before block names 2019-07-29 23:11:13 +02:00
Irmen de Jong
4661cba974 asm for when statements added 2019-07-29 22:47:04 +02:00
Irmen de Jong
025be8cb7c fix infinte loop in constantfolding of when choices 2019-07-29 22:06:59 +02:00
Irmen de Jong
3aea32551b fixes 2019-07-29 02:47:01 +02:00
Irmen de Jong
8e8c112ff0 improved subroutine param ast checks, added asm for Carry parameter 2019-07-29 00:33:19 +02:00
Irmen de Jong
b0dda08e74 assembler reserved symbols checked 2019-07-28 23:37:33 +02:00
Irmen de Jong
2c25df122a merge strings in asm output 2019-07-28 21:29:49 +02:00
Irmen de Jong
7cb5702b37 array asm 2019-07-28 21:03:09 +02:00
Irmen de Jong
b7502c7eaa fixed some node update issues in Modifying Ast visitor 2019-07-28 15:18:53 +02:00
Irmen de Jong
fed020825a some more asmgen v2; fixed duplicate label namings, if stmt, and vars in anon scopes 2019-07-28 13:12:13 +02:00
Irmen de Jong
1c411897df some more asmgen v2, and seemingly useless assignments to memory variables are no longer optimized away 2019-07-27 03:11:15 +02:00
Irmen de Jong
f94e241fb2 fix array datatypes in vardecls 2019-07-26 23:51:53 +02:00
Irmen de Jong
f9617d777a floats from rom 2019-07-24 00:39:01 +02:00
Irmen de Jong
9961a404ae got rid of bytecode based compiler and vm 2019-07-23 20:44:11 +02:00
Irmen de Jong
776c844d02 more ast-codegen v2 2019-07-23 01:36:49 +02:00
Irmen de Jong
03782a37a2 begin of ast-codegen v2 2019-07-21 23:50:13 +02:00
Irmen de Jong
173663380b slight optimization for creating the asmpatterns list 2019-07-20 22:37:16 +02:00
Irmen de Jong
c6fdd65c63 shuffling some things around 2019-07-18 22:23:31 +02:00
Irmen de Jong
d9546f9dc7 version 2019-07-18 01:38:35 +02:00
Irmen de Jong
2a6b0f5db7 remove some more dead code 2019-07-18 01:31:12 +02:00
Irmen de Jong
b4e1b42cec remove some dead code 2019-07-17 22:35:38 +02:00
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
Irmen de Jong
a6c3251668 simple subroutine inlining 2019-06-23 03:15:23 +02:00
Irmen de Jong
560047adee variables init subroutine must never be optimized away (fixes primes example) 2019-06-21 23:56:45 +02:00
Irmen de Jong
7de7d5234f callgraph fixed scanning asm subroutines, and deletion of unused subs and modules 2019-06-21 23:08:29 +02:00
Irmen de Jong
b374af3526 remove unused/empty modules 2019-06-21 00:12:22 +02:00
Irmen de Jong
b35430214b some more program node cleanups 2019-06-20 21:46:59 +02:00
Irmen de Jong
e96d3d4455 update kotlin version
cleaning up the way the root of the Ast and the global namespace work (introduced ProgramAst node)
2019-06-20 20:15:18 +02:00
Irmen de Jong
c559682c0b refresh IDE project files 2019-05-30 16:03:53 +02:00
Irmen de Jong
262e0bd6b9 fix avg() on float arrays 2019-04-21 03:04:36 +02:00
Irmen de Jong
755af6010e fix some more issues with array vardecls without array size specifier 2019-04-21 03:04:13 +02:00
Irmen de Jong
a6d0aecd66 fix invalid assignment reordering 2019-04-20 13:24:42 +02:00
Irmen de Jong
3b37e0f99d new build scripts 2019-04-20 00:50:15 +02:00
Irmen de Jong
78fbbf7119 %asmbinary implemented 2019-04-17 01:33:07 +02:00
Irmen de Jong
0ee43294c4 check for file with %asmbinary, %asminclude 2019-04-17 00:55:42 +02:00
Irmen de Jong
a81b82495c fix wrong values generated from range expression in array vardecl 2019-04-17 00:27:27 +02:00
Irmen de Jong
390043e9e8 some fixes in syntaxchecking array initializer values 2019-04-16 01:50:12 +02:00
Irmen de Jong
e384822b2c array size in vardecl is optional when initializer array value is given 2019-04-16 01:19:51 +02:00
Irmen de Jong
730e08698d comment 2019-04-13 00:58:39 +02:00
Irmen de Jong
5497de4234 optimize @( &thing )) in ast into just thing 2019-04-12 23:59:26 +02:00
Irmen de Jong
dfcb57a0b0 couple of small shortcuts on identifier ast to lookup what it is pointing to 2019-04-12 23:04:19 +02:00
Irmen de Jong
f219ae43f7 more inspiring code example 2019-04-12 22:34:43 +02:00
Irmen de Jong
a9bbe0bc40 removed the memory keyword instead use & now (reuse the address-of operator to reduce the number of different concepts in the grammar) 2019-04-12 22:00:32 +02:00
Irmen de Jong
cd0fa9405a comments 2019-04-12 00:54:04 +02:00
Irmen de Jong
4462def8ea fix array processing and ASM code gen of arrays with addressOf in them 2019-04-12 00:37:33 +02:00