2#pragma clang diagnostic push
3#pragma ide diagnostic ignored "modernize-use-nodiscard"
4#pragma ide diagnostic ignored "google-explicit-constructor"
8#ifndef HOSHI_LANG_AST_HPP
9#define HOSHI_LANG_AST_HPP
464 operator bool()
const;
491 operator bool()
const;
503 operator bool()
const;
515 operator bool()
const;
527 operator bool()
const;
539 operator bool()
const;
551 operator bool()
const;
563 operator bool()
const;
575 operator bool()
const;
587 operator bool()
const;
599 operator bool()
const;
826 template <
typename T>
vValue(T *t) :
ptr(static_cast<void *>(t)) {}
1312#pragma clang diagnostic pop
yoi::lexer::token & getToken()
std::tuple< yoi::indexT, yoi::indexT > getLocation()
externModuleAccessExpression * rhs
externModuleAccessExpression & getRhs() const
vec< mulExpr * > & getTerms()
vec< lexer::token > & getOp()
vec< equalityExpr * > & getTerms()
vec< lexer::token > & getOp()
vec< equalityExpr * > terms
yoi::vec< yoi::rExpr * > exprs
vec< inCodeBlockStmt * > & getStmts()
vec< inCodeBlockStmt * > stmts
yoi::vec< identifierWithTypeSpec * > algebraParams
yoi::vec< lexer::token > typeParams
yoi::vec< conceptStmt * > conceptBlock
union yoi::conceptStmt::ConceptStmtValue value
enum yoi::conceptStmt::Kind kind
defTemplateArg * tempArgs
definitionArguments & getArgs()
definitionArguments * args
definitionArguments & getArgs()
definitionArguments * args
structDefInner & getInner()
satisfyClause * satisfyCondition
identifier & getId() const
vec< defTemplateArgSpec * > & get()
vec< defTemplateArgSpec * > spec
vec< identifierWithTypeSpec * > spec
vec< identifierWithTypeSpec * > & get()
vec< enumerationPair * > values
vec< relationalExpr * > & getTerms()
vec< relationalExpr * > terms
vec< lexer::token > & getOp()
vec< andExpr * > & getTerms()
vec< lexer::token > & getOp()
yoi::vec< lexer::token > attrs
vec< identifierWithTemplateArg * > & getTerms()
vec< identifierWithTemplateArg * > terms
bool isIdentifier() const
inCodeBlockStmt * afterStmt
inCodeBlockStmt * initStmt
inCodeBlockStmt & getAfterStmt()
inCodeBlockStmt & getInitStmt()
typeSpec & getResultType()
identifierWithDefTemplateArg * id
definitionArguments & getArgs()
identifierWithDefTemplateArg & getId()
yoi::vec< lexer::token > attrs
definitionArguments * args
externModuleAccessExpression * name
unnamedDefinitionArguments * args
unnamedDefinitionArguments & getArgs() const
typeSpec & getResultType() const
unnamedDefinitionArguments * args
union yoi::globalStmt::vValue value
enum yoi::globalStmt::vKind kind
vec< globalStmt * > & getStmts()
vec< globalStmt * > stmts
defTemplateArg & getArg() const
bool hasDefTemplateArg() const
identifier & getId() const
identifier & getId() const
bool hasTemplateArg() const
templateArg & getArg() const
identifier & getId() const
typeSpec & getSpec() const
vec< ifBlock > & getElifBlock()
codeBlock & getElseBlock()
bool hasElseBlock() const
innerMethodDef & getMethod()
finalizerDef & getFinalizer()
constructorDef & getConstructor()
bool isConstructor() const
vec< implInnerPair * > & getInner()
vec< implInnerPair * > inner
externModuleAccessExpression & getInterfaceId()
externModuleAccessExpression & getStructId()
externModuleAccessExpression * structName
externModuleAccessExpression * interfaceName
union yoi::inCodeBlockStmt::vValue value
enum yoi::inCodeBlockStmt::vKind kind
vec< exclusiveExpr * > terms
vec< lexer::token > & getOp()
vec< exclusiveExpr * > & getTerms()
typeSpec & getResultType()
definitionArguments & getArgs()
yoi::vec< lexer::token > attrs
identifierWithDefTemplateArg * name
definitionArguments * args
identifierWithDefTemplateArg & getName()
typeSpec & getResultType()
identifierWithTemplateArg & getName()
definitionArguments & getArgs()
yoi::vec< lexer::token > attrs
definitionArguments * args
identifierWithTemplateArg * name
innerMethodDecl & getMethod()
identifierWithTypeSpec & getVar()
identifierWithTypeSpec * var
vec< interfaceDefInnerPair * > & getInner()
vec< interfaceDefInnerPair * > inner
identifierWithDefTemplateArg * id
identifierWithDefTemplateArg & getId()
interfaceDefInner & getInner()
interfaceDefInner * inner
vec< yoi::identifier * > captures
definitionArguments * args
uniqueExpr & getLhs() const
enum yoi::letAssignmentPairLHS::vKind kind
letAssignmentPairLHS * lhs
letAssignmentPairLHS & getLhs()
vec< letAssignmentPair * > & getTerms()
vec< letAssignmentPair * > terms
vec< lexer::token > & getOp()
vec< inclusiveExpr * > terms
vec< inclusiveExpr * > & getTerms()
vec< logicalAndExpr * > & getTerms()
vec< lexer::token > & getOp()
vec< logicalAndExpr * > terms
yoi::vec< marcoPair * > pairs
vec< subscriptExpr * > & getTerms()
vec< subscriptExpr * > terms
vec< lexer::token > & getOp()
vec< leftExpr * > & getTerms()
invocationArguments * args
externModuleAccessExpression * type
enum yoi::primary::primaryKind kind
decltypeExpr * decltypeExpr
memberExpr & getMemberExpr() const
bracedInitalizerList * bracedInitalizer
basicLiterals & getLiterals() const
typeIdExpression * typeId
dynCastExpression * dynCast
logicalOrExpr & getExpr() const
vec< shiftExpr * > & getTerms()
vec< lexer::token > & getOp()
yoi::vec< externModuleAccessExpression * > emaes
externModuleAccessExpression * emae
vec< lexer::token > & getOp()
vec< addExpr * > & getTerms()
enum yoi::structDefInnerPair::Modifier modifier
innerMethodDecl & getMethod()
constructorDecl & getConstructor()
identifierWithTypeSpec & getVar()
finalizerDecl * finalizer
finalizerDecl & getFinalizer()
identifierWithTypeSpec * var
vec< structDefInnerPair * > & getInner()
vec< structDefInnerPair * > inner
identifierWithDefTemplateArg * id
identifierWithDefTemplateArg & getId()
structDefInner & getInner()
vec< subscript * > & getSubscript()
vec< subscript * > subscriptVal
bool isIdentifier() const
identifierWithTemplateArg * id
bool isInvocation() const
invocationArguments * args
vec< templateArgSpec * > spec
vec< templateArgSpec * > & get()
vec< catchParam * > catchParams
yoi::identifierWithDefTemplateArg * lhs
decltypeExpr * decltypeExpression
yoi::vec< uint64_t > * arraySubscript
funcTypeSpec & getTypeSpec() const
externModuleAccessExpression * member
enum yoi::typeSpec::typeSpecKind kind
externModuleAccessExpression & getMemberExpr() const
abstractExpr & getLhs() const
void finalizeAST(funcTypeSpec *ptr)
satisfyStmt * satisfyStmt
dataStructDefStmt * dataStructDefStmtVal
enumerationDefinition * enumerationDefVal
interfaceDefStmt * interfaceDefStmtVal
conceptDefinition * conceptDefVal
funcDefStmt * funcDefStmtVal
typeAliasStmt * typeAliasStmtVal
exportDecl * exportDeclVal
structDefStmt * structDefStmtVal
importDecl * importDeclVal
forEachStmt * forEachStmtVal
returnStmt * returnStmtVal
continueStmt * continueStmtVal