![]() |
Spicy
|
#include <codegen.h>
Public Member Functions | |
CodeGen (std::shared_ptr< hilti::Context > context) | |
bool | compileModule (hilti::Node *root, hilti::Unit *u) |
auto | context () const |
const auto & | options () const |
hilti::Type | compileUnit (const type::Unit &unit, bool declare_only=true) |
std::optional< hilti::declaration::Function > | compileHook (const type::Unit &unit, const ID &id, std::optional< std::reference_wrapper< const type::unit::item::Field >> field, bool foreach, bool debug, std::vector< type::function::Parameter > params, std::optional< hilti::Statement > body, std::optional< Expression >, const hilti::Meta &meta) |
codegen::ParserBuilder * | parserBuilder () |
codegen::GrammarBuilder * | grammarBuilder () |
hilti::Unit * | hiltiUnit () const |
hilti::Module * | hiltiModule () const |
auto | uniquer () |
const auto & | moduleProperties () const |
void | recordModuleProperty (hilti::declaration::Property p) |
void | addDeclaration (Declaration d) |
bool | haveAddedDeclaration (const ID &id) |
Spicy's code generator. This is the main internal entry point for generating HILTI code from Spicy source code. The Spicy AST reuses many HILTI nodes. The code generator's task is to convert a mixed Spicy/HILTI AST into a pure HILTI AST.
bool CodeGen::compileModule | ( | hilti::Node * | root, |
hilti::Unit * | u | ||
) |
Entry point for transformation from a Spicy AST to a HILTI AST.