#include <stdint.h>#include <stdlib.h>#include <dirent.h>#include <fstream>#include <iostream>#include <sstream>#include <string>#include <libsherpa/UExcept.hxx>#include <libsherpa/CVector.hxx>#include <libsherpa/avl.hxx>#include <assert.h>#include "AST.hxx"#include "Type.hxx"#include "inter-pass.hxx"Go to the source code of this file.
Data Structures | |
| struct | hstruct |
Defines | |
| #define | NULL_MODE 0x0u |
| #define | LOCAL_MODE 0x2u |
| #define | USE_MODE 0x3u |
| #define | HOIST(a, b, c, d, e, f, g) |
Functions | |
| bool | hoist (std::ostream &errStream, AST *ast, CVector< hstruct * > *hs, const size_t toppos, AST *parent, const size_t chno, const bool hoistme) |
| bool | trulyHoist (std::ostream &errStream, UocInfo *uoc, AST *ast, CVector< hstruct * > *hs) |
| #define HOIST | ( | a, | |||
| b, | |||||
| c, | |||||
| d, | |||||
| e, | |||||
| f, | |||||
| g | ) |
| bool hoist | ( | std::ostream & | errStream, | |
| AST * | ast, | |||
| CVector< hstruct * > * | hs, | |||
| const size_t | toppos, | |||
| AST * | parent, | |||
| const size_t | chno, | |||
| const bool | hoistme | |||
| ) |
Definition at line 81 of file Hoist.cxx.
References agt_category, agt_CompilationUnit, agt_definition, agt_eform, agt_expr, agt_fielditem, agt_if_definition, agt_literal, agt_ow, agt_qtype, agt_tc_definition, agt_tvar, agt_type, agt_type_definition, agt_value_definition, agt_var, assert(), AST::astType, at_and, at_AnyGroup, at_apply, at_argVec, at_array, at_array_nth, at_arrayType, at_begin, at_boolLiteral, at_charLiteral, at_cond, at_cond_leg, at_cond_legs, at_constraints, at_constructor, at_constructors, at_container, at_declare, at_declares, at_declrepr, at_declstruct, at_declunion, at_defexception, at_define, at_definstance, at_defrepr, at_defstruct, at_deftypeclass, at_defunion, at_deref, at_dup, at_exceptionType, at_field, at_fields, at_fill, at_floatLiteral, at_fn, at_fnargVec, at_frameBindings, at_ident, at_identList, at_identPattern, at_if, at_ifident, at_import, at_interface, at_intLiteral, at_lambda, at_let, at_letbinding, at_letbindings, at_letrec, at_letStar, at_localFrame, at_method_decl, at_method_decls, at_module, at_mutableType, at_Null, at_opaqueCat, at_or, at_otherwise, at_primaryType, at_provide, at_qualType, at_select, at_setbang, at_stringLiteral, at_struct_apply, at_suspend, at_tcapp, at_tcdecls, at_throw, at_tvlist, at_tyfn, at_typeapp, at_ucon_apply, at_unit, at_usesel, at_vector, at_vector_nth, at_vectorType, AST::children, AST::genSym(), HOIST, id_value, and AST::loc.
Definition at line 309 of file Hoist.cxx.
References AST::addChild(), assert(), AST::astType, at_constraints, at_define, at_identPattern, at_interface, at_module, AST::children, ID_IS_GLOBAL, hstruct::ident, hstruct::lambda, AST::loc, AST::symType, and hstruct::toppos.
1.4.7