hobbes
a language, embedded compiler, and runtime for efficient dynamic expression evaluation, data storage and analysis
macroexpand.H
Go to the documentation of this file.
1 #ifndef HOBBES_LANG_MACROEXPAND_HPP_INCLUDED
2 #define HOBBES_LANG_MACROEXPAND_HPP_INCLUDED
3 
4 #include <hobbes/lang/expr.H>
5 #include <hobbes/lang/type.H>
6 
7 namespace hobbes {
8 
9 // give a type assignment to all macros (so that they can be safely type-checked, even if they're just expanded inline)
10 void initMacroEnvironment(const TEnvPtr& tenv);
11 
12 // macro-expand an expression
13 ExprPtr macroExpand(const ExprPtr& e);
14 
15 }
16 
17 #endif
18 
ExprPtr macroExpand(const ExprPtr &e)
Definition: macroexpand.C:116
Definition: boot.H:7
void initMacroEnvironment(const TEnvPtr &tenv)
Definition: macroexpand.C:120
std::shared_ptr< Expr > ExprPtr
Definition: expr.H:58
std::shared_ptr< TEnv > TEnvPtr
Definition: type.H:80