CoreDump: A Tutorial
--
Dump 04.10.2022.12.23
Gecko: Here is the tutorial requested for the LPse language.
- Design the language as a subset of ANSI C, and remove features from ANSI C grammar which is BNF.
- Use a parser generator to generate the abstract syntax tree, parse tree and convert to JSON.
- Use RxJava to convert JSON to a data stream.
- Write a map to iterate over the stream, add an observer and convert tokens to MIPS machine code.
- We do not describe optimization, loop unrolling etc.
Several tools exist to scaffold the code to hand-written code, the machine-generated code is a scaffolding to hand editing for academic work.
Javacc, is a LL(1) parser generator, and you can use this to generate the code and use the treejj structure for code generation or use JSON.
JavaCC | The most popular parser generator for use with Java …
Hermes is another generator that can generate java and you can add the lexer(), parser() and eat() as native Java in the grammar.
scottfrazer/hermes: Python LL(1) Parser Generator … — GitHub
Remember to hand-code the generated code, to high-quality compiler code, an art that takes decades to learn, help is available from AWS Code Guru, an AI-based code refactoring tool.