meisl
5e194536a8
* refactor compiler tests, again prog8test.helpers (TODO: remove duplication)
2021-07-11 18:18:27 +02:00
meisl
43c5ab8ecc
* refactor compilerAst tests, intro prog8test.helpers, @Disable the 3 tests that will pass after subsequent steps of "the plan"
2021-07-11 17:32:29 +02:00
meisl
6c42221620
* fix AstToSourceCode: missing semicolon in header and footer, missing "@" for strings with altEncoding
2021-07-11 14:28:09 +02:00
meisl
0d73a7cd07
+ add TestAstToSourceCode.kt (all 8 new tests failing due to missing semicolon)
2021-07-11 14:11:32 +02:00
meisl
6fa50a699f
+ add two tests for parseModule with empty source text (from File and from String)
2021-07-10 21:03:40 +02:00
meisl
ddaef3e5d5
+ add tests for SourceCode.fromResources; refactor tests
2021-07-10 20:55:23 +02:00
meisl
c3e9d4a9f8
* make resources available in compilerAst/test s; *you may have to re-import the gradle project into IDEA*
...
Note: these resources are NOT going into the production .jar
2021-07-10 20:50:07 +02:00
meisl
7530fb67c8
+ add tests for inner nodes' positions; refactor tests
2021-07-10 10:10:41 +02:00
meisl
19bb56df47
* no more scattering magic "@embedded@" all over the place: add SourceCode.isFromResources, *change Module.source from type Path to type SourceCode*
2021-07-09 17:32:33 +02:00
meisl
b0073ac933
* used "@embedded@" convention instead of "<res:...>", put it into SourceCode
2021-07-09 16:28:04 +02:00
meisl
137a89da15
* fix (hack) .name, .source and .position of Modules from the parser (via temp. subclass ParsedModule)
...
The temporary subclass ParsedModule : Module is introduced to concentrate all the workaround stuff in one place *while still not changing any public signature* such as of the Module ctor.
The convention used to indicate stuff from resources is still "<res:...>" not "@embedded@"- *note that this is caught by 3 tests in compiler*
2021-07-09 15:52:03 +02:00
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