12 #include <hilti/ast/ctor.h> 13 #include <hilti/ast/expression.h> 14 #include <hilti/ast/function.h> 15 #include <hilti/ast/node.h> 16 #include <hilti/ast/operator.h> 17 #include <hilti/base/logger.h> 18 #include <hilti/compiler/context.h> 31 std::set<context::CacheIndex> importModules(
const Node& root, Unit* unit);
37 void printAST(
const Node& root, std::ostream& out,
bool compact =
false);
43 void printAST(
const Node& root, printer::Stream& stream);
46 std::string renderOperatorPrototype(
const expression::UnresolvedOperator& o);
49 std::string renderOperatorPrototype(
const expression::ResolvedOperator& o);
52 std::string renderOperatorInstance(
const expression::UnresolvedOperator& o);
55 std::string renderOperatorInstance(
const expression::ResolvedOperator& o);
58 void renderNode(
const Node& n, std::ostream& out,
bool include_scopes =
false);
59 void renderNode(
const Node& n, logging::DebugStream stream,
bool include_scopes =
false);
63 void buildScopes(
const std::shared_ptr<hilti::Context>& context, Node* root, Unit* unit);
65 bool normalize(Node* root, Unit* unit);
67 bool coerce(Node* root, Unit* unit);
69 bool resolve(
const std::shared_ptr<hilti::Context>& ctx, Node* root, Unit* unit);
71 void validate_pre(Node* root);
73 void validate_post(Node* root);