Spicy
Public Member Functions | List of all members
spicy::detail::CodeGen Class Reference

#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::FunctioncompileHook (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::ParserBuilderparserBuilder ()
 
codegen::GrammarBuildergrammarBuilder ()
 
hilti::UnithiltiUnit () const
 
hilti::ModulehiltiModule () const
 
auto uniquer ()
 
const auto & moduleProperties () const
 
void recordModuleProperty (hilti::declaration::Property p)
 
void addDeclaration (Declaration d)
 
bool haveAddedDeclaration (const ID &id)
 

Detailed Description

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.

Member Function Documentation

◆ compileModule()

bool CodeGen::compileModule ( hilti::Node root,
hilti::Unit u 
)

Entry point for transformation from a Spicy AST to a HILTI AST.


The documentation for this class was generated from the following files: