Menu

Parser

Hugh Greene

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.

Related

Wiki: C++
Wiki: EDL
Wiki: ENIGMA_Compiler
Wiki: ENIGMA_compiler

MongoDB Logo MongoDB