hoshi-lang dev
Yet another programming language
Loading...
Searching...
No Matches
moduleContext Class Reference

#include <moduleContext.h>

Collaboration diagram for moduleContext:

Public Member Functions

 moduleContext (std::shared_ptr< yoi::compilerContext > compilerContext, yoi::wstr path, yoi::hoshiModule *moduleAST)
 
yoi::hoshiModulegetModuleAST ()
 
yoi::IRBuildergetIRBuilder ()
 
void pushIRBuilder (const yoi::IRBuilder &builder)
 
void popIRBuilder ()
 
void pushTemplateBuilder (IRTemplateBuilder &builder)
 
void popTemplateBuilder ()
 
std::vector< IRTemplateBuilder > & getTemplateBuilders ()
 
std::shared_ptr< yoi::compilerContextgetCompilerContext ()
 

Private Attributes

yoi::wstr path
 
yoi::hoshiModulemoduleAST
 
std::map< yoi::wstr, std::shared_ptr< moduleContext > > referencedModules
 
std::shared_ptr< yoi::compilerContextcompilerContext
 
std::stack< yoi::IRBuilderIRBuilderStack
 
std::vector< IRTemplateBuildertemplateBuilders
 

Detailed Description

Definition at line 17 of file moduleContext.h.

Constructor & Destructor Documentation

◆ moduleContext()

moduleContext ( std::shared_ptr< yoi::compilerContext compilerContext,
yoi::wstr  path,
yoi::hoshiModule moduleAST 
)

Definition at line 11 of file moduleContext.cpp.

Member Function Documentation

◆ getCompilerContext()

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().

Here is the caller graph for this function:

◆ getIRBuilder()

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().

Here is the caller graph for this function:

◆ getModuleAST()

yoi::hoshiModule & getModuleAST ( )

Definition at line 15 of file moduleContext.cpp.

References moduleContext::moduleAST.

Referenced by visitor::visit().

Here is the caller graph for this function:

◆ getTemplateBuilders()

std::vector< IRTemplateBuilder > & getTemplateBuilders ( )

Definition at line 43 of file moduleContext.cpp.

References moduleContext::templateBuilders.

Referenced by visitor::getIncompleteType().

Here is the caller graph for this function:

◆ popIRBuilder()

◆ popTemplateBuilder()

◆ pushIRBuilder()

◆ pushTemplateBuilder()

Member Data Documentation

◆ compilerContext

std::shared_ptr<yoi::compilerContext> compilerContext
private

Definition at line 21 of file moduleContext.h.

Referenced by moduleContext::getCompilerContext().

◆ IRBuilderStack

std::stack<yoi::IRBuilder> IRBuilderStack
private

◆ moduleAST

yoi::hoshiModule* moduleAST
private

Definition at line 19 of file moduleContext.h.

Referenced by moduleContext::getModuleAST().

◆ path

yoi::wstr path
private

Definition at line 18 of file moduleContext.h.

◆ referencedModules

std::map<yoi::wstr, std::shared_ptr<moduleContext> > referencedModules
private

Definition at line 20 of file moduleContext.h.

◆ templateBuilders

std::vector<IRTemplateBuilder> templateBuilders
private

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