// TODOdparse.ast
This module defines an Abstract Syntax Tree for the D language
Examples
Copyright
Brian Schott 2013
License
var typeMap
tmpl visitIfNotNull
class AddExpression AliasAssign AliasDeclaration AliasInitializer AliasThisDeclaration AlignAttribute AndAndExpression AndExpression AnonymousEnumDeclaration AnonymousEnumMember ArgumentList Arguments ArrayInitializer ArrayLiteral ArrayMemberInitialization AsmAddExp AsmAndExp AsmBrExp AsmEqualExp AsmExp AsmInstruction AsmLogAndExp AsmLogOrExp AsmMulExp AsmOrExp AsmPrimaryExp AsmRelExp AsmShiftExp AsmStatement AsmTypePrefix AsmUnaExp AsmXorExp AssertArguments AssertExpression AssignExpression AssocArrayLiteral ASTVisitor AtAttribute Attribute AttributeDeclaration AutoDeclaration AutoDeclarationPart BaseClass BaseClassList BaseNode BitfieldWidth BlockStatement BreakStatement CaseRangeStatement CaseStatement CastExpression CastQualifier Catch Catches ClassDeclaration CmpExpression CompileCondition ConditionalDeclaration ConditionalStatement Constraint Constructor ContinueStatement DebugCondition DebugSpecification Declaration DeclarationOrStatement DeclarationsAndStatements Declarator DeclaratorIdentifierList DefaultStatement DeleteExpression DeleteStatement Deprecated Destructor DoStatement EnumBody EnumDeclaration EnumMember EnumMemberAttribute EponymousTemplateDeclaration EqualExpression Expression ExpressionNode ExpressionStatement Finally FinalSwitchStatement Foreach ForeachType ForeachTypeList ForStatement FunctionAttribute FunctionBody FunctionCallExpression FunctionContract FunctionDeclaration FunctionLiteralExpression GccAsmInstruction GccAsmOperand GccAsmOperandList GotoStatement IdentifierChain IdentifierOrTemplateChain IdentifierOrTemplateInstance IdentityExpression IfCondition IfStatement ImportBind ImportBindings ImportDeclaration ImportExpression InContractExpression Index IndexExpression InExpression Initialize Initializer InOutContractExpression InOutStatement InStatement InterfaceDeclaration InterpolatedString InterpolatedStringExpression InterpolatedStringPart InterpolatedStringText Invariant IsExpression KeyValuePair KeyValuePairs LabeledStatement LastCatch LinkageAttribute MemberFunctionAttribute MissingFunctionBody MixinDeclaration MixinExpression MixinTemplateDeclaration MixinTemplateName Module ModuleDeclaration MulExpression NamedArgument NamedArgumentList NamedTemplateArgument NamedTemplateArgumentList NamespaceList NewAnonClassExpression NewExpression NonVoidInitializer Operands OrExpression OrOrExpression OutContractExpression OutStatement Parameter ParameterAttribute Parameters Postblit PowExpression PragmaDeclaration PragmaExpression PragmaStatement PrimaryExpression Register RelExpression ReturnStatement ScopeGuardStatement SharedStaticConstructor SharedStaticDestructor ShiftExpression ShortenedFunctionBody SingleImport SpecifiedFunctionBody Statement StatementNoCaseNoDefault StaticAssertDeclaration StaticAssertStatement StaticConstructor StaticDestructor StaticForeachStatement StaticIfCondition StorageClass StringLiteralList StructBody StructDeclaration StructInitializer StructMemberInitializer StructMemberInitializers SwitchStatement Symbol SynchronizedStatement TemplateAliasParameter TemplateArgument TemplateArgumentList TemplateArguments TemplateDeclaration TemplateInstance TemplateMixinExpression TemplateParameter TemplateParameterList TemplateParameters TemplateSingleArgument TemplateThisParameter TemplateTupleParameter TemplateTypeParameter TemplateValueParameter TemplateValueParameterDefault TernaryExpression ThrowExpression TraitsExpression TryStatement Type Type2 TypeIdentifierPart TypeidExpression TypeofExpression TypeSpecialization TypeSuffix UnaryExpression UnionDeclaration Unittest VariableDeclaration Vector VersionCondition VersionSpecification WhileStatement WithStatement XorExpression
iface ASTNode
Module Initializers 1
shared static this
()Types 233
enumDeclarationListStyle : ubyte
Describes which syntax was used in a list of declarations in the containing AST node
singleA declaration directly after the containing AST node making it the only child
colonA colon (`:`) was used in the containing AST node meaning all following declarations are part here.
blockThe declarations have been specified in a block denoted by starting `{` and ending `}` tokens.
classASTVisitor
Implements the Visitor Pattern for the various AST classes
Methods
void visit(const ExpressionNode n)void dynamicDispatch(const ExpressionNode n)Looks at the runtime type of `n`, then calls the appropriate `visit` method at runtime.void dynamicDispatch(const InterpolatedStringPart n)dittovoid visit(const AddExpression addExpression)void visit(const AliasDeclaration aliasDeclaration)void visit(const AliasAssign aliasAssign)void visit(const AliasInitializer aliasInitializer)void visit(const AliasThisDeclaration aliasThisDeclaration)void visit(const AlignAttribute alignAttribute)void visit(const AndAndExpression andAndExpression)void visit(const AndExpression andExpression)void visit(const AnonymousEnumDeclaration anonymousEnumDeclaration)void visit(const AnonymousEnumMember anonymousEnumMember)void visit(const ArgumentList argumentList)void visit(const ArrayInitializer arrayInitializer)void visit(const ArrayLiteral arrayLiteral)void visit(const ArrayMemberInitialization arrayMemberInitialization)void visit(const AsmEqualExp asmEqualExp)void visit(const AsmInstruction asmInstruction)void visit(const AsmLogAndExp asmLogAndExp)void visit(const AsmLogOrExp asmLogOrExp)void visit(const AsmPrimaryExp asmPrimaryExp)void visit(const AsmShiftExp asmShiftExp)void visit(const AsmStatement asmStatement)void visit(const AsmTypePrefix asmTypePrefix)void visit(const AssertArguments assertArguments)void visit(const AssertExpression assertExpression)void visit(const AssignExpression assignExpression)void visit(const AssocArrayLiteral assocArrayLiteral)void visit(const AtAttribute atAttribute)void visit(const AttributeDeclaration attributeDeclaration)void visit(const AutoDeclaration autoDeclaration)void visit(const AutoDeclarationPart autoDeclarationPart)void visit(const BlockStatement blockStatement)void visit(const BreakStatement breakStatement)void visit(const BaseClassList baseClassList)void visit(const BitfieldWidth bitfieldWidth)void visit(const CaseRangeStatement caseRangeStatement)void visit(const CaseStatement caseStatement)void visit(const CastExpression castExpression)void visit(const CastQualifier castQualifier)void visit(const ClassDeclaration classDeclaration)void visit(const CmpExpression cmpExpression)void visit(const CompileCondition compileCondition)void visit(const ConditionalDeclaration conditionalDeclaration)void visit(const ConditionalStatement conditionalStatement)void visit(const Constraint constraint)void visit(const Constructor constructor)void visit(const ContinueStatement continueStatement)void visit(const DebugCondition debugCondition)void visit(const DebugSpecification debugSpecification)void visit(const Declaration declaration)void visit(const DeclarationOrStatement declarationsOrStatement)void visit(const DeclarationsAndStatements declarationsAndStatements)void visit(const Declarator declarator)void visit(const DefaultStatement defaultStatement)void visit(const DeleteExpression deleteExpression)void visit(const DeleteStatement deleteStatement)void visit(const Deprecated deprecated_)void visit(const Destructor destructor)void visit(const DoStatement doStatement)void visit(const EnumDeclaration enumDeclaration)void visit(const EnumMember enumMember)void visit(const EnumMemberAttribute enumMemberAttribute)void visit(const EponymousTemplateDeclaration eponymousTemplateDeclaration)void visit(const EqualExpression equalExpression)void visit(const Expression expression)void visit(const ExpressionStatement expressionStatement)void visit(const FinalSwitchStatement finalSwitchStatement)void visit(const ForStatement forStatement)void visit(const ForeachStatement foreachStatement)void visit(const StaticForeachDeclaration staticForeachDeclaration)void visit(const StaticForeachStatement staticForeachStatement)void visit(const ForeachType foreachType)void visit(const ForeachTypeList foreachTypeList)void visit(const FunctionAttribute functionAttribute)void visit(const FunctionBody functionBody)void visit(const FunctionCallExpression functionCallExpression)void visit(const FunctionContract functionContract)void visit(const FunctionDeclaration functionDeclaration)void visit(const FunctionLiteralExpression functionLiteralExpression)void visit(const GccAsmInstruction gccAsmInstruction)void visit(const GccAsmOperandList gccAsmOperands)void visit(const GccAsmOperand gccAsmOperand)void visit(const GotoStatement gotoStatement)void visit(const IdentifierChain identifierChain)void visit(const DeclaratorIdentifierList identifierList)void visit(const IdentifierOrTemplateChain identifierOrTemplateChain)void visit(const IdentifierOrTemplateInstance identifierOrTemplateInstance)void visit(const IdentityExpression identityExpression)void visit(const IfStatement ifStatement)void visit(const IfCondition ifCondition)void visit(const ImportBind importBind)void visit(const ImportBindings importBindings)void visit(const ImportDeclaration importDeclaration)void visit(const ImportExpression importExpression)void visit(const IndexExpression indexExpression)void visit(const InContractExpression inContractExpression)void visit(const InExpression inExpression)void visit(const InOutContractExpression inOutContractExpression)void visit(const InOutStatement inOutStatement)void visit(const InStatement inStatement)void visit(const Initialize initialize)void visit(const Initializer initializer)void visit(const InterfaceDeclaration interfaceDeclaration)void visit(const InterpolatedString interpolatedString)void visit(const InterpolatedStringExpression interpolatedStringExpression)void visit(const InterpolatedStringText interpolatedStringText)void visit(const IsExpression isExpression)void visit(const KeyValuePair keyValuePair)void visit(const KeyValuePairs keyValuePairs)void visit(const LabeledStatement labeledStatement)void visit(const LinkageAttribute linkageAttribute)void visit(const MemberFunctionAttribute memberFunctionAttribute)void visit(const MissingFunctionBody missingFunctionBody)void visit(const MixinDeclaration mixinDeclaration)void visit(const MixinExpression mixinExpression)void visit(const MixinTemplateDeclaration mixinTemplateDeclaration)void visit(const MixinTemplateName mixinTemplateName)void visit(const ModuleDeclaration moduleDeclaration)void visit(const MulExpression mulExpression)void visit(const NamedArgument argument)void visit(const NamedArgumentList argument)void visit(const NamedTemplateArgumentList namedTemplateArgumentList)void visit(const NamedTemplateArgument namedTemplateArgument)void visit(const NamespaceList namespaceList)void visit(const NewAnonClassExpression newAnonClassExpression)void visit(const NewExpression newExpression)void visit(const NonVoidInitializer nonVoidInitializer)void visit(const OrExpression orExpression)void visit(const OrOrExpression orOrExpression)void visit(const OutContractExpression outContractExpression)void visit(const OutStatement outStatement)void visit(const ParameterAttribute parameterAttribute)void visit(const Parameters parameters)void visit(const PowExpression powExpression)void visit(const PragmaDeclaration pragmaDeclaration)void visit(const PragmaStatement pragmaStatement)void visit(const PragmaExpression pragmaExpression)void visit(const PrimaryExpression primaryExpression)void visit(const RelExpression relExpression)void visit(const ReturnStatement returnStatement)void visit(const ScopeGuardStatement scopeGuardStatement)void visit(const SharedStaticConstructor sharedStaticConstructor)void visit(const SharedStaticDestructor sharedStaticDestructor)void visit(const ShiftExpression shiftExpression)void visit(const ShortenedFunctionBody shortenedFunctionBody)void visit(const SingleImport singleImport)void visit(const SpecifiedFunctionBody specifiedFunctionBody)void visit(const StatementNoCaseNoDefault statementNoCaseNoDefault)void visit(const StaticAssertDeclaration staticAssertDeclaration)void visit(const StaticAssertStatement staticAssertStatement)void visit(const StaticConstructor staticConstructor)void visit(const StaticDestructor staticDestructor)void visit(const StaticIfCondition staticIfCondition)void visit(const StorageClass storageClass)void visit(const StringLiteralList stringLiteralList)void visit(const StructBody structBody)void visit(const StructDeclaration structDeclaration)void visit(const StructInitializer structInitializer)void visit(const StructMemberInitializer structMemberInitializer)void visit(const StructMemberInitializers structMemberInitializers)void visit(const SwitchStatement switchStatement)void visit(const SynchronizedStatement synchronizedStatement)void visit(const TemplateAliasParameter templateAliasParameter)void visit(const TemplateArgument templateArgument)void visit(const TemplateArgumentList templateArgumentList)void visit(const TemplateArguments templateArguments)void visit(const TemplateDeclaration templateDeclaration)void visit(const TemplateInstance templateInstance)void visit(const TemplateMixinExpression templateMixinExpression)void visit(const TemplateParameter templateParameter)void visit(const TemplateParameterList templateParameterList)void visit(const TemplateParameters templateParameters)void visit(const TemplateSingleArgument templateSingleArgument)void visit(const TemplateThisParameter templateThisParameter)void visit(const TemplateTupleParameter templateTupleParameter)void visit(const TemplateTypeParameter templateTypeParameter)void visit(const TemplateValueParameter templateValueParameter)void visit(const TemplateValueParameterDefault templateValueParameterDefault)void visit(const TernaryExpression ternaryExpression)void visit(const ThrowExpression throwExpression)void visit(const TraitsExpression traitsExpression)void visit(const TryStatement tryStatement)void visit(const TypeIdentifierPart typeIdentChain)void visit(const TypeSpecialization typeSpecialization)void visit(const TypeSuffix typeSuffix)void visit(const TypeidExpression typeidExpression)void visit(const TypeofExpression typeofExpression)void visit(const UnaryExpression unaryExpression)void visit(const UnionDeclaration unionDeclaration)void visit(const VariableDeclaration variableDeclaration)void visit(const VersionCondition versionCondition)void visit(const VersionSpecification versionSpecification)void visit(const WhileStatement whileStatement)void visit(const WithStatement withStatement)void visit(const XorExpression xorExpression)interfaceASTNode
Methods
void accept(ASTVisitor visitor) const;Fields
const(Token)[] tokensList of tokens consumed by this AST nodeMethods
void accept(ASTVisitor visitor) const;classExpressionNode : BaseNode
Methods
void accept(ASTVisitor visitor) constclassAddExpression : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassAliasDeclaration : BaseNode
Fields
StorageClass[] storageClassesType typeDeclaratorIdentifierList declaratorIdentifierListAliasInitializer[] initializersstring commentParameters parametersMemberFunctionAttribute[] memberFunctionAttributesMethods
void accept(ASTVisitor visitor) constclassAliasAssign : BaseNode
Methods
void accept(ASTVisitor visitor) constclassAliasInitializer : BaseNode
Fields
Token nameStorageClass[] storageClassesTemplateParameters templateParametersType typeFunctionLiteralExpression functionLiteralExpressionParameters parametersMemberFunctionAttribute[] memberFunctionAttributesMethods
void accept(ASTVisitor visitor) constclassAliasThisDeclaration : BaseNode
Methods
void accept(ASTVisitor visitor) constclassAlignAttribute : BaseNode
Fields
ExpressionNode assignExpressionMethods
void accept(ASTVisitor visitor) constclassAndAndExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAndExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAnonymousEnumDeclaration : BaseNode
Methods
void accept(ASTVisitor visitor) constclassAnonymousEnumMember : BaseNode
Methods
void accept(ASTVisitor visitor) constclassNamedArgument : BaseNode
Methods
void accept(ASTVisitor visitor) constclassNamedArgumentList : BaseNode
Methods
void accept(ASTVisitor visitor) constclassArgumentList : BaseNode
Methods
void accept(ASTVisitor visitor) constFields
NamedArgumentList namedArgumentListMethods
void accept(ASTVisitor visitor) constclassArrayInitializer : BaseNode
Methods
void accept(ASTVisitor visitor) constclassArrayLiteral : BaseNode
Fields
ArgumentList argumentListMethods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassAsmAddExp : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassAsmAndExp : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAsmBrExp : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAsmEqualExp : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassAsmExp : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAsmInstruction : BaseNode
Fields
Token identifierOrIntegerOrOpcodebool hasAlignbool isLabelAsmInstruction asmInstructionOperands operandsMethods
void accept(ASTVisitor visitor) constclassAsmLogAndExp : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAsmLogOrExp : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAsmMulExp : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassAsmOrExp : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAsmPrimaryExp : BaseNode
Fields
ExpressionNode asmExpIdentifierChain identifierChainRegister registerExpressionNode segmentOverrideSuffixToken tokenMethods
void accept(ASTVisitor visitor) constclassAsmRelExp : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassAsmShiftExp : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassAsmStatement : BaseNode
Fields
AsmInstruction[] asmInstructionsGccAsmInstruction[] gccAsmInstructionsFunctionAttribute[] functionAttributesMethods
void accept(ASTVisitor visitor) constclassAsmTypePrefix : BaseNode
Methods
void accept(ASTVisitor visitor) constFields
AsmTypePrefix asmTypePrefixExpressionNode asmExpToken prefixAsmPrimaryExp asmPrimaryExpAsmUnaExp asmUnaExpMethods
void accept(ASTVisitor visitor) constclassAsmXorExp : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAssertArguments : BaseNode
Methods
void accept(ASTVisitor visitor) constinout(ExpressionNode) firstMessage() inout nothrow pure @nogc @safeReturns `messageParts[0]` or `null` if no messageParts.classAssertExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassAssignExpression : ExpressionNode
Fields
ExpressionNode ternaryExpressionExpressionNode expressionIdType operatorsize_t linesize_t columnMethods
void accept(ASTVisitor visitor) constclassAssocArrayLiteral : BaseNode
Fields
KeyValuePairs keyValuePairsMethods
void accept(ASTVisitor visitor) constclassAtAttribute : BaseNode
User-defined @attribute attributes. Also includes @disable, @nogc, @live, etc. by simply having them be regular identifiers.
Fields
ArgumentList argumentListSet for all of `@identifier(argumentList)`, `@templateInstance!T(argumentList)` and `@(argumentListInParens)`.TemplateInstance templateInstanceWhen there is at least one template argument (`@id!T` or `@id!(T, U)`, etc.), this is set instead of identifier. For regular `@identifier` or `@fn(args)` UDAs without template arguments, `identifie...bool useParenTrue for `@(argumentList)` code, as well as `@templateInstance!T(argumentList)` and `@identifier(argumentList)`.Token identifierFor `@identifier`, the identifier part. Not set for `@identifer!templateArgs`, see templateInstance for that. This is however set for `@identifier(regularArguments)`.TemplateSingleArgument templateSingleArgumentFor `@int` or `@5`, the part after the `@`. May only be a single token, may not be identifier (see identifier for that). Introduced with DMD 2.104.0size_t startLocationsize_t endLocationMethods
void accept(ASTVisitor visitor) constFields
PragmaExpression pragmaExpressionDeprecated deprecated_AtAttribute atAttributeAlignAttribute alignAttributeLinkageAttribute linkageAttributeToken attributeIdentifierChain identifierChainMethods
void accept(ASTVisitor visitor) constclassAttributeDeclaration : BaseNode
Methods
void accept(ASTVisitor visitor) constclassAutoDeclaration : BaseNode
Methods
void accept(ASTVisitor visitor) constclassAutoDeclarationPart : BaseNode
Methods
void accept(ASTVisitor visitor) constclassBlockStatement : BaseNode
Fields
size_t startLocationByte position of the opening bracesize_t endLocationByte position of the closing braceDeclarationsAndStatements declarationsAndStatementsMethods
void accept(ASTVisitor visitor) constclassBreakStatement : BaseNode
Fields
Token labelMethods
void accept(ASTVisitor visitor) constFields
Type2 type2Methods
void accept(ASTVisitor visitor) constclassBaseClassList : BaseNode
Fields
BaseClass[] itemsMethods
void accept(ASTVisitor visitor) constclassCaseRangeStatement : BaseNode
Fields
ExpressionNode lowExpressionNode highDeclarationsAndStatements declarationsAndStatementssize_t colonLocationMethods
void accept(ASTVisitor visitor) constclassCaseStatement : BaseNode
Fields
ArgumentList argumentListDeclarationsAndStatements declarationsAndStatementssize_t colonLocationMethods
void accept(ASTVisitor visitor) constclassCastExpression : BaseNode
Methods
void accept(ASTVisitor visitor) constclassCastQualifier : BaseNode
Methods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassClassDeclaration : BaseNode
Fields
Token nameTemplateParameters templateParametersConstraint constraintBaseClassList baseClassListStructBody structBodystring commentMethods
void accept(ASTVisitor visitor) constclassCmpExpression : ExpressionNode
Fields
ExpressionNode shiftExpressionExpressionNode equalExpressionExpressionNode identityExpressionExpressionNode relExpressionExpressionNode inExpressionMethods
void accept(ASTVisitor visitor) constclassCompileCondition : BaseNode
Fields
VersionCondition versionConditionDebugCondition debugConditionStaticIfCondition staticIfConditionMethods
void accept(ASTVisitor visitor) constclassConditionalDeclaration : BaseNode
Fields
CompileCondition compileConditionDeclaration[] trueDeclarationsDeclaration[] falseDeclarationsbool hasElseDeclarationListStyle trueStyleDeclarationListStyle falseStyleMethods
void accept(ASTVisitor visitor) constclassConditionalStatement : BaseNode
Fields
CompileCondition compileConditionDeclarationOrStatement trueStatementDeclarationOrStatement falseStatementMethods
void accept(ASTVisitor visitor) constclassConstraint : BaseNode
Methods
void accept(ASTVisitor visitor) constclassConstructor : BaseNode
Fields
Parameters parametersFunctionBody functionBodyConstraint constraintMemberFunctionAttribute[] memberFunctionAttributesTemplateParameters templateParameterssize_t locationsize_t linesize_t columnstring commentMethods
void accept(ASTVisitor visitor) constclassContinueStatement : BaseNode
Fields
Token labelMethods
void accept(ASTVisitor visitor) constclassDebugCondition : BaseNode
Methods
void accept(ASTVisitor visitor) constclassDebugSpecification : BaseNode
Fields
Token identifierOrIntegerMethods
void accept(ASTVisitor visitor) constclassDeclaration : BaseNode
Methods
void accept(ASTVisitor visitor) constprivate
string generateProperty(string type, string name)bool opEquals(Object other) constFields
DeclarationOrStatement[] declarationsAndStatementsMethods
void accept(ASTVisitor visitor) constclassDeclarationOrStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassDeclarator : BaseNode
Fields
Token nameTemplateParameters templateParametersBitfieldWidth bitfieldWidthInitializer initializerTypeSuffix[] cstylestring commentMethods
void accept(ASTVisitor visitor) constclassBitfieldWidth : BaseNode
Fields
ExpressionNode expressionMethods
void accept(ASTVisitor visitor) constclassDeclaratorIdentifierList : BaseNode
Fields
Token[] identifiersMethods
void accept(ASTVisitor visitor) constclassDefaultStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassDeleteExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassDeleteStatement : BaseNode
Fields
DeleteExpression deleteExpressionMethods
void accept(ASTVisitor visitor) constclassDeprecated : BaseNode
Fields
ExpressionNode assignExpressionMethods
void accept(ASTVisitor visitor) constclassDestructor : BaseNode
Fields
MemberFunctionAttribute[] memberFunctionAttributesFunctionBody functionBodysize_t linesize_t columnsize_t indexstring commentMethods
void accept(ASTVisitor visitor) constclassDoStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constFields
EnumMember[] enumMemberssize_t startLocationByte position of the opening bracesize_t endLocationByte position of the closing braceMethods
void accept(ASTVisitor visitor) constclassEnumDeclaration : BaseNode
Methods
void accept(ASTVisitor visitor) constclassEnumMemberAttribute : BaseNode
Methods
void accept(ASTVisitor visitor) constclassEnumMember : BaseNode
Fields
EnumMemberAttribute[] enumMemberAttributesToken nameType typeExpressionNode assignExpressionstring commentMethods
void accept(ASTVisitor visitor) constFields
Token nameTemplateParameters templateParametersExpressionNode assignExpressionType typestring commentMethods
void accept(ASTVisitor visitor) constclassEqualExpression : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassExpressionStatement : BaseNode
Fields
Expression expressionMethods
void accept(ASTVisitor visitor) constclassFinalSwitchStatement : BaseNode
Fields
SwitchStatement switchStatementMethods
void accept(ASTVisitor visitor) constFields
DeclarationOrStatement declarationOrStatementMethods
void accept(ASTVisitor visitor) constclassForStatement : BaseNode
Fields
DeclarationOrStatement initializationExpression testExpression incrementDeclarationOrStatement declarationOrStatementsize_t startIndexMethods
void accept(ASTVisitor visitor) constFields
IdType typeForeachTypeList foreachTypeListForeachType foreachTypeExpression lowExpression highsize_t startIndexMethods
void accept(ASTVisitor visitor) constaliasStaticForeachDeclaration = Foreach!true
aliasForeachStatement = Foreach!false
classStaticForeachStatement : BaseNode
Fields
ForeachStatement foreachStatementMethods
void accept(ASTVisitor visitor) constclassForeachType : BaseNode
Fields
bool isAliasbool isEnumbool isRefbool isScopeIdType[] typeConstructorsType typeToken identifierMethods
void accept(ASTVisitor visitor) constclassForeachTypeList : BaseNode
Fields
ForeachType[] itemsMethods
void accept(ASTVisitor visitor) constclassFunctionAttribute : BaseNode
Methods
void accept(ASTVisitor visitor) constclassFunctionBody : BaseNode
Fields
size_t endLocationSpecifiedFunctionBody specifiedFunctionBodyMissingFunctionBody missingFunctionBodyShortenedFunctionBody shortenedFunctionBodyMethods
void accept(ASTVisitor visitor) constFields
Type typeUnaryExpression unaryExpressionTemplateArguments templateArgumentsArguments argumentsMethods
void accept(ASTVisitor visitor) constclassFunctionContract : BaseNode
Methods
void accept(ASTVisitor visitor) constclassFunctionDeclaration : BaseNode
Fields
bool hasAutobool hasRefType returnTypeToken nameTemplateParameters templateParametersParameters parametersConstraint constraintFunctionBody functionBodyMemberFunctionAttribute[] memberFunctionAttributesstring commentAttribute[] attributesStorageClass[] storageClassesMethods
void accept(ASTVisitor visitor) constFields
ExpressionNode assignExpressionFunctionAttribute[] functionAttributesSpecifiedFunctionBody specifiedFunctionBodyIdType functionOrDelegateMemberFunctionAttribute[] memberFunctionAttributesParameters parametersToken identifierType returnTypeReturnRefType returnRefTypesize_t linesize_t columnenumReturnRefType : ubyte
noRef = 0
ref_ = 1
autoRef = 2
classGccAsmInstruction : BaseNode
Fields
Expression assemblerTemplateGccAsmOperandList inputOperandsGccAsmOperandList outputOperandsStringLiteralList registersDeclaratorIdentifierList gotosMethods
void accept(ASTVisitor visitor) constclassGccAsmOperand : BaseNode
Methods
void accept(ASTVisitor visitor) constclassGccAsmOperandList : BaseNode
Fields
GccAsmOperand[] itemsMethods
void accept(ASTVisitor visitor) constclassGotoStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassIdentifierChain : BaseNode
Fields
Token[] identifiersMethods
void accept(ASTVisitor visitor) constclassTypeIdentifierPart : BaseNode
Fields
bool dotIdentifierOrTemplateInstance identifierOrTemplateInstanceTypeIdentifierPart typeIdentifierPartExpressionNode indexerMethods
void accept(ASTVisitor visitor) constFields
IdentifierOrTemplateInstance[] identifiersOrTemplateInstancesMethods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassIdentityExpression : ExpressionNode
Fields
bool negatedMethods
void accept(ASTVisitor visitor) constclassIfStatement : BaseNode
Fields
IfCondition conditionDeclarationOrStatement thenStatementDeclarationOrStatement elseStatementsize_t startIndexsize_t linesize_t columnMethods
void accept(ASTVisitor visitor) constclassIfCondition : BaseNode
In an if (or while) condition this represents:
if (auto x = readln)
^^^^^^^^^^^^^^^
if (a == b || c == d)
^^^^^^^^^^^^^^^^Fields
IdType[] typeCtorsIn an assignment-condition, these are the optional type constructorsType typeIn an assignment-condition, this is the optional explicit typeToken identifierIn an assignment-condition, in `if (auto x = ...)` this is the `x`bool scope_In an assignment-condition, this is true if `scope` is used to construct the variable.Expression expressionIn an assignment-condition, this is the part after the equals sign. Otherwise this is any other expression that is evaluated to be a boolean. (e.g. UnaryExpression, AndAndExpression, CmpExpression,...Methods
void accept(ASTVisitor visitor) constclassImportBind : BaseNode
Methods
void accept(ASTVisitor visitor) constclassImportBindings : BaseNode
Methods
void accept(ASTVisitor visitor) constclassImportDeclaration : BaseNode
Methods
void accept(ASTVisitor visitor) constclassImportExpression : ExpressionNode
Fields
ExpressionNode assignExpressionMethods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassIndexExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassInContractExpression : BaseNode
Methods
void accept(ASTVisitor visitor) constclassInExpression : ExpressionNode
Fields
bool negatedMethods
void accept(ASTVisitor visitor) constclassInOutContractExpression : BaseNode
Methods
void accept(ASTVisitor visitor) constclassInOutStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassInStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassInitialize : BaseNode
Fields
StatementNoCaseNoDefault statementNoCaseNoDefaultMethods
void accept(ASTVisitor visitor) constclassInitializer : BaseNode
Fields
NonVoidInitializer nonVoidInitializerMethods
void accept(ASTVisitor visitor) constclassInterfaceDeclaration : BaseNode
Fields
Token nameTemplateParameters templateParametersConstraint constraintBaseClassList baseClassListStructBody structBodystring commentMethods
void accept(ASTVisitor visitor) constclassInterpolatedString : BaseNode
Fields
InterpolatedStringPart[] partsMethods
void accept(ASTVisitor visitor) constchar postfixType() inout pure nothrow @nogc @safe scope'\0'/'c'/'w'/'d' for `i""`, `i""c`, `i""w` and `i""d` respectively.classInterpolatedStringPart : BaseNode
AST nodes within an interpolated string
Just plain text inside the interpolated string
Methods
void accept(ASTVisitor visitor) constA $(...) interpolation sequence
Fields
Expression expressionMethods
void accept(ASTVisitor visitor) constFields
BlockStatement blockStatementAssertArguments assertArgumentsbool useParenstring commentsize_t linesize_t indexMethods
void accept(ASTVisitor visitor) constclassIsExpression : ExpressionNode
Fields
Type typeToken identifierTypeSpecialization typeSpecializationTemplateParameterList templateParameterListIdType equalsOrColonMethods
void accept(ASTVisitor visitor) constclassKeyValuePair : BaseNode
Methods
void accept(ASTVisitor visitor) constclassKeyValuePairs : BaseNode
Fields
KeyValuePair[] keyValuePairsMethods
void accept(ASTVisitor visitor) constclassLabeledStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassLinkageAttribute : BaseNode
Fields
Token identifierbool hasPlusPlusTypeIdentifierPart typeIdentifierPartIdType classOrStructNamespaceList cppNamespacesMethods
void accept(ASTVisitor visitor) constclassMemberFunctionAttribute : BaseNode
Methods
void accept(ASTVisitor visitor) constclassMissingFunctionBody : BaseNode
Fields
FunctionContract[] functionContractsMethods
void accept(ASTVisitor visitor) constclassMixinDeclaration : BaseNode
Methods
void accept(ASTVisitor visitor) constclassMixinExpression : ExpressionNode
Fields
ArgumentList argumentListMethods
void accept(ASTVisitor visitor) constclassMixinTemplateDeclaration : BaseNode
Fields
TemplateDeclaration templateDeclarationMethods
void accept(ASTVisitor visitor) constclassMixinTemplateName : BaseNode
Fields
Symbol symbolIdentifierOrTemplateChain identifierOrTemplateChainTypeofExpression typeofExpressionMethods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassModuleDeclaration : BaseNode
Fields
AtAttribute[] atAttributesDeprecated deprecated_IdentifierChain moduleNamesize_t startLocationsize_t endLocationstring commentMethods
void accept(ASTVisitor visitor) constclassMulExpression : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassNamespaceList : BaseNode
Fields
TernaryExpression[] itemsMethods
void accept(ASTVisitor visitor) constFields
Arguments allocatorArgumentsArguments constructorArgumentsBaseClassList baseClassListStructBody structBodyMethods
void accept(ASTVisitor visitor) constclassNewExpression : ExpressionNode
Fields
Type typeNewAnonClassExpression newAnonClassExpressionArguments argumentsExpressionNode assignExpressionMethods
void accept(ASTVisitor visitor) constclassStatementNoCaseNoDefault : BaseNode
Fields
LabeledStatement labeledStatementBlockStatement blockStatementIfStatement ifStatementWhileStatement whileStatementDoStatement doStatementForStatement forStatementForeachStatement foreachStatementStaticForeachStatement staticForeachStatementSwitchStatement switchStatementFinalSwitchStatement finalSwitchStatementContinueStatement continueStatementBreakStatement breakStatementReturnStatement returnStatementGotoStatement gotoStatementWithStatement withStatementSynchronizedStatement synchronizedStatementTryStatement tryStatementScopeGuardStatement scopeGuardStatementAsmStatement asmStatementPragmaStatement pragmaStatementConditionalStatement conditionalStatementStaticAssertStatement staticAssertStatementVersionSpecification versionSpecificationDebugSpecification debugSpecificationExpressionStatement expressionStatementsize_t startLocationsize_t endLocationMethods
void accept(ASTVisitor visitor) constclassNonVoidInitializer : BaseNode
Fields
ExpressionNode assignExpressionArrayInitializer arrayInitializerStructInitializer structInitializerMethods
void accept(ASTVisitor visitor) constFields
ExpressionNode[] operandsMethods
void accept(ASTVisitor visitor) constclassOrExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassOrOrExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassOutContractExpression : BaseNode
Methods
void accept(ASTVisitor visitor) constclassOutStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassParameterAttribute : BaseNode
Methods
void accept(ASTVisitor visitor) constFields
ParameterAttribute[] parameterAttributesType typeToken namebool varargExpressionNode default_TypeSuffix[] cstyleMethods
void accept(ASTVisitor visitor) constclassParameters : BaseNode
Methods
void accept(ASTVisitor visitor) constFields
FunctionBody functionBodyMemberFunctionAttribute[] memberFunctionAttributessize_t locationsize_t linesize_t columnMethods
void accept(ASTVisitor visitor) constclassPowExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassPragmaDeclaration : BaseNode
Fields
PragmaExpression pragmaExpressionMethods
void accept(ASTVisitor visitor) constclassPragmaExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassPragmaStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassPrimaryExpression : ExpressionNode
Fields
Token dotToken primaryIdentifierOrTemplateInstance identifierOrTemplateInstanceToken basicTypeTypeofExpression typeofExpressionTypeidExpression typeidExpressionArrayLiteral arrayLiteralAssocArrayLiteral assocArrayLiteralExpression expressionIsExpression isExpressionFunctionLiteralExpression functionLiteralExpressionTraitsExpression traitsExpressionMixinExpression mixinExpressionImportExpression importExpressionVector vectorType typeToken typeConstructorArguments argumentsInterpolatedString interpolatedStringMethods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassRelExpression : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassReturnStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassScopeGuardStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassSharedStaticConstructor : BaseNode
Fields
MemberFunctionAttribute[] memberFunctionAttributesFunctionBody functionBodysize_t locationsize_t linesize_t columnstring commentMethods
void accept(ASTVisitor visitor) constclassSharedStaticDestructor : BaseNode
Fields
MemberFunctionAttribute[] memberFunctionAttributesFunctionBody functionBodysize_t locationsize_t linesize_t columnstring commentMethods
void accept(ASTVisitor visitor) constclassShiftExpression : ExpressionNode
Fields
IdType operatorMethods
void accept(ASTVisitor visitor) constclassSingleImport : BaseNode
Methods
void accept(ASTVisitor visitor) constclassSpecifiedFunctionBody : BaseNode
Methods
void accept(ASTVisitor visitor) constclassShortenedFunctionBody : BaseNode
Methods
void accept(ASTVisitor visitor) constFields
StatementNoCaseNoDefault statementNoCaseNoDefaultCaseStatement caseStatementCaseRangeStatement caseRangeStatementDefaultStatement defaultStatementMethods
void accept(ASTVisitor visitor) constclassStaticAssertDeclaration : BaseNode
Fields
StaticAssertStatement staticAssertStatementMethods
void accept(ASTVisitor visitor) constclassStaticAssertStatement : BaseNode
Fields
AssertExpression assertExpressionMethods
void accept(ASTVisitor visitor) constclassStaticConstructor : BaseNode
Fields
MemberFunctionAttribute[] memberFunctionAttributesFunctionBody functionBodysize_t locationsize_t linesize_t columnstring commentMethods
void accept(ASTVisitor visitor) constclassStaticDestructor : BaseNode
Fields
MemberFunctionAttribute[] memberFunctionAttributesFunctionBody functionBodysize_t locationsize_t linesize_t columnstring commentMethods
void accept(ASTVisitor visitor) constclassStaticIfCondition : BaseNode
Fields
ExpressionNode assignExpressionMethods
void accept(ASTVisitor visitor) constclassStorageClass : BaseNode
Fields
AlignAttribute alignAttributeLinkageAttribute linkageAttributeAtAttribute atAttributeDeprecated deprecated_Token tokenMethods
void accept(ASTVisitor visitor) constclassStringLiteralList : BaseNode
Fields
Token[] itemsMethods
void accept(ASTVisitor visitor) constclassStructBody : BaseNode
Fields
size_t startLocationByte position of the opening bracesize_t endLocationByte position of the closing braceDeclaration[] declarationsMethods
void accept(ASTVisitor visitor) constclassStructDeclaration : BaseNode
Fields
Token nameTemplateParameters templateParametersConstraint constraintStructBody structBodystring commentMethods
void accept(ASTVisitor visitor) constclassStructInitializer : BaseNode
Methods
void accept(ASTVisitor visitor) constclassStructMemberInitializer : BaseNode
Methods
void accept(ASTVisitor visitor) constclassStructMemberInitializers : BaseNode
Fields
StructMemberInitializer[] structMemberInitializersMethods
void accept(ASTVisitor visitor) constclassSwitchStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassSynchronizedStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassTemplateAliasParameter : BaseNode
Fields
Type typeToken identifierType colonTypeExpressionNode colonExpressionType assignTypeExpressionNode assignExpressionMethods
void accept(ASTVisitor visitor) constclassNamedTemplateArgument : BaseNode
Methods
void accept(ASTVisitor visitor) constFields
NamedTemplateArgument[] itemsMethods
void accept(ASTVisitor visitor) constclassTemplateArgument : BaseNode
Methods
void accept(ASTVisitor visitor) constclassTemplateArgumentList : BaseNode
Fields
TemplateArgument[] itemsMethods
void accept(ASTVisitor visitor) constclassTemplateArguments : BaseNode
Fields
NamedTemplateArgumentList namedTemplateArgumentListTemplateSingleArgument templateSingleArgumentMethods
void accept(ASTVisitor visitor) constclassTemplateDeclaration : BaseNode
Fields
Token nameTemplateParameters templateParametersConstraint constraintDeclaration[] declarationsstring commentsize_t startLocationByte position of the opening bracesize_t endLocationByte position of the closing braceMethods
void accept(ASTVisitor visitor) constclassTemplateInstance : BaseNode
Methods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassTemplateParameter : BaseNode
Fields
TemplateTypeParameter templateTypeParameterTemplateValueParameter templateValueParameterTemplateAliasParameter templateAliasParameterTemplateTupleParameter templateTupleParameterTemplateThisParameter templateThisParameterMethods
void accept(ASTVisitor visitor) constclassTemplateParameterList : BaseNode
Fields
TemplateParameter[] itemsMethods
void accept(ASTVisitor visitor) constclassTemplateParameters : BaseNode
Fields
TemplateParameterList templateParameterListMethods
void accept(ASTVisitor visitor) constclassTemplateSingleArgument : BaseNode
Methods
void accept(ASTVisitor visitor) constclassTemplateThisParameter : BaseNode
Fields
TemplateTypeParameter templateTypeParameterMethods
void accept(ASTVisitor visitor) constclassTemplateTupleParameter : BaseNode
Fields
Token identifierMethods
void accept(ASTVisitor visitor) constclassTemplateTypeParameter : BaseNode
Methods
void accept(ASTVisitor visitor) constclassTemplateValueParameter : BaseNode
Fields
Type typeToken identifierExpressionNode assignExpressionTemplateValueParameterDefault templateValueParameterDefaultMethods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassTernaryExpression : ExpressionNode
Fields
ExpressionNode orOrExpressionExpressionNode expressionExpressionNode ternaryExpressionToken colonStore this so that we know where the ':' isMethods
void accept(ASTVisitor visitor) constaliasThrowStatement = ThrowExpression
deprecated Replaced by ExpressionStatement + ThrowExpression
classThrowExpression : ExpressionNode
Fields
ExpressionNode expressionMethods
void accept(ASTVisitor visitor) constclassTraitsExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassTryStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constFields
IdType builtinTypeTypeofExpression typeofExpressionTypeIdentifierPart typeIdentifierPartIdType typeConstructorType typeTraitsExpression traitsExpressionVector vectorMixinExpression mixinExpressionMethods
void accept(ASTVisitor visitor) constclassTypeSpecialization : BaseNode
Methods
void accept(ASTVisitor visitor) constclassTypeSuffix : BaseNode
Fields
Token delegateOrFunctionToken starbool arrayType typeExpressionNode lowExpressionNode highParameters parametersMemberFunctionAttribute[] memberFunctionAttributesMethods
void accept(ASTVisitor visitor) constclassTypeidExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassTypeofExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constclassUnaryExpression : ExpressionNode
Fields
Type typePrimaryExpression primaryExpressionToken prefixToken suffixUnaryExpression unaryExpressionNewExpression newExpressionDeleteExpression deleteExpressionCastExpression castExpressionFunctionCallExpression functionCallExpressionIdentifierOrTemplateInstance identifierOrTemplateInstanceAssertExpression assertExpressionThrowExpression throwExpressionIndexExpression indexExpressionsize_t dotLocationMethods
void accept(ASTVisitor visitor) constclassUnionDeclaration : BaseNode
Fields
Token nameTemplateParameters templateParametersConstraint constraintStructBody structBodystring commentMethods
void accept(ASTVisitor visitor) constMethods
void accept(ASTVisitor visitor) constclassVariableDeclaration : BaseNode
Fields
Type typeDeclarator[] declaratorsStorageClass[] storageClassesAutoDeclaration autoDeclarationstring commentMethods
void accept(ASTVisitor visitor) constFields
Type typeMethods
void accept(ASTVisitor visitor) constclassVersionCondition : BaseNode
Methods
void accept(ASTVisitor visitor) constclassVersionSpecification : BaseNode
Fields
Token tokenMethods
void accept(ASTVisitor visitor) constclassWhileStatement : BaseNode
classWithStatement : BaseNode
Methods
void accept(ASTVisitor visitor) constclassXorExpression : ExpressionNode
Methods
void accept(ASTVisitor visitor) constVariables 1
Templates 1
tmplvisitIfNotNull(fields ...)