Irmen de Jong
|
eacf8b896a
|
fix augmentable check to align with what the asmgen understands
|
2021-11-20 22:06:51 +01:00 |
|
Irmen de Jong
|
74db5c6be7
|
fix referencesIdentifier() and better removal of unnecessary assignments
|
2021-11-20 17:41:41 +01:00 |
|
Irmen de Jong
|
f9399bcce7
|
r=(q+r)-c and r=q+(r-c) are now both also 'augmentable', and BinExprSplitter doesn't check for associativeOperator anymore
|
2021-11-20 02:03:32 +01:00 |
|
Irmen de Jong
|
87600b23db
|
fix constvalue parent linkage for prefix and typecast
|
2021-11-20 00:20:35 +01:00 |
|
Irmen de Jong
|
cedfb17b18
|
fix too aggressive removal of vars that weren't completely unused
|
2021-11-19 22:49:35 +01:00 |
|
Irmen de Jong
|
b334d89715
|
refactor and fix the way memory addresses are checked to be in IO space or regular ram
|
2021-11-18 22:47:58 +01:00 |
|
Irmen de Jong
|
4f5d36a84d
|
optimization added: bitwise operations with a negative constant number -> replace the number by its positive 2 complement
|
2021-11-18 02:51:42 +01:00 |
|
Irmen de Jong
|
8f379e2262
|
give an error when initializing an integer var with a float value instead of silently rounding
|
2021-11-18 01:56:11 +01:00 |
|
Irmen de Jong
|
52bedce8f4
|
added test for assignment.isAugmented
|
2021-11-18 01:05:16 +01:00 |
|
Irmen de Jong
|
dafa0d9138
|
fix compiler crash bug due to reused ast expression nodes. Now all (relevant) Nodes have a copy() function to make a clone.
|
2021-11-17 23:05:59 +01:00 |
|
Irmen de Jong
|
f48d6ca9f8
|
simplified NumericLiteral to always just contain a Double instead of a Number for the value
|
2021-11-16 23:52:54 +01:00 |
|
Irmen de Jong
|
ab2d1122a9
|
conditional expressions are optimized more intelligently (simple ones are not split off in separate assignments)
|
2021-11-14 12:38:56 +01:00 |
|
Irmen de Jong
|
75a06d2a40
|
preparing for more optimizations
|
2021-11-12 02:17:37 +01:00 |
|
Irmen de Jong
|
69f4a4d4f8
|
tweak expr.typecastTo() a bit
|
2021-11-11 00:15:09 +01:00 |
|
Irmen de Jong
|
4937e004b5
|
fix compiler crash where it used wrong datatype in split assignment
fixes crash for "ubyte bb ;; uword ww ;; bb = not bb or not ww"
|
2021-11-09 01:13:23 +01:00 |
|
Irmen de Jong
|
a9b0400d13
|
fixed 'not' operator priority: it now has higher priority as or/and/xor.
|
2021-11-08 18:38:04 +01:00 |
|
Irmen de Jong
|
613efcacc7
|
converting compiler module's testcases to kotest (ongoing)
|
2021-11-08 15:08:48 +01:00 |
|
Irmen de Jong
|
7e8db16e18
|
moved to kotest assertions in compilerAst module tests
|
2021-11-07 21:18:18 +01:00 |
|
Irmen de Jong
|
984272beb4
|
migrated compilerAst module to KoTest (but not finished with the assertions yet)
|
2021-11-07 17:25:53 +01:00 |
|
Irmen de Jong
|
23961f695d
|
fixed some parse tree node position end-columns. cleanup some todo's
|
2021-11-05 22:48:28 +01:00 |
|
Irmen de Jong
|
7e287a5359
|
proper parent node linkage in generated const values out of typecast expressions. Fixes crash mentioned in #72
|
2021-11-02 00:47:01 +01:00 |
|
Irmen de Jong
|
1110bd0851
|
fix vardecl initialization value to not use stack eval anymore but separate assignment
(this causes the optimized assignment code gen to be used instead)
but some programs now end up larger in output size
|
2021-11-01 00:24:15 +01:00 |
|
Irmen de Jong
|
1b576f826d
|
remove unneeded sibling methods
|
2021-10-31 16:50:15 +01:00 |
|
Irmen de Jong
|
dfbef8495d
|
got rid of ParsingFailedError
|
2021-10-30 17:05:23 +02:00 |
|
Irmen de Jong
|
97836e18b2
|
simplified gradle config, automatically run installDist task after build
|
2021-10-30 12:01:52 +02:00 |
|
Irmen de Jong
|
7b69df4db2
|
todos
|
2021-10-30 00:38:48 +02:00 |
|
Irmen de Jong
|
3767b4bbe7
|
'Program' is not an ast Node
|
2021-10-30 00:25:34 +02:00 |
|
Irmen de Jong
|
d7d2eefa4f
|
implemented CharLiteral.constValue()
|
2021-10-30 00:05:55 +02:00 |
|
Irmen de Jong
|
3da9404c2d
|
removed memsizer arg from all builtin functions
|
2021-10-29 23:38:31 +02:00 |
|
Irmen de Jong
|
495a18805c
|
move asmgen test to codeGeneration module
|
2021-10-29 16:20:53 +02:00 |
|
Irmen de Jong
|
0b5ddcdc9b
|
split out the code generator into own project submodule
|
2021-10-29 05:00:30 +02:00 |
|
Irmen de Jong
|
5ff481ce3c
|
make sure tmp folders exist for unit tests
|
2021-10-29 03:04:16 +02:00 |
|
Irmen de Jong
|
f21dcaa6fb
|
split out the code optimizers into own project submodule
|
2021-10-29 02:42:10 +02:00 |
|
Irmen de Jong
|
2c940de598
|
better name
|
2021-10-29 01:06:01 +02:00 |
|
Irmen de Jong
|
ce75b776bb
|
refactor loadAsmIncludeFile response
|
2021-10-29 01:01:24 +02:00 |
|
Irmen de Jong
|
7d22b9b9f9
|
simplified name conflict check for sub params
|
2021-10-29 00:20:33 +02:00 |
|
Irmen de Jong
|
6cb8b3b5cd
|
removed unneeded scope param from lookup()
|
2021-10-29 00:01:28 +02:00 |
|
Irmen de Jong
|
2bf4017f2b
|
fix nested label lookups in anon scopes
fixed non-global qualified names lookup
|
2021-10-28 23:48:01 +02:00 |
|
Irmen de Jong
|
08d2f8568b
|
refactoring symbol lookups
|
2021-10-27 23:48:12 +02:00 |
|
Irmen de Jong
|
ac5f45d2d4
|
fix nested label lookups in anon scopes (partly)
|
2021-10-27 02:41:24 +02:00 |
|
Irmen de Jong
|
9684f4e42a
|
add unit tests for AnonScope refactoring, cleaned up imports
|
2021-10-27 00:05:46 +02:00 |
|
Irmen de Jong
|
141689e697
|
change many uses of .definingScope to just the parent node
|
2021-10-26 23:25:16 +02:00 |
|
Irmen de Jong
|
743c8b44a2
|
AnonymousScope refactor: it's no longer a INameScope
because it doesn't contain scoped variables (these are moved to the subroutine's scope)
|
2021-10-26 23:01:51 +02:00 |
|
Irmen de Jong
|
69a8813a3d
|
first steps to add support for str parameter type
|
2021-10-24 20:57:10 +02:00 |
|
Irmen de Jong
|
35e88dd529
|
(7.2) correctly parse datatype of array parameters
|
2021-10-21 22:06:21 +02:00 |
|
Irmen de Jong
|
4d5094a517
|
(7.2) cleanup Petscii converter errorhandling, add unit tests for error scenarios
|
2021-10-20 23:48:20 +02:00 |
|
Irmen de Jong
|
dd5abae721
|
move testcase to proper location
|
2021-10-20 23:08:40 +02:00 |
|
Irmen de Jong
|
82d3d81bb2
|
don't want to complicate things by introducing a boolean literal
|
2021-10-19 23:58:50 +02:00 |
|
Irmen de Jong
|
82d20dea39
|
a few comment and TODO cleanups.
remove remark about chars UBYTE type, kotlin's closest native type that can contain 0-255 is a short.
|
2021-10-19 23:20:34 +02:00 |
|
Irmen de Jong
|
5afa7e53f8
|
got rid of program arg for isInRegularRAM
|
2021-10-19 22:30:30 +02:00 |
|
Irmen de Jong
|
7f15b7b716
|
remove unneeded check for duplicate module names as this is now caught by the logic in Program.addModule itself
|
2021-10-19 22:12:54 +02:00 |
|
Irmen de Jong
|
552e0c2248
|
rename mainModule to toplevelModule.
failed module no longer retains in the Ast.
improved some tests on that.
|
2021-10-19 21:49:05 +02:00 |
|
Irmen de Jong
|
e5b9e1f5e7
|
string object identity hashcode can be negative sometimes, so allow a '-' character.
|
2021-10-19 21:08:15 +02:00 |
|
Irmen de Jong
|
502bf90007
|
comments
|
2021-10-19 01:12:28 +02:00 |
|
Irmen de Jong
|
40bf117497
|
avoid crash when parser doesn't report an offending token for a parse error
|
2021-10-19 00:44:33 +02:00 |
|
Irmen de Jong
|
4011dce31b
|
added a few more tests for the file element of Position
|
2021-10-19 00:26:02 +02:00 |
|
Irmen de Jong
|
cf0e395921
|
got rid of SourceCode.pathString() and the 'need' to strip < and >
|
2021-10-16 17:15:22 +02:00 |
|
Irmen de Jong
|
46e4b977a4
|
another attempt to fix Windows path issues
|
2021-10-16 15:02:15 +02:00 |
|
Irmen de Jong
|
aea364e43d
|
paths are now always relative to the current directory. Fixes #64
|
2021-10-16 14:26:33 +02:00 |
|
Irmen de Jong
|
06defd0cb0
|
paths are now always relative
|
2021-10-16 02:43:22 +02:00 |
|
Irmen de Jong
|
57bb1c2c0d
|
performance optimized checks against short ranges of values
|
2021-10-15 00:51:45 +02:00 |
|
Irmen de Jong
|
7b35b414e8
|
tweak check of DataType against multiple values
|
2021-10-15 00:39:42 +02:00 |
|
Irmen de Jong
|
761aac7a23
|
replace inferredType.istype() by infix form
|
2021-10-15 00:28:23 +02:00 |
|
Irmen de Jong
|
15a02d7664
|
making InferredType easier to use
|
2021-10-15 00:18:13 +02:00 |
|
Irmen de Jong
|
16ed68c1ec
|
Module.name is now derived back from the source's origin string
|
2021-10-14 23:58:14 +02:00 |
|
Irmen de Jong
|
0447b3e4cc
|
remove testcase that attempted to check invalid %import syntax.
we only allow unquoted names, without filename suffix, in %import.
|
2021-10-13 22:10:35 +02:00 |
|
Irmen de Jong
|
855e18b31c
|
fix SourceCode to properly set the sourceName of a resource or string as well
|
2021-10-13 21:46:38 +02:00 |
|
Irmen de Jong
|
d790878af6
|
enabled test
|
2021-10-13 20:28:42 +02:00 |
|
Irmen de Jong
|
6070afa6b6
|
cleanup SourceCode class
|
2021-10-13 19:16:01 +02:00 |
|
Irmen de Jong
|
66574d058a
|
renamed InferredType.typeOrElse to getOr()
this is closer to the convention of most functional return types
|
2021-10-13 00:21:38 +02:00 |
|
Irmen de Jong
|
9827ee97ad
|
better returnvalue/errorhandling for Petscii encoding
|
2021-10-12 23:26:45 +02:00 |
|
Irmen de Jong
|
71a9a84211
|
don't throw basic AstException but SyntaxError instead
|
2021-10-12 22:30:38 +02:00 |
|
Irmen de Jong
|
4f7465ba44
|
better return types
|
2021-10-12 21:59:19 +02:00 |
|
Irmen de Jong
|
f891fc698c
|
switched to more featureful Result library
|
2021-10-12 21:35:27 +02:00 |
|
Irmen de Jong
|
51b2e41879
|
libs updated to maven
|
2021-10-12 03:33:52 +02:00 |
|
Irmen de Jong
|
e5a1b37981
|
simplify
|
2021-10-12 01:22:17 +02:00 |
|
Irmen de Jong
|
30aa72dc8e
|
fix unittest and use kotlin.test method to test for exceptions
|
2021-10-11 21:22:06 +02:00 |
|
Irmen de Jong
|
c55ac0450f
|
unified @embedded@ and library: into the latter
|
2021-10-11 19:22:56 +02:00 |
|
Irmen de Jong
|
2d26b9c994
|
fixed module parent linking mistakes in unit tests: module's parent should always be the GlobalNamespace
|
2021-10-11 01:34:55 +02:00 |
|
Irmen de Jong
|
f38fe092ee
|
optimized imports
|
2021-10-11 00:22:04 +02:00 |
|
Irmen de Jong
|
5db0408b9f
|
syntactic sugar: turned some functions into read only properties
|
2021-10-11 00:05:51 +02:00 |
|
Irmen de Jong
|
3557d38ce0
|
cleanup: fix spelling errors and some compiler warnings/suggestions
|
2021-10-10 23:35:02 +02:00 |
|
Irmen de Jong
|
7de4e9e66a
|
exclude some more build folders from the IDE
|
2021-10-10 23:04:31 +02:00 |
|
Irmen de Jong
|
f4b3d19059
|
fix merge conflict
|
2021-10-10 22:26:18 +02:00 |
|
Irmen de Jong
|
f37fb82d53
|
Merge branch 'v7.1' into testability_steps_1_2_3_again
# Conflicts:
# compilerAst/src/prog8/ast/antlr/Antlr2Kotlin.kt
# compilerAst/src/prog8/parser/ModuleParsing.kt
# compilerAst/test/TestAntlrParser.kt
# parser/antlr/Prog8ANTLR.g4
|
2021-10-10 22:20:08 +02:00 |
|
Irmen de Jong
|
dbe98f3fa5
|
remove unittest of %target directive, which is removed in 7.1
|
2021-10-09 18:43:18 +02:00 |
|
Irmen de Jong
|
1625e4eb85
|
rename prog8Parser (generated java) to Prog8ANTLRParser
|
2021-10-09 16:56:39 +02:00 |
|
Irmen de Jong
|
e8f308f654
|
a few more inlinings of trivial return values
|
2021-10-09 01:36:13 +02:00 |
|
Irmen de Jong
|
2cbf2d2226
|
fix regression in imported module order (reversed)
this caused an error in determining the main module and correct compilation options
|
2021-09-12 18:16:24 +02:00 |
|
Irmen de Jong
|
fd1f30f92b
|
removed %target directive (didn't add much, too confusing, only supported single target)
|
2021-09-04 15:01:16 +02:00 |
|
Irmen de Jong
|
d9ab2f8b90
|
upgrade to kotlin 1.5.30
|
2021-09-03 23:00:00 +02:00 |
|
meisl
|
bd6c60cf8a
|
* improve test method names in helpers_pathsTests by means of backtick syntax
|
2021-08-02 15:47:42 +02:00 |
|
meisl
|
f0c150d93b
|
* improve test method names in TestProg8Parser by means of backtick syntax
|
2021-08-02 15:36:08 +02:00 |
|
meisl
|
c2986eaf47
|
* structure TestProg8Parser with @Nested
|
2021-08-02 14:52:46 +02:00 |
|
meisl
|
ef0c4797bb
|
Merge remote-tracking branch 'remotes/origin/v7.1' into testability_steps_1_2_3_again
|
2021-08-02 10:26:48 +02:00 |
|
meisl
|
ac02a99934
|
* move ModuleImporter to prog8.compiler (package & module), together with its tests
|
2021-08-02 10:07:19 +02:00 |
|
meisl
|
eb46852bb9
|
* restrict access to Program.modules, add tests
|
2021-08-02 08:15:20 +02:00 |
|
meisl
|
007d8d2811
|
* ModuleImporter tests: refactor, more precise assertions about the program's modules
|
2021-08-01 17:27:41 +02:00 |
|
meisl
|
ebe04fc114
|
* @Disable ModuleImporter test re importing a faulty module twice - no easy fix for this atm
|
2021-08-01 16:26:27 +02:00 |
|
meisl
|
d7dd7f70c0
|
* rename file ModuleParsing.kt to ModuleImporter.kt (nothing else, still in compilerAst)
|
2021-08-01 15:38:21 +02:00 |
|