Finished grammar DDoc
This commit is contained in:
parent
90b6d37c5d
commit
6aa3fcfd02
21
std/d/ast.d
21
std/d/ast.d
|
@ -162,6 +162,7 @@ class ASTVisitor
|
|||
/** */void visit(Parameter parameter) {}
|
||||
/** */void visit(ParameterAttribute parameterAttribute) {}
|
||||
/** */void visit(Parameters parameters) {}
|
||||
/** */void visit(Postblit postblit) {}
|
||||
/** */void visit(PostIncDecExpression postIncDecExpression) {}
|
||||
/** */void visit(PowExpression powExpression) {}
|
||||
/** */void visit(PragmaDeclaration pragmaDeclaration) {}
|
||||
|
@ -186,6 +187,7 @@ class ASTVisitor
|
|||
/** */void visit(StaticIfCondition staticIfCondition) {}
|
||||
/** */void visit(StorageClass storageClass) {}
|
||||
/** */void visit(StructBody structBody) {}
|
||||
/** */void visit(StructBodyItem structBodyItem) {}
|
||||
/** */void visit(StructDeclaration structDeclaration) {}
|
||||
/** */void visit(StructInitializer structInitializer) {}
|
||||
/** */void visit(StructMemberInitializer structMemberInitializer) {}
|
||||
|
@ -1560,6 +1562,14 @@ public:
|
|||
/** */ bool hasVarargs;
|
||||
}
|
||||
|
||||
///
|
||||
class Postblit : ASTNode
|
||||
{
|
||||
public:
|
||||
mixin(DEFAULT_ACCEPT);
|
||||
/** */ FunctionBody functionBody;
|
||||
}
|
||||
|
||||
///
|
||||
class PostIncDecExpression : ASTNode
|
||||
{
|
||||
|
@ -1776,7 +1786,16 @@ class StructBody : ASTNode
|
|||
{
|
||||
public:
|
||||
mixin(DEFAULT_ACCEPT);
|
||||
/** */ Declaration[] declarations;
|
||||
/** */ StructBodyItem[] structBodyItems;
|
||||
}
|
||||
|
||||
class StructBodyItem : ASTNode
|
||||
{
|
||||
public:
|
||||
mixin(DEFAULT_ACCEPT);
|
||||
/** */ Declaration declaration;
|
||||
/** */ Invariant invariant_;
|
||||
/** */ Postblit postblit;
|
||||
}
|
||||
|
||||
///
|
||||
|
|
408
std/d/parser.d
408
std/d/parser.d
|
@ -272,7 +272,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmAddExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmAddExp):
|
||||
* $(RULE asmMulExp) (($(LITERAL '+') | $(LITERAL '-')) $(RULE asmMulExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmAddExp parseAsmAddExp()
|
||||
{
|
||||
|
@ -284,7 +286,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmAndExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmAndExp):
|
||||
* $(RULE asmEqualExp) ($(LITERAL '&') $(RULE asmEqualExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmAndExp parseAsmAndExp()
|
||||
{
|
||||
|
@ -296,7 +300,10 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmBrExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmBrExp):
|
||||
* $(RULE asmUnaExp)
|
||||
* | $(RULE asmBrExp) $(LITERAL '[') $(RULE asmExp) $(LITERAL ']')
|
||||
* ;)
|
||||
*/
|
||||
AsmBrExp parseAsmBrExp()
|
||||
{
|
||||
|
@ -308,7 +315,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmEqualExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmEqualExp):
|
||||
* $(RULE asmRelExp) (('==' | '!=') $(RULE asmRelExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmEqualExp parseAsmEqualExp()
|
||||
{
|
||||
|
@ -320,7 +329,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmExp):
|
||||
* $(RULE asmLogOrExp) ($(LITERAL '?') $(RULE asmExp) $(LITERAL ':') $(RULE asmExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmExp parseAsmExp()
|
||||
{
|
||||
|
@ -332,7 +343,14 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmInstruction
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmInstruction):
|
||||
* $(LITERAL Identifier)
|
||||
* | $(LITERAL 'align') I$(RULE ntegerLiteral)
|
||||
* | $(LITERAL 'align') $(LITERAL Identifier)
|
||||
* | $(LITERAL Identifier) $(LITERAL ':') $(RULE asmInstruction)
|
||||
* | $(LITERAL Identifier) $(RULE asmExp)
|
||||
* | $(RULE opcode) $(RULE operands)
|
||||
* ;)
|
||||
*/
|
||||
AsmInstruction parseAsmInstruction()
|
||||
{
|
||||
|
@ -344,7 +362,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmLogAndExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmLogAndExp):
|
||||
* $(RULE asmOrExp) ('&&' $(RULE asmOrExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmLogAndExp parseAsmLogAndExp()
|
||||
{
|
||||
|
@ -356,7 +376,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmLogOrExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmLogOrExp):
|
||||
* $(RULE asmLogAndExp) ('||' $(RULE asmLogAndExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmLogOrExp parseAsmLogOrExp()
|
||||
{
|
||||
|
@ -368,7 +390,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmMulExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmMulExp):
|
||||
* $(RULE asmBrExp) (($(LITERAL '*') | $(LITERAL '/') | $(LITERAL '%')) $(RULE asmBrExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmMulExp parseAsmMulExp()
|
||||
{
|
||||
|
@ -380,7 +404,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmOrExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmOrExp):
|
||||
* $(RULE asmXorExp) ($(LITERAL '|') $(RULE asmXorExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmOrExp parseAsmOrExp()
|
||||
{
|
||||
|
@ -392,7 +418,13 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmPrimaryExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmPrimaryExp):
|
||||
* $(RULE IntegerLiteral)
|
||||
* | $(RULE FloatLiteral)
|
||||
* | $(RULE register)
|
||||
* | $(RULE identifierChain)
|
||||
* | $(LITERAL '$')
|
||||
* ;)
|
||||
*/
|
||||
AsmPrimaryExp parseAsmPrimaryExp()
|
||||
{
|
||||
|
@ -404,7 +436,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmRelExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmRelExp):
|
||||
* $(RULE asmShiftExp) (($(LITERAL '<') | $(LITERAL '<=') | $(LITERAL '>') | $(LITERAL '>=')) $(RULE asmShiftExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmRelExp parseAsmRelExp()
|
||||
{
|
||||
|
@ -416,7 +450,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmShiftExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmShiftExp):
|
||||
* $(RULE asmAddExp) (($(LITERAL '<<') | $(LITERAL '>>') | $(LITERAL '>>>')) $(RULE asmAddExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmShiftExp parseAsmShiftExp()
|
||||
{
|
||||
|
@ -428,7 +464,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmStatement
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmStatement):
|
||||
* $(RULE 'asm') $(LITERAL '{') $(RULE asmInstruction)+ $(LITERAL '}')
|
||||
* ;)
|
||||
*/
|
||||
AsmStatement parseAsmStatement()
|
||||
{
|
||||
|
@ -440,7 +478,15 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmTypePrefix
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmTypePrefix):
|
||||
* $(LITERAL Identifier) $(LITERAL Identifier)
|
||||
* | $(LITERAL 'byte') $(LITERAL Identifier)
|
||||
* | $(LITERAL 'short') $(LITERAL Identifier)
|
||||
* | $(LITERAL 'int') $(LITERAL Identifier)
|
||||
* | $(LITERAL 'float') $(LITERAL Identifier)
|
||||
* | $(LITERAL 'double') $(LITERAL Identifier)
|
||||
* | $(LITERAL 'real') $(LITERAL Identifier)
|
||||
* ;)
|
||||
*/
|
||||
AsmTypePrefix parseAsmTypePrefix()
|
||||
{
|
||||
|
@ -452,7 +498,15 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmUnaExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmUnaExp):
|
||||
* $(RULE asmTypePrefix) $(RULE asmExp)
|
||||
* | $(LITERAL Identifier) $(RULE asmExp)
|
||||
* | $(LITERAL '+') $(RULE asmUnaExp)
|
||||
* | $(LITERAL '-') $(RULE asmUnaExp)
|
||||
* | $(LITERAL '!') $(RULE asmUnaExp)
|
||||
* | $(LITERAL '~') $(RULE asmUnaExp)
|
||||
* | $(RULE asmPrimaryExp)
|
||||
* ;)
|
||||
*/
|
||||
AsmUnaExp parseAsmUnaExp()
|
||||
{
|
||||
|
@ -464,7 +518,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an AsmXorExp
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF asmXorExp):
|
||||
* $(RULE asmAndExp) ($(LITERAL '^') $(RULE asmAndExp))?
|
||||
* ;)
|
||||
*/
|
||||
AsmXorExp parseAsmXorExp()
|
||||
{
|
||||
|
@ -779,9 +835,9 @@ struct Parser
|
|||
* Parses a BaseClass
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF baseClass):
|
||||
* $(RULE typeofExpression) ($(LITERAL '.') $(RULE identifierOrTemplateChain))?
|
||||
* $(RULE typeofExpression) ($(LITERAL '.') $(RULE identifierOrTemplateChain))?
|
||||
* | $(RULE identifierOrTemplateChain)
|
||||
* ;)
|
||||
* ;)
|
||||
*/
|
||||
BaseClass parseBaseClass()
|
||||
{
|
||||
|
@ -800,7 +856,7 @@ struct Parser
|
|||
*
|
||||
* $(GRAMMAR $(RULEDEF baseClassList):
|
||||
* $(RULE baseClass) ($(LITERAL ',') $(RULE baseClass))*
|
||||
* ;)
|
||||
* ;)
|
||||
*/
|
||||
BaseClassList parseBaseClassList()
|
||||
{
|
||||
|
@ -1639,7 +1695,7 @@ struct Parser
|
|||
/**
|
||||
* Parses a Finally
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF finally_):
|
||||
* $(GRAMMAR $(RULEDEF finally):
|
||||
* $(LITERAL 'finally') $(RULE nonEmptyStatementNoCaseNoDefault)
|
||||
* ;)
|
||||
*/
|
||||
|
@ -1768,8 +1824,8 @@ struct Parser
|
|||
/**
|
||||
* Parses a FunctionCallStatement
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF functionCallStatement):
|
||||
* $(RULE functionCallExpression) $(LITERAL ';')
|
||||
* $(GRAMMAR $(RULEDEF functionCallStatement):
|
||||
* $(RULE functionCallExpression) $(LITERAL ';')
|
||||
* ;)
|
||||
*/
|
||||
FunctionCallStatement parseFunctionCallStatement()
|
||||
|
@ -1818,7 +1874,7 @@ struct Parser
|
|||
GotoStatement parseGotoStatement()
|
||||
{
|
||||
auto node = new GotoStatement;
|
||||
// TODO
|
||||
// TODO
|
||||
return node;
|
||||
}
|
||||
|
||||
|
@ -2014,7 +2070,7 @@ struct Parser
|
|||
*
|
||||
* $(GRAMMAR $(RULEDEF indexExpression):
|
||||
* $(RULE unaryExpression) $(LITERAL '[') $(RULE argumentList) $(LITERAL ']')
|
||||
* ;)
|
||||
* ;)
|
||||
*/
|
||||
IndexExpression parseImportList()
|
||||
{
|
||||
|
@ -2446,8 +2502,8 @@ struct Parser
|
|||
* Parses Operands
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF operands):
|
||||
* $(RULE asmExp)+
|
||||
* ;)
|
||||
* $(RULE asmExp)+
|
||||
* ;)
|
||||
*/
|
||||
Operands parseOperands()
|
||||
{
|
||||
|
@ -2461,7 +2517,7 @@ struct Parser
|
|||
*
|
||||
* $(GRAMMAR $(RULEDEF orExpression):
|
||||
* $(RULE xorExpression)
|
||||
* | $(RULE orExpression) $(LITERAL '|') $(RULE xorExpression)
|
||||
* | $(RULE orExpression) $(LITERAL '|') $(RULE xorExpression)
|
||||
* ;)
|
||||
*/
|
||||
OrExpression parseOrExpression()
|
||||
|
@ -2518,14 +2574,14 @@ struct Parser
|
|||
* Parses a ParameterAttribute
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF parameterAttribute):
|
||||
* $(LITERAL 'auto')
|
||||
* $(RULE typeConstructor)
|
||||
* | $(LITERAL 'final')
|
||||
* | $(LITERAL 'in')
|
||||
* | $(LITERAL 'lazy')
|
||||
* | $(LITERAL 'out')
|
||||
* | $(LITERAL 'ref')
|
||||
* | $(LITERAL 'scope')
|
||||
* | $(RULE typeConstructor)
|
||||
* | $(LITERAL 'auto')
|
||||
* ;)
|
||||
*/
|
||||
ParameterAttribute parseParameterAttribute()
|
||||
|
@ -2539,7 +2595,7 @@ struct Parser
|
|||
* Parses Parameters
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF parameters):
|
||||
* $(LITERAL '(') (($(RULE parameter) ($(LITERAL ',') $(RULE parameter))*)? ($(LITERAL ',') '...')? | '...') $(LITERAL ')')
|
||||
* $(LITERAL '$(LPAREN)') (($(RULE parameter) ($(LITERAL ',') $(RULE parameter))*)? ($(LITERAL ',') $(LITERAL '...'))? | $(LITERAL '...')) $(LITERAL '$(RPAREN)')
|
||||
* ;)
|
||||
*/
|
||||
Parameters parseParameters()
|
||||
|
@ -2549,6 +2605,20 @@ struct Parser
|
|||
return node;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a Postblit
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF parameters):
|
||||
* $(LITERAL 'this') $(LITERAL '$(LPAREN)') $(LITERAL 'this') $(LITERAL '$(RPAREN)') $(RULE functionBody)
|
||||
* ;)
|
||||
*/
|
||||
Postblit parsePostblit()
|
||||
{
|
||||
auto node = new Postblit;
|
||||
// TODO
|
||||
return node;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a PostIncDecExpression
|
||||
*
|
||||
|
@ -2624,17 +2694,16 @@ struct Parser
|
|||
* Parses a PrimaryExpression
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF primaryExpression):
|
||||
* $(RULE identifierOrTemplateInstance)
|
||||
* | $(LITERAL '.') $(RULE identifierOrTemplateInstance)
|
||||
* $(RULE symbol)
|
||||
* | $(RULE type) $(LITERAL '.') $(LITERAL Identifier)
|
||||
* | $(RULE typeofExpression)
|
||||
* | $(RULE typeidExpression)
|
||||
* | $(LITERAL '$')
|
||||
* | $(LITERAL 'this')
|
||||
* | $(LITERAL 'super')
|
||||
* | $(LITERAL 'null')
|
||||
* | $(LITERAL 'true')
|
||||
* | $(LITERAL 'false')
|
||||
* | $(LITERAL '_null')
|
||||
* | $(LITERAL '_true')
|
||||
* | $(LITERAL '_false')
|
||||
* | $(LITERAL '___DATE__')
|
||||
* | $(LITERAL '___TIME__')
|
||||
* | $(LITERAL '___TIMESTAMP__')
|
||||
|
@ -2689,7 +2758,7 @@ struct Parser
|
|||
* $(RULE shiftExpression)
|
||||
* | $(RULE relExpression) $(RULE relOperator) $(RULE shiftExpression)
|
||||
* ;
|
||||
*$(RULEDEF relOperator):
|
||||
*$(RULEDEF relOperator):
|
||||
* $(LITERAL '<')
|
||||
* | $(LITERAL '<=')
|
||||
* | $(LITERAL '>')
|
||||
|
@ -2702,7 +2771,7 @@ struct Parser
|
|||
* | $(LITERAL '!>=')
|
||||
* | $(LITERAL '!<')
|
||||
* | $(LITERAL '!<=')
|
||||
* ;)
|
||||
* ;)
|
||||
*/
|
||||
RelExpression parseRelExpression()
|
||||
{
|
||||
|
@ -2773,7 +2842,7 @@ struct Parser
|
|||
/**
|
||||
* Parses a ShiftExpression
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF shiftExpression):
|
||||
* $(GRAMMAR $(RULEDEF shiftExpression):
|
||||
* $(RULE addExpression)
|
||||
* | $(RULE shiftExpression) ($(LITERAL '<<') | $(LITERAL '>>') | $(LITERAL '>>>')) $(RULE addExpression)
|
||||
* ;)
|
||||
|
@ -2852,7 +2921,7 @@ struct Parser
|
|||
/**
|
||||
* Parses a StaticAssertStatement
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF staticAssertStatement):
|
||||
* $(GRAMMAR $(RULEDEF staticAssertStatement):
|
||||
* $(LITERAL 'static') $(RULE assertStatement)
|
||||
* ;)
|
||||
*/
|
||||
|
@ -2885,7 +2954,7 @@ struct Parser
|
|||
/**
|
||||
* Parses a StaticDestructor
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF staticConstructor):
|
||||
* $(GRAMMAR $(RULEDEF staticConstructor):
|
||||
* $(LITERAL 'static') $(LITERAL '~') $(LITERAL 'this') $(LITERAL '$(LPAREN)') $(LITERAL '$(RPAREN)') $(RULE functionBody)
|
||||
* ;)
|
||||
*/
|
||||
|
@ -2951,7 +3020,7 @@ struct Parser
|
|||
* Parses a StructBody
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF structBody):
|
||||
* $(LITERAL '{') $(RULE declaration)* $(LITERAL '}')
|
||||
* $(LITERAL '{') $(RULE structBodyItem)* $(LITERAL '}')
|
||||
* ;)
|
||||
*/
|
||||
StructBody parseStructBody()
|
||||
|
@ -2959,11 +3028,27 @@ struct Parser
|
|||
auto node = new StructBody;
|
||||
expect(TokenType.lBrace);
|
||||
while (tokens[index] != TokenType.rBrace && moreTokens())
|
||||
node.declarations ~= parseDeclaration();
|
||||
node.structBodyItems ~= parseStructBodyItem();
|
||||
expect(TokenType.rBrace);
|
||||
return node;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a StructBodyItem
|
||||
*
|
||||
* $(GRAMMAR $(RULEDEF structBodyItem):
|
||||
* $(RULE declaration)
|
||||
* | $(RULE postBlit)
|
||||
* | $(RULE invariant)
|
||||
* ;)
|
||||
*/
|
||||
StructBodyItem parseStructBodyItem()
|
||||
{
|
||||
auto node = new StructBodyItem;
|
||||
|
||||
return node;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses a StructDeclaration
|
||||
*
|
||||
|
@ -3082,9 +3167,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an Symbol
|
||||
* Parses a Symbol
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF symbol):
|
||||
* $(LITERAL '.')? $(RULE identifierOrTemplateChain)
|
||||
* ;)
|
||||
*/
|
||||
Symbol parseSymbol()
|
||||
{
|
||||
|
@ -3101,7 +3188,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an SynchronizedStatement
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF synchronizedStatement):
|
||||
* $(LITERAL 'synchronized') ($(LITERAL '$(LPAREN)') $(RULE expression) $(LITERAL '$(RPAREN)'))? $(RULE nonEmptyStatementNoCaseNoDefault)
|
||||
* ;)
|
||||
*/
|
||||
SynchronizedStatement parseSynchronizedStatement()
|
||||
{
|
||||
|
@ -3120,7 +3209,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an TemplateAliasParameter
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateAliasParameter):
|
||||
* $(LITERAL 'alias') $(RULE type)? $(LITERAL Identifier) ($(LITERAL ':') ($(RULE type) | $(RULE expression)))? ($(LITERAL '=') ($(RULE type) | $(RULE expression)))?
|
||||
* ;)
|
||||
*/
|
||||
TemplateAliasParameter parseTemplateAliasParameter()
|
||||
{
|
||||
|
@ -3130,9 +3221,13 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateArgument
|
||||
* Parses a TemplateArgument
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateArgument):
|
||||
* $(RULE type)
|
||||
* | $(RULE assignExpression)
|
||||
* | $(RULE symbol)
|
||||
* ;)
|
||||
*/
|
||||
TemplateArgument parseTemplateArgument()
|
||||
{
|
||||
|
@ -3142,9 +3237,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateArgumentList
|
||||
* Parses a TemplateArgumentList
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateArgumentList):
|
||||
* $(RULE templateArgument) ($(LITERAL ',') $(RULE templateArgument)?)*
|
||||
* ;)
|
||||
*/
|
||||
TemplateArgumentList parseTemplateArgumentList()
|
||||
{
|
||||
|
@ -3154,9 +3251,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateArguments
|
||||
* Parses TemplateArguments
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateArguments):
|
||||
* $(LITERAL '!') ($(LITERAL '$(LPAREN)') $(RULE templateArgumentList)? $(LITERAL '$(RPAREN)') | $(RULE templateSingleArgument))
|
||||
* ;)
|
||||
*/
|
||||
TemplateArguments parseTemplateArguments()
|
||||
{
|
||||
|
@ -3168,7 +3267,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an TemplateDeclaration
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateDeclaration):
|
||||
* $(LITERAL 'template') $(LITERAL Identifier) $(RULE templateParameters) $(RULE constraint)? $(LITERAL '{') $(RULE declaration)+ $(LITERAL '}')
|
||||
* ;)
|
||||
*/
|
||||
TemplateDeclaration parseTemplateDeclaration()
|
||||
{
|
||||
|
@ -3178,9 +3279,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateInstance
|
||||
* Parses a TemplateInstance
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateInstance):
|
||||
* $(LITERAL Identifier) $(RULE templateArguments)
|
||||
* ;)
|
||||
*/
|
||||
TemplateInstance parseTemplateInstance()
|
||||
{
|
||||
|
@ -3190,9 +3293,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateMixinStatement
|
||||
* Parses a TemplateMixinStatement
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateMixinStatement):
|
||||
* $(LITERAL 'mixin') $(RULE mixinTemplateName) $(RULE templateArguments)? $(LITERAL Identifier)? $(LITERAL ';')
|
||||
* ;)
|
||||
*/
|
||||
TemplateMixinStatement parseTemplateMixinStatement()
|
||||
{
|
||||
|
@ -3202,9 +3307,15 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateParameter
|
||||
* Parses a TemplateParameter
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateParameter):
|
||||
* $(RULE templateTypeParameter)
|
||||
* | $(RULE templateValueParameter)
|
||||
* | $(RULE templateAliasParameter)
|
||||
* | $(RULE templateTupleParameter)
|
||||
* | $(RULE templateThisParameter)
|
||||
* ;)
|
||||
*/
|
||||
TemplateParameter parseTemplateParameter()
|
||||
{
|
||||
|
@ -3216,7 +3327,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an TemplateParameterList
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateParameterList):
|
||||
* $(RULE templateParameter) ($(LITERAL ',') $(RULE templateParameter)?)*
|
||||
* ;)
|
||||
*/
|
||||
TemplateParameterList parseTemplateParameterList()
|
||||
{
|
||||
|
@ -3226,9 +3339,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateParameters
|
||||
* Parses TemplateParameters
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateParameters):
|
||||
* $(LITERAL '$(LPAREN)') $(RULE templateParameterList)? $(LITERAL '$(RPAREN)')
|
||||
* ;)
|
||||
*/
|
||||
TemplateParameters parseTemplateParameters()
|
||||
{
|
||||
|
@ -3240,7 +3355,28 @@ struct Parser
|
|||
/**
|
||||
* Parses an TemplateSingleArgument
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateSingleArgument):
|
||||
* $(RULE basicType)
|
||||
* | $(LITERAL Identifier)
|
||||
* | $(LITERAL CharacterLiteral)
|
||||
* | $(LITERAL StringLiteral)
|
||||
* | $(LITERAL IntegerLiteral)
|
||||
* | $(LITERAL FloatLiteral)
|
||||
* | $(LITERAL '_true')
|
||||
* | $(LITERAL '_false')
|
||||
* | $(LITERAL '_null')
|
||||
* | $(LITERAL 'this')
|
||||
* | $(LITERAL '__DATE__')
|
||||
* | $(LITERAL '__TIME__')
|
||||
* | $(LITERAL '__TIMESTAMP__')
|
||||
* | $(LITERAL '__VENDOR__')
|
||||
* | $(LITERAL '__VERSION__')
|
||||
* | $(LITERAL '__FILE__')
|
||||
* | $(LITERAL '__LINE__')
|
||||
* | $(LITERAL '__MODULE__')
|
||||
* | $(LITERAL '__FUNCTION__')
|
||||
* | $(LITERAL '__PRETTY_FUNCTION__')
|
||||
* ;)
|
||||
*/
|
||||
TemplateSingleArgument parseTemplateSingleArgument()
|
||||
{
|
||||
|
@ -3252,7 +3388,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an TemplateThisParameter
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateThisParameter):
|
||||
* $(LITERAL 'this') $(RULE templateTypeParameter)
|
||||
* ;)
|
||||
*/
|
||||
TemplateThisParameter parseTemplateThisParameter()
|
||||
{
|
||||
|
@ -3264,7 +3402,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an TemplateTupleParameter
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateTupleParameter):
|
||||
* $(LITERAL Identifier) '...'
|
||||
* ;)
|
||||
*/
|
||||
TemplateTupleParameter parseTemplateTupleParameter()
|
||||
{
|
||||
|
@ -3274,9 +3414,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateTypeParameter
|
||||
* Parses a TemplateTypeParameter
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateTypeParameter):
|
||||
* $(LITERAL Identifier) ($(LITERAL ':') $(RULE type))? ($(LITERAL '=') $(RULE type))?
|
||||
* ;)
|
||||
*/
|
||||
TemplateTypeParameter parseTemplateTypeParameter()
|
||||
{
|
||||
|
@ -3286,9 +3428,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateValueParameter
|
||||
* Parses a TemplateValueParameter
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateValueParameter):
|
||||
* $(RULE type) $(LITERAL Identifier) ($(LITERAL ':') $(RULE expression))? $(RULE templateValueParameterDefault)?
|
||||
* ;)
|
||||
*/
|
||||
TemplateValueParameter parseTemplateValueParameter()
|
||||
{
|
||||
|
@ -3298,9 +3442,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TemplateValueParameterDefault
|
||||
* Parses a TemplateValueParameterDefault
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF templateValueParameterDefault):
|
||||
* $(LITERAL '=') ('__FILE__' | '__MODULE__' | '__LINE__' | '__FUNCTION__' | '__PRETTY_FUNCTION__' | $(RULE assignExpression))
|
||||
* ;)
|
||||
*/
|
||||
TemplateValueParameterDefault parseTemplateValueParameterDefault()
|
||||
{
|
||||
|
@ -3310,9 +3456,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TernaryExpression
|
||||
* Parses a TernaryExpression
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF ternaryExpression):
|
||||
* $(RULE orOrExpression) ($(LITERAL '?') $(RULE expression) $(LITERAL ':') $(RULE ternaryExpression))?
|
||||
* ;)
|
||||
*/
|
||||
TernaryExpression parseTernaryExpression()
|
||||
{
|
||||
|
@ -3329,9 +3477,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an ThrowStatement
|
||||
* Parses a ThrowStatement
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF throwStatement):
|
||||
* $(LITERAL 'throw') $(RULE expression) $(LITERAL ';')
|
||||
* ;)
|
||||
*/
|
||||
ThrowStatement parseThrowStatement()
|
||||
{
|
||||
|
@ -3345,7 +3495,10 @@ struct Parser
|
|||
/**
|
||||
* Parses an TraitsArgument
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF traitsArgument):
|
||||
* $(RULE assignExpression)
|
||||
* | $(RULE type)
|
||||
* ;)
|
||||
*/
|
||||
TraitsArgument parseTraitsArgument()
|
||||
{
|
||||
|
@ -3357,7 +3510,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an TraitsExpression
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF traitsExpression):
|
||||
* $(LITERAL '__traits') $(LITERAL '$(LPAREN)') $(LITERAL Identifier) $(LITERAL ',') $(RULE traitsArgument) ($(LITERAL ',') $(RULE traitsArgument))* $(LITERAL '$(RPAREN)')
|
||||
* ;)
|
||||
*/
|
||||
TraitsExpression parseTraitsExpression()
|
||||
{
|
||||
|
@ -3367,9 +3522,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TryStatement
|
||||
* Parses a TryStatement
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF tryStatement):
|
||||
* $(LITERAL 'try') $(RULE nonEmptyStatementNoCaseNoDefault) ($(RULE catches) | $(RULE catches) $(RULE finally) | $(RULE finally))
|
||||
* ;)
|
||||
*/
|
||||
TryStatement parseTryStatement()
|
||||
{
|
||||
|
@ -3379,9 +3536,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an Type
|
||||
* Parses a Type
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF type):
|
||||
* $(RULE typeConstructors)? $(RULE type2)
|
||||
* ;)
|
||||
*/
|
||||
Type parseType()
|
||||
{
|
||||
|
@ -3391,9 +3550,12 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an Type2
|
||||
* Parses a Type2
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF type2):
|
||||
* $(RULE type3) $(RULE typeSuffix)?
|
||||
* | $(RULE type2) $(RULE typeSuffix)
|
||||
* ;)
|
||||
*/
|
||||
Type2 parseType2()
|
||||
{
|
||||
|
@ -3403,9 +3565,14 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an Type3
|
||||
* Parses a Type3
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF type3):
|
||||
* $(RULE basicType)
|
||||
* | $(RULE symbol)
|
||||
* | $(RULE typeofExpression) ($(LITERAL '.') $(RULE identifierOrTemplateChain))?
|
||||
* | $(RULE typeConstructor) $(LITERAL '$(LPAREN)') $(RULE type) $(LITERAL '$(RPAREN)')
|
||||
* ;)
|
||||
*/
|
||||
Type3 parseType3()
|
||||
{
|
||||
|
@ -3415,9 +3582,14 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TypeConstructor
|
||||
* Parses a TypeConstructor
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF typeConstructor):
|
||||
* $(LITERAL 'const')
|
||||
* | $(LITERAL 'immutable')
|
||||
* | $(LITERAL 'inout')
|
||||
* | $(LITERAL 'shared')
|
||||
* ;)
|
||||
*/
|
||||
TypeConstructor parseTypeConstructor()
|
||||
{
|
||||
|
@ -3427,9 +3599,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TypeConstructors
|
||||
* Parses TypeConstructors
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF typeConstructors):
|
||||
* $(RULE typeConstructor)+
|
||||
* ;)
|
||||
*/
|
||||
TypeConstructors parseTypeConstructors()
|
||||
{
|
||||
|
@ -3439,9 +3613,25 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TypeSpecialization
|
||||
* Parses a TypeSpecialization
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF typeSpecialization):
|
||||
* $(RULE type)
|
||||
* | $(LITERAL 'struct')
|
||||
* | $(LITERAL 'union')
|
||||
* | $(LITERAL 'class')
|
||||
* | $(LITERAL 'interface')
|
||||
* | $(LITERAL 'enum')
|
||||
* | $(LITERAL 'function')
|
||||
* | $(LITERAL 'delegate')
|
||||
* | $(LITERAL 'super')
|
||||
* | $(LITERAL 'const')
|
||||
* | $(LITERAL 'immutable')
|
||||
* | $(LITERAL 'inout')
|
||||
* | $(LITERAL 'shared')
|
||||
* | $(LITERAL 'return')
|
||||
* | $(RULE '___parameters')
|
||||
* ;)
|
||||
*/
|
||||
TypeSpecialization parseTypeSpecialization()
|
||||
{
|
||||
|
@ -3451,9 +3641,13 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TypeSuffix
|
||||
* Parses a TypeSuffix
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF typeSuffix):
|
||||
* $(LITERAL '*')
|
||||
* | $(LITERAL '[') ($(RULE type) | $(RULE assignExpression))? $(LITERAL ']')
|
||||
* | ($(LITERAL 'delegate') | $(LITERAL 'function')) $(RULE parameters) $(RULE memberFunctionAttribute)*
|
||||
* ;)
|
||||
*/
|
||||
TypeSuffix parseTypeSuffix()
|
||||
{
|
||||
|
@ -3463,9 +3657,12 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TypeidExpression
|
||||
* Parses a TypeidExpression
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF typeidExpression):
|
||||
* $(LITERAL 'typeid') $(LITERAL '$(LPAREN)')($(RULE type) | $(RULE expression)) $(LITERAL '$(RPAREN)')
|
||||
* ;)
|
||||
|
||||
*/
|
||||
TypeidExpression parseTypeidExpression()
|
||||
{
|
||||
|
@ -3475,9 +3672,11 @@ struct Parser
|
|||
}
|
||||
|
||||
/**
|
||||
* Parses an TypeofExpression
|
||||
* Parses a TypeofExpression
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF typeofExpression):
|
||||
* $(LITERAL 'typeof') $(LITERAL '$(LPAREN)')($(RULE expression) | $(LITERAL 'return')) $(LITERAL '$(RPAREN)')
|
||||
* ;)
|
||||
*/
|
||||
TypeofExpression parseTypeofExpression()
|
||||
{
|
||||
|
@ -3525,7 +3724,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an UnionDeclaration
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF unionDeclaration):
|
||||
* '$(RULE union)' $(LITERAL Identifier) (($(RULE templateParameters) $(RULE constraint)? $(RULE structBody))? | ($(RULE structBody) | $(LITERAL ';')))
|
||||
* ;)
|
||||
*/
|
||||
UnionDeclaration parseUnionDeclaration()
|
||||
{
|
||||
|
@ -3552,7 +3753,10 @@ struct Parser
|
|||
/**
|
||||
* Parses a VariableDeclaration
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF variableDeclaration):
|
||||
* $(RULE storageClass)? $(RULE type) $(RULE declarator) ($(LITERAL ',') $(RULE declarator))* $(LITERAL ';')
|
||||
* | $(RULE autoDeclaration)
|
||||
* ;)
|
||||
*/
|
||||
VariableDeclaration parseVariableDeclaration()
|
||||
{
|
||||
|
@ -3648,7 +3852,9 @@ struct Parser
|
|||
/**
|
||||
* Parses an XorExpression
|
||||
*
|
||||
* $(GRAMMAR )
|
||||
* $(GRAMMAR $(RULEDEF xorExpression):
|
||||
* $(RULE andExpression) ($(LITERAL '^') $(RULE andExpression))?
|
||||
* ;)
|
||||
*/
|
||||
XorExpression parseXorExpression()
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue