hpg_projects Wiki
collectiom of tutorials and projects created in LateralGM
Brought to you by:
hpg50
In the design of ENIGMA's compiler, the
parser is the collection of sources responsible for
translating EDL into C++. For
efficiency reasons, the parser is divided into four segments that are
unidirectionally
dependent.
| C Parser | Reads C headers to determine available functions, types, and macros. This parser has no dependencies. |
| Type resolver | A stack-based parser meant to determine the type of a given expression based on the results of the C parser. |
| Syntax checker | A lexless pass that reads over code to find simple syntax errors. It cannot determine errors in types due to ENIGMA's lax typing system, but by using results from the C parser, it can determine which statements are declarations and which functions are passed the correct number of parameters. |
| Formatter | A parser/lexer designed to add missing marks of punctuation, including parentheses around control statements, missing semicolons, missing colons (after case labels and in ternary operators), and in some cases, spacing. |
Wiki: C++
Wiki: EDL
Wiki: ENIGMA_Compiler
Wiki: ENIGMA_compiler