|
hoshi-lang dev
Yet another programming language
|
#include <moduleContext.h>

Public Member Functions | |
| moduleContext (std::shared_ptr< yoi::compilerContext > compilerContext, yoi::wstr path, yoi::hoshiModule *moduleAST) | |
| yoi::hoshiModule & | getModuleAST () |
| yoi::IRBuilder & | getIRBuilder () |
| void | pushIRBuilder (const yoi::IRBuilder &builder) |
| void | popIRBuilder () |
| void | pushTemplateBuilder (IRTemplateBuilder &builder) |
| void | popTemplateBuilder () |
| std::vector< IRTemplateBuilder > & | getTemplateBuilders () |
| std::shared_ptr< yoi::compilerContext > | getCompilerContext () |
Private Attributes | |
| yoi::wstr | path |
| yoi::hoshiModule * | moduleAST |
| std::map< yoi::wstr, std::shared_ptr< moduleContext > > | referencedModules |
| std::shared_ptr< yoi::compilerContext > | compilerContext |
| std::stack< yoi::IRBuilder > | IRBuilderStack |
| std::vector< IRTemplateBuilder > | templateBuilders |
Definition at line 17 of file moduleContext.h.
| moduleContext | ( | std::shared_ptr< yoi::compilerContext > | compilerContext, |
| yoi::wstr | path, | ||
| yoi::hoshiModule * | moduleAST | ||
| ) |
Definition at line 11 of file moduleContext.cpp.
| std::shared_ptr< yoi::compilerContext > getCompilerContext | ( | ) |
Definition at line 31 of file moduleContext.cpp.
References moduleContext::compilerContext.
Referenced by visitor::canCastTo(), visitor::checkMarcoSatisfaction(), visitor::constructDataStruct(), visitor::createCallableImplementationForFunction(), visitor::createCallableImplementationForLambda(), visitor::createCallableInstanceForFunction(), visitor::createCallableInterface(), visitor::createLambdaUnnamedStruct(), visitor::generateNullInterfaceImplementation(), visitor::getExternEntry(), visitor::getGeneratorContext(), visitor::handleBinaryOperatorOverload(), visitor::handleInvocationExtern(), visitor::handleSubscript(), visitor::handleUnaryOperatorOverload(), visitor::isModuleName(), visitor::mapEnumTypeToBasicType(), visitor::parseConceptName(), visitor::parseInterfaceName(), visitor::parseTypeSpec(), visitor::parseTypeSpecExtern(), visitor::parseTypeSpecExtern(), visitor::popModuleContext(), visitor::pushModuleContext(), visitor::resolveOverloadExtern(), visitor::resolveOverloadInterface(), visitor::setupTemporaryConceptEvaluationEnvironment(), visitor::specializeFunctionTemplate(), visitor::specializeInterfaceImplementation(), visitor::specializeInterfaceTemplate(), visitor::specializeStructMethodDeclaration(), visitor::specializeStructMethodDefinition(), visitor::specializeStructMethodTemplate(), visitor::specializeStructTemplate(), visitor::tryCastTo(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visitExtern(), and visitor::visitExtern().

| yoi::IRBuilder & getIRBuilder | ( | ) |
Definition at line 19 of file moduleContext.cpp.
References moduleContext::IRBuilderStack.
Referenced by visitor::constructDataStruct(), visitor::createCallableImplementationForFunction(), visitor::createCallableImplementationForLambda(), visitor::createCallableInstanceForFunction(), visitor::createLambdaUnnamedStruct(), visitor::emitBasicCastInBasicArithOpByLhsAndRhs(), visitor::emitBasicCastTo(), visitor::evaluateArguments(), visitor::evaluateConstraint(), visitor::getGeneratorContext(), visitor::getTypeSpecUniqueNameStr(), visitor::handleBinaryOperatorOverload(), visitor::handleInvocationExtern(), visitor::handleSubscript(), visitor::handleUnaryOperatorOverload(), visitor::isVisitingGlobalScope(), visitor::parseTypeSpec(), visitor::setupTemporaryConceptEvaluationEnvironment(), visitor::specializeFunctionTemplate(), visitor::specializeInterfaceImplementation(), visitor::specializeStructMethodDefinition(), visitor::specializeStructMethodTemplate(), visitor::tryCastTo(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visit(), visitor::visitExtern(), and visitor::visitExtern().

| yoi::hoshiModule & getModuleAST | ( | ) |
Definition at line 15 of file moduleContext.cpp.
References moduleContext::moduleAST.
Referenced by visitor::visit().

| std::vector< IRTemplateBuilder > & getTemplateBuilders | ( | ) |
Definition at line 43 of file moduleContext.cpp.
References moduleContext::templateBuilders.
Referenced by visitor::getIncompleteType().

| void popIRBuilder | ( | ) |
Definition at line 27 of file moduleContext.cpp.
References moduleContext::IRBuilderStack.
Referenced by visitor::createCallableImplementationForFunction(), visitor::createLambdaUnnamedStruct(), visitor::ejectTemporaryConceptEvaluationEnvironment(), visitor::getGeneratorContext(), visitor::specializeFunctionTemplate(), visitor::specializeInterfaceImplementation(), visitor::specializeStructMethodDefinition(), visitor::specializeStructMethodTemplate(), visitor::visit(), visitor::visit(), and visitor::visit().

| void popTemplateBuilder | ( | ) |
Definition at line 39 of file moduleContext.cpp.
References moduleContext::templateBuilders.
Referenced by visitor::checkConceptSatisfaction(), visitor::ejectTemporaryConceptEvaluationEnvironment(), visitor::specializeFunctionTemplate(), visitor::specializeInterfaceTemplate(), visitor::specializeStructMethodDeclaration(), visitor::specializeStructMethodDefinition(), visitor::specializeStructMethodTemplate(), and visitor::specializeStructTemplate().

| void pushIRBuilder | ( | const yoi::IRBuilder & | builder | ) |
Definition at line 23 of file moduleContext.cpp.
References moduleContext::IRBuilderStack.
Referenced by visitor::createCallableImplementationForFunction(), visitor::createLambdaUnnamedStruct(), visitor::getGeneratorContext(), visitor::setupTemporaryConceptEvaluationEnvironment(), visitor::specializeFunctionTemplate(), visitor::specializeInterfaceImplementation(), visitor::specializeStructMethodDefinition(), visitor::specializeStructMethodTemplate(), visitor::visit(), visitor::visit(), and visitor::visit().

| void pushTemplateBuilder | ( | IRTemplateBuilder & | builder | ) |
Definition at line 35 of file moduleContext.cpp.
References moduleContext::templateBuilders.
Referenced by visitor::checkConceptSatisfaction(), visitor::setupTemporaryConceptEvaluationEnvironment(), visitor::specializeFunctionTemplate(), visitor::specializeInterfaceTemplate(), visitor::specializeStructMethodDeclaration(), visitor::specializeStructMethodDefinition(), visitor::specializeStructMethodTemplate(), and visitor::specializeStructTemplate().

|
private |
Definition at line 21 of file moduleContext.h.
Referenced by moduleContext::getCompilerContext().
|
private |
Definition at line 22 of file moduleContext.h.
Referenced by moduleContext::getIRBuilder(), moduleContext::popIRBuilder(), and moduleContext::pushIRBuilder().
|
private |
Definition at line 19 of file moduleContext.h.
Referenced by moduleContext::getModuleAST().
|
private |
Definition at line 18 of file moduleContext.h.
|
private |
Definition at line 20 of file moduleContext.h.
|
private |
Definition at line 23 of file moduleContext.h.
Referenced by moduleContext::getTemplateBuilders(), moduleContext::popTemplateBuilder(), and moduleContext::pushTemplateBuilder().