meisl
|
44da7a302f
|
+ temporarily hack together a module name inside Prog8Parser.parseModule, to make the current all-too-simple import resolution work
|
2021-07-09 14:01:07 +02:00 |
|
meisl
|
4096aae8d4
|
* SourceCode.toString() now states both, java class and .origin
|
2021-07-09 13:55:56 +02:00 |
|
meisl
|
fa5ecd6495
|
* refactor ModuleImporter: throw the proper NoSuchFileException if import isn't found, return SourceCode? from both, tryGetModuleFromResource and tryGetModuleFromFile
|
2021-07-09 13:44:24 +02:00 |
|
meisl
|
af209ad50e
|
+ intro SourceCode, tying together source code text with its *origin*; Prog8Parser now only accepts this
|
2021-07-09 13:24:05 +02:00 |
|
meisl
|
d31a88206c
|
* importModule(Path): make tests pass (TODO: importLibraryModule with non-existent path)
|
2021-07-09 13:13:42 +02:00 |
|
meisl
|
cd4ed8765b
|
+ add tests for importModule(Path) with invalid path (non-existent or directory) - *failing*
|
2021-07-09 13:10:42 +02:00 |
|
meisl
|
b6f780d70d
|
* ModuleImporter: make tests pass
|
2021-07-09 13:02:30 +02:00 |
|
meisl
|
b071a58ca7
|
+ add tests - 4 failing in TestModuleImporter
|
2021-07-09 12:51:07 +02:00 |
|
meisl
|
ce554f7718
|
* rename test file
|
2021-07-09 12:49:55 +02:00 |
|
meisl
|
99b1cec2e1
|
*/+ move ParsingFailedError to Prog8Parser.kt, intro ParseError (soon to replace ParsingFailedError), start testing proper error location info
|
2021-07-09 12:49:30 +02:00 |
|
meisl
|
46911a8905
|
+ temporarily add PetsciiEncoding (and Petscii.kt copied from compiler) to parser; .linkParents for child nodes of Module
|
2021-07-09 12:31:46 +02:00 |
|
meisl
|
4eb61529f6
|
*/+ rename prog8Parser (generated java) to Prog8ANTLRParser; add Kotlin class Prog8Parser to interface with it
|
2021-07-09 12:24:17 +02:00 |
|
Irmen de Jong
|
a7736d88a9
|
got rid of Module.isLibraryModule variable, is now function that derives it from source path
|
2021-07-04 15:44:25 +02:00 |
|
Irmen de Jong
|
7872d20554
|
rename spelling mistake
|
2021-07-02 20:58:17 +02:00 |
|
meisl
|
dcc2549574
|
* fix 47, add tests
|
2021-06-18 21:55:03 +02:00 |
|
meisl
|
7c1de81861
|
* #40: fix mixed line endings test, now intentionally failing (!): also test sole \r AND do not allow any recovery, neither from parser not lexer.
|
2021-06-14 22:02:26 +02:00 |
|
meisl
|
eddad20acc
|
Merge remote-tracking branch 'remotes/origin/master' into issue40(EOF,EOL)
|
2021-06-13 22:56:24 +02:00 |
|
meisl
|
7daad57862
|
+ #40: test for mixed (Unix/Win/Mac) line endings - *TODO: test doesn't actually fail with old grammar, but a built jar does - WHY?!*
|
2021-06-13 22:49:54 +02:00 |
|
meisl
|
1468049fe9
|
+ #40: test that (module-level) blocks *before the last* still must have a newline after their closing }
|
2021-06-13 22:43:27 +02:00 |
|
meisl
|
3b91e59a79
|
* #40: refactor tests
|
2021-06-13 20:28:01 +02:00 |
|
meisl
|
32bad5df15
|
+/* #40: add tests; temporarily undo fix for EOL-after-block so we can see that tests actually fail
|
2021-06-13 20:08:50 +02:00 |
|
Irmen de Jong
|
3f58eca1be
|
updated gradle scripts (fixed warnings), updated some library dependencies
|
2021-06-13 18:10:07 +02:00 |
|
meisl
|
2350843d1d
|
Merge remote-tracking branch 'remotes/origin/master' into issue40(EOF,EOL)
|
2021-06-13 16:06:50 +02:00 |
|
Irmen de Jong
|
a2588a178c
|
added some simple unit tests to the ast parser
|
2021-06-13 14:59:57 +02:00 |
|
meisl
|
3aa3659bc7
|
* #40 grammar: handle different EOLs (Win, Unix, Mac) purely in grammar
|
2021-06-12 20:24:15 +02:00 |
|
meisl
|
b8117394c0
|
* #40 grammar: don't require EOL after blocks, so .p8 files need not end with that
|
2021-06-12 17:52:44 +02:00 |
|
Irmen de Jong
|
f2844bdf1a
|
fix crash when using labels in pointerexpression lab+index
|
2021-06-10 00:44:12 +02:00 |
|
Irmen de Jong
|
19e99204b9
|
fix asm symbol name scoping bug and add unit tests for this
|
2021-06-04 22:42:28 +02:00 |
|
Irmen de Jong
|
9fbe1b38a5
|
fix old block syntax in ast print routine
|
2021-06-01 22:08:23 +02:00 |
|
Irmen de Jong
|
d4b69ac79c
|
improved repeat counter vars allocation (re-use var if possible)
|
2021-05-30 15:30:34 +02:00 |
|
Irmen de Jong
|
e61a2d7083
|
slightly optimized repeat loop asmgen
|
2021-05-30 13:10:05 +02:00 |
|
Irmen de Jong
|
572bb38ddb
|
update to kotlin 1.5.10
|
2021-05-29 15:25:17 +02:00 |
|
Irmen de Jong
|
0e614ad6fc
|
added @shared flag to vardecl to mark variable as shared with assembly code elsewhere, to not have it optimized away
|
2021-05-19 01:19:25 +02:00 |
|
Irmen de Jong
|
ba96a637be
|
remove strdedup compiler argument again
(string deduplication is the default again but only for known-const strings, i.e. string literals)
|
2021-05-18 23:52:43 +02:00 |
|
Irmen de Jong
|
c2cac772e3
|
validate string interning
|
2021-05-18 23:37:52 +02:00 |
|
Irmen de Jong
|
ca61248861
|
printing 2-letter strings is now only optimized into direct CHROUT if it's a const string literal
|
2021-05-16 15:00:40 +02:00 |
|
Irmen de Jong
|
ae5d7705bb
|
allow correct parsing of source files that don't end in a EOL character. Fixes #40
|
2021-05-14 17:14:44 +02:00 |
|
Irmen de Jong
|
83639c2535
|
code style
|
2021-05-13 01:00:19 +02:00 |
|
Irmen de Jong
|
25d80f4df1
|
added compiler option to choose string literal deduplication yes/no -- default changed to NO
|
2021-05-13 00:35:22 +02:00 |
|
Irmen de Jong
|
a20efa56eb
|
print unmappable character in escaped form in errormessage
|
2021-05-11 18:09:09 +02:00 |
|
Irmen de Jong
|
8736da1a21
|
strings of 1 and 2 length no longer optimized into one call to CHROUT - also upgrade to kotlin 1.5.0
|
2021-05-06 23:46:18 +02:00 |
|
Irmen de Jong
|
7bac7bdc3e
|
more precise
|
2021-05-01 13:39:02 +02:00 |
|
Irmen de Jong
|
d5214e2505
|
fix import paths
|
2021-04-30 00:16:36 +02:00 |
|
Irmen de Jong
|
d906fcea0e
|
refactor some type checks
|
2021-04-30 00:09:15 +02:00 |
|
Irmen de Jong
|
8d3d5f726a
|
removed Datatype.STRUCT
|
2021-04-29 00:13:17 +02:00 |
|
Irmen de Jong
|
a9a7068818
|
removed support for structs. It was too much hassle and complexity and subtle bugs.
|
2021-04-29 00:01:20 +02:00 |
|
Irmen de Jong
|
17068130bb
|
removed PROG8_LIBDIR env variables and replaced with -libdirs command line option
|
2021-04-28 20:04:23 +02:00 |
|
Irmen de Jong
|
a086d6e009
|
allow labels also in blocks instead of only in subroutines
|
2021-04-18 23:03:18 +02:00 |
|
Irmen de Jong
|
54d92a027a
|
fix problems with moving vardecls from inner scope to subroutine scope
|
2021-04-12 22:53:25 +02:00 |
|
Irmen de Jong
|
319ac3a641
|
preparing optimizations for if statements
|
2021-04-12 03:34:58 +02:00 |
|