New Parser

Reporter: JoshDreamland  |  Status: open  |  Last Modified: June 11, 2022, 06:16:52 pm
Step one: Remove dependencies on JDI from the Lexer.

This gives ENIGMA a custom representation of JDI macros. This functionality is untested. Actually, the only test for the lexer right now is misnamed, but I need to shelve this and fix something in RGM.

This commit integrates the new lexer into the old parser by re-stringifying the lex after syntax checking. It replaces the syntax checker with a call to AST::ParseAST. However, this method is NOT YET IMPLEMENTED, meaning no syntax checking happens as of this commit.

In all likelihood there are remaining problems tokenizing strings, etc. Also, the INCREMENT and DECREMENT tokens cannot be programmatically removed from the token trie at this time.

Theoretically, though, valid games should still build as of this commit. I expect the CI to suggest otherwise.

BEFORE WE COMMIT THIS: The missing methods on AST must be authored, building the actual tree. This change puts the compiler where I thought it was when I started this task.


Codecov Report

Merging #2167 (cc8d151) into master (65f91e2) will increase coverage by 0.06%.
The diff coverage is n/a.

Current head cc8d151 differs from pull request most recent head c439557. Consider uploading reports for the commit c439557 to get more accurate results

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #2167      +/-   ##
+ Coverage   35.25%   35.32%   +0.06%     
  Files         213      213              
  Lines       20460    20481      +21     
+ Hits         7213     7234      +21     
  Misses      13247    13247              
Impacted Files Coverage Δ
...GMAsystem/SHELL/Universal_System/image_formats.cpp 76.89% <0.00%> (+1.89%) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 5c99b2e...c439557. Read the comment docs.

Please sign in to post comments, or you can view this issue on GitHub.