D-Scanner/stdx/d/parser.html

2202 lines
102 KiB
HTML

<html><head>
<META http-equiv="content-type" content="text/html; charset=utf-8">
<title>stdx.d.parser</title>
</head><body>
<h1>stdx.d.parser</h1>
<!-- Generated by Ddoc from parser.d -->
<dl><dt><big><a name="parseModule"></a>Module <u>parseModule</u>(const(Token)[] <i>tokens</i>, string <i>fileName</i>, void function(string, size_t, size_t, string, bool) <i>messageFunction</i> = null);
</big></dt>
<dd><b>Params:</b><br>
<table><tr><td>const(Token)[] <i>tokens</i></td>
<td>the <i>tokens</i> parsed by std.d.lexer</td></tr>
<tr><td>string <i>fileName</i></td>
<td>the name of the file being parsed</td></tr>
<tr><td>void function(string, size_t, size_t, string, bool) <i>messageFunction</i></td>
<td>a function to call on error or warning messages.
The parameters are the file name, line number, column number,
the error or warning message, and a boolean (<b>true</b> means error, <b>false</b>
means warning).</td></tr>
</table><br>
<b>Returns:</b><br>
the parsed module<br><br>
</dd>
<dt><big><a name="Parser"></a>class <u>Parser</u>;
</big></dt>
<dd><u>Parser</u> structure<br><br>
<dl><dt><big><a name="Parser.parseAddExpression"></a>ExpressionNode <u>parseAddExpression</u>();
</big></dt>
<dd>Parses an AddExpression.
<br><br>
<pre><b><a name="addExpression"></a> addExpression</b>:
<a href="#mulExpression">mulExpression</a>
| <a href="#addExpression">addExpression</a> (<font color=red><i>'+'</i></font> | <font color=red><i>'-'</i></font> | <font color=red><i>'~'</i></font>) <a href="#mulExpression">mulExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAliasDeclaration"></a>AliasDeclaration <u>parseAliasDeclaration</u>();
</big></dt>
<dd>Parses an AliasDeclaration.
<br><br>
<pre><b><a name="aliasDeclaration"></a> aliasDeclaration</b>:
<font color=red><i>'alias'</i></font> <a href="#aliasInitializer">aliasInitializer</a> (<font color=red><i>','</i></font> <a href="#aliasInitializer">aliasInitializer</a>)* <font color=red><i>';'</i></font>
| <font color=red><i>'alias'</i></font> <a href="#type">type</a> <font color=red><i>identifier</i></font> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAliasInitializer"></a>AliasInitializer <u>parseAliasInitializer</u>();
</big></dt>
<dd>Parses an AliasInitializer
<pre><b><a name="aliasInitializer"></a> aliasInitializer</b>:
<font color=red><i>Identifier</i></font> <font color=red><i>'='</i></font> <a href="#type">type</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAliasThisDeclaration"></a>AliasThisDeclaration <u>parseAliasThisDeclaration</u>();
</big></dt>
<dd>Parses an AliasThisDeclaration
<pre><b><a name="aliasThisDeclaration"></a> aliasThisDeclaration</b>:
<font color=red><i>'alias'</i></font> <font color=red><i>Identifier</i></font> <font color=red><i>'this'</i></font> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAlignAttribute"></a>AlignAttribute <u>parseAlignAttribute</u>();
</big></dt>
<dd>Parses an AlignAttribute.
<pre><b><a name="alignAttribute"></a> alignAttribute</b>:
<font color=red><i>'align'</i></font> (<font color=red><i>'('</i></font> <font color=red><i>IntegerLiteral</i></font> <font color=red><i>')'</i></font>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAndAndExpression"></a>ExpressionNode <u>parseAndAndExpression</u>();
</big></dt>
<dd>Parses an AndAndExpression
<pre><b><a name="andAndExpression"></a> andAndExpression</b>:
<a href="#orExpression">orExpression</a>
| <a href="#andAndExpression">andAndExpression</a> <font color=red><i>'&amp;&amp;'</i></font> <a href="#orExpression">orExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAndExpression"></a>ExpressionNode <u>parseAndExpression</u>();
</big></dt>
<dd>Parses an AndExpression
<br><br>
<pre><b><a name="andExpression"></a> andExpression</b>:
<a href="#cmpExpression">cmpExpression</a>
| <a href="#andExpression">andExpression</a> <font color=red><i>'&amp;'</i></font> <a href="#cmpExpression">cmpExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseArgumentList"></a>ArgumentList <u>parseArgumentList</u>();
</big></dt>
<dd>Parses an ArgumentList
<br><br>
<pre><b><a name="argumentList"></a> argumentList</b>:
<a href="#assignExpression">assignExpression</a> (<font color=red><i>','</i></font> <a href="#assignExpression">assignExpression</a>?)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseArguments"></a>Arguments <u>parseArguments</u>();
</big></dt>
<dd>Parses Arguments
<br><br>
<pre><b><a name="arguments"></a> arguments</b>:
<font color=red><i>'('</i></font> <a href="#argumentList">argumentList</a>? <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseArrayInitializer"></a>ArrayInitializer <u>parseArrayInitializer</u>();
</big></dt>
<dd>Parses an ArrayInitializer
<br><br>
<pre><b><a name="arrayInitializer"></a> arrayInitializer</b>:
<font color=red><i>'['</i></font> <font color=red><i>']'</i></font>
| <font color=red><i>'['</i></font> <a href="#arrayMemberInitialization">arrayMemberInitialization</a> (<font color=red><i>','</i></font> <a href="#arrayMemberInitialization">arrayMemberInitialization</a>?)* <font color=red><i>']'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseArrayLiteral"></a>ArrayLiteral <u>parseArrayLiteral</u>();
</big></dt>
<dd>Parses an ArrayLiteral
<br><br>
<pre><b><a name="arrayLiteral"></a> arrayLiteral</b>:
<font color=red><i>'['</i></font> (<a href="#assignExpression">assignExpression</a> (<font color=red><i>','</i></font> <a href="#assignExpression">assignExpression</a>)*)? <font color=red><i>']'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseArrayMemberInitialization"></a>ArrayMemberInitialization <u>parseArrayMemberInitialization</u>();
</big></dt>
<dd>Parses an ArrayMemberInitialization
<br><br>
<pre><b><a name="arrayMemberInitialization"></a> arrayMemberInitialization</b>:
(<a href="#assignExpression">assignExpression</a> <font color=red><i>':'</i></font>)? <a href="#nonVoidInitializer">nonVoidInitializer</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmAddExp"></a>ExpressionNode <u>parseAsmAddExp</u>();
</big></dt>
<dd>Parses an AsmAddExp
<br><br>
<pre><b><a name="asmAddExp"></a> asmAddExp</b>:
<a href="#asmMulExp">asmMulExp</a>
| <a href="#asmAddExp">asmAddExp</a> (<font color=red><i>'+'</i></font> | <font color=red><i>'-'</i></font>) <a href="#asmMulExp">asmMulExp</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmAndExp"></a>AsmAndExp <u>parseAsmAndExp</u>();
</big></dt>
<dd>Parses an AsmAndExp
<br><br>
<pre><b><a name="asmAndExp"></a> asmAndExp</b>:
<a href="#asmEqualExp">asmEqualExp</a> (<font color=red><i>'&amp;'</i></font> <a href="#asmEqualExp">asmEqualExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmBrExp"></a>AsmBrExp <u>parseAsmBrExp</u>();
</big></dt>
<dd>Parses an AsmBrExp
<br><br>
<pre><b><a name="asmBrExp"></a> asmBrExp</b>:
<a href="#asmUnaExp">asmUnaExp</a>
| <a href="#asmBrExp">asmBrExp</a> <font color=red><i>'['</i></font> <a href="#asmExp">asmExp</a> <font color=red><i>']'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmEqualExp"></a>AsmEqualExp <u>parseAsmEqualExp</u>();
</big></dt>
<dd>Parses an AsmEqualExp
<br><br>
<pre><b><a name="asmEqualExp"></a> asmEqualExp</b>:
<a href="#asmRelExp">asmRelExp</a> (('==' | '!=') <a href="#asmRelExp">asmRelExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmExp"></a>AsmExp <u>parseAsmExp</u>();
</big></dt>
<dd>Parses an AsmExp
<br><br>
<pre><b><a name="asmExp"></a> asmExp</b>:
<a href="#asmLogOrExp">asmLogOrExp</a> (<font color=red><i>'?'</i></font> <a href="#asmExp">asmExp</a> <font color=red><i>':'</i></font> <a href="#asmExp">asmExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmInstruction"></a>AsmInstruction <u>parseAsmInstruction</u>();
</big></dt>
<dd>Parses an AsmInstruction
<br><br>
<pre><b><a name="asmInstruction"></a> asmInstruction</b>:
<font color=red><i>Identifier</i></font>
| <font color=red><i>'align'</i></font> <font color=red><i>IntegerLiteral</i></font>
| <font color=red><i>'align'</i></font> <font color=red><i>Identifier</i></font>
| <font color=red><i>Identifier</i></font> <font color=red><i>':'</i></font> <a href="#asmInstruction">asmInstruction</a>
| <font color=red><i>Identifier</i></font> <a href="#asmExp">asmExp</a>
| <font color=red><i>Identifier</i></font> <a href="#operands">operands</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmLogAndExp"></a>AsmLogAndExp <u>parseAsmLogAndExp</u>();
</big></dt>
<dd>Parses an AsmLogAndExp
<br><br>
<pre><b><a name="asmLogAndExp"></a> asmLogAndExp</b>:
<a href="#asmOrExp">asmOrExp</a> ('&amp;&amp;' <a href="#asmOrExp">asmOrExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmLogOrExp"></a>AsmLogOrExp <u>parseAsmLogOrExp</u>();
</big></dt>
<dd>Parses an AsmLogOrExp
<br><br>
<pre><b><a name="asmLogOrExp"></a> asmLogOrExp</b>:
<a href="#asmLogAndExp">asmLogAndExp</a> ('||' <a href="#asmLogAndExp">asmLogAndExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmMulExp"></a>AsmMulExp <u>parseAsmMulExp</u>();
</big></dt>
<dd>Parses an AsmMulExp
<br><br>
<pre><b><a name="asmMulExp"></a> asmMulExp</b>:
<a href="#asmBrExp">asmBrExp</a> ((<font color=red><i>'*'</i></font> | <font color=red><i>'/'</i></font> | <font color=red><i>'%'</i></font>) <a href="#asmBrExp">asmBrExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmOrExp"></a>AsmOrExp <u>parseAsmOrExp</u>();
</big></dt>
<dd>Parses an AsmOrExp
<br><br>
<pre><b><a name="asmOrExp"></a> asmOrExp</b>:
<a href="#asmXorExp">asmXorExp</a> (<font color=red><i>'|'</i></font> <a href="#asmXorExp">asmXorExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmPrimaryExp"></a>AsmPrimaryExp <u>parseAsmPrimaryExp</u>();
</big></dt>
<dd>Parses an AsmPrimaryExp
<br><br>
<pre><b><a name="asmPrimaryExp"></a> asmPrimaryExp</b>:
<font color=red><i>IntegerLiteral</i></font>
| <font color=red><i>FloatLiteral</i></font>
| <a href="#register">register</a>
| <a href="#identifierChain">identifierChain</a>
| <font color=red><i>'$'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmRelExp"></a>AsmRelExp <u>parseAsmRelExp</u>();
</big></dt>
<dd>Parses an AsmRelExp
<br><br>
<pre><b><a name="asmRelExp"></a> asmRelExp</b>:
<a href="#asmShiftExp">asmShiftExp</a> ((<font color=red><i>'&lt;'</i></font> | <font color=red><i>'&lt;='</i></font> | <font color=red><i>'&gt;'</i></font> | <font color=red><i>'&gt;='</i></font>) <a href="#asmShiftExp">asmShiftExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmShiftExp"></a>AsmShiftExp <u>parseAsmShiftExp</u>();
</big></dt>
<dd>Parses an AsmShiftExp
<br><br>
<pre><b><a name="asmShiftExp"></a> asmShiftExp</b>:
<a href="#asmAddExp">asmAddExp</a> ((<font color=red><i>'&lt;&lt;'</i></font> | <font color=red><i>'&gt;&gt;'</i></font> | <font color=red><i>'&gt;&gt;&gt;'</i></font>) <a href="#asmAddExp">asmAddExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmStatement"></a>AsmStatement <u>parseAsmStatement</u>();
</big></dt>
<dd>Parses an AsmStatement
<br><br>
<pre><b><a name="asmStatement"></a> asmStatement</b>:
<font color=red><i>'asm'</i></font> <font color=red><i>'{'</i></font> <a href="#asmInstruction">asmInstruction</a>+ <font color=red><i>'}'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmTypePrefix"></a>AsmTypePrefix <u>parseAsmTypePrefix</u>();
</big></dt>
<dd>Parses an AsmTypePrefix
<br><br>
<pre><b><a name="asmTypePrefix"></a> asmTypePrefix</b>:
<font color=red><i>Identifier</i></font> <font color=red><i>Identifier</i></font>
| <font color=red><i>'byte'</i></font> <font color=red><i>Identifier</i></font>
| <font color=red><i>'short'</i></font> <font color=red><i>Identifier</i></font>
| <font color=red><i>'int'</i></font> <font color=red><i>Identifier</i></font>
| <font color=red><i>'float'</i></font> <font color=red><i>Identifier</i></font>
| <font color=red><i>'double'</i></font> <font color=red><i>Identifier</i></font>
| <font color=red><i>'real'</i></font> <font color=red><i>Identifier</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmUnaExp"></a>AsmUnaExp <u>parseAsmUnaExp</u>();
</big></dt>
<dd>Parses an AsmUnaExp
<br><br>
<pre><b><a name="asmUnaExp"></a> asmUnaExp</b>:
<a href="#asmTypePrefix">asmTypePrefix</a> <a href="#asmExp">asmExp</a>
| <font color=red><i>Identifier</i></font> <a href="#asmExp">asmExp</a>
| <font color=red><i>'+'</i></font> <a href="#asmUnaExp">asmUnaExp</a>
| <font color=red><i>'-'</i></font> <a href="#asmUnaExp">asmUnaExp</a>
| <font color=red><i>'!'</i></font> <a href="#asmUnaExp">asmUnaExp</a>
| <font color=red><i>'~'</i></font> <a href="#asmUnaExp">asmUnaExp</a>
| <a href="#asmPrimaryExp">asmPrimaryExp</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAsmXorExp"></a>AsmXorExp <u>parseAsmXorExp</u>();
</big></dt>
<dd>Parses an AsmXorExp
<br><br>
<pre><b><a name="asmXorExp"></a> asmXorExp</b>:
<a href="#asmAndExp">asmAndExp</a> (<font color=red><i>'^'</i></font> <a href="#asmAndExp">asmAndExp</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAssertExpression"></a>AssertExpression <u>parseAssertExpression</u>();
</big></dt>
<dd>Parses an AssertExpression
<br><br>
<pre><b><a name="assertExpression"></a> assertExpression</b>:
<font color=red><i>'assert'</i></font> <font color=red><i>'('</i></font> <a href="#assignExpression">assignExpression</a> (<font color=red><i>','</i></font> <a href="#assignExpression">assignExpression</a>)? <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAssignExpression"></a>AssignExpression <u>parseAssignExpression</u>();
</big></dt>
<dd>Parses an AssignExpression
<br><br>
<pre><b><a name="assignExpression"></a> assignExpression</b>:
<a href="#ternaryExpression">ternaryExpression</a> (<a href="#assignOperator">assignOperator</a> <a href="#assignExpression">assignExpression</a>)?
;
<b><a name="assignOperator"></a> assignOperator</b>:
<font color=red><i>'='</i></font>
| <font color=red><i>'&gt;&gt;&gt;='</i></font>
| <font color=red><i>'&gt;&gt;='</i></font>
| <font color=red><i>'&lt;&lt;='</i></font>
| <font color=red><i>'+='</i></font>
| <font color=red><i>'-='</i></font>
| <font color=red><i>'*='</i></font>
| <font color=red><i>'%='</i></font>
| <font color=red><i>'&amp;='</i></font>
| <font color=red><i>'/='</i></font>
| <font color=red><i>'|='</i></font>
| <font color=red><i>'^^='</i></font>
| <font color=red><i>'^='</i></font>
| <font color=red><i>'~='</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAssocArrayLiteral"></a>AssocArrayLiteral <u>parseAssocArrayLiteral</u>();
</big></dt>
<dd>Parses an AssocArrayLiteral
<br><br>
<pre><b><a name="assocArrayLiteral"></a> assocArrayLiteral</b>:
<font color=red><i>'['</i></font> <a href="#keyValuePairs">keyValuePairs</a> <font color=red><i>']'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAtAttribute"></a>AtAttribute <u>parseAtAttribute</u>();
</big></dt>
<dd>Parses an AtAttribute
<br><br>
<pre><b><a name="atAttribute"></a> atAttribute</b>:
<font color=red><i>'@'</i></font> (<font color=red><i>Identifier</i></font> | <font color=red><i>'('</i></font> <a href="#argumentList">argumentList</a> <font color=red><i>')'</i></font> | <a href="#functionCallExpression">functionCallExpression</a>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAttribute"></a>Attribute <u>parseAttribute</u>();
</big></dt>
<dd>Parses an Attribute
<br><br>
<pre><b><a name="attribute"></a> attribute</b>:
<a href="#alignAttribute">alignAttribute</a>
| <a href="#linkageAttribute">linkageAttribute</a>
| <a href="#pragmaExpression">pragmaExpression</a>
| <a href="#storageClass">storageClass</a>
| <font color=red><i>'export'</i></font>
| <font color=red><i>'package'</i></font>
| <font color=red><i>'private'</i></font>
| <font color=red><i>'protected'</i></font>
| <font color=red><i>'public'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAttributeDeclaration"></a>AttributeDeclaration <u>parseAttributeDeclaration</u>(Attribute <i>attribute</i> = null);
</big></dt>
<dd>Parses an AttributeDeclaration
<br><br>
<pre><b><a name="attributeDeclaration"></a> attributeDeclaration</b>:
<a href="#<i>attribute</i>"><i>attribute</i></a> <font color=red><i>':'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseAutoDeclaration"></a>AutoDeclaration <u>parseAutoDeclaration</u>();
</big></dt>
<dd>Parses an AutoDeclaration
<br><br>
<pre><b><a name="autoDeclaration"></a> autoDeclaration</b>:
<a href="#storageClass">storageClass</a> <font color=red><i>Identifier</i></font> <font color=red><i>'='</i></font> <a href="#initializer">initializer</a> (<font color=red><i>','</i></font> <font color=red><i>Identifier</i></font> <font color=red><i>'='</i></font> <a href="#initializer">initializer</a>)* <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseBlockStatement"></a>BlockStatement <u>parseBlockStatement</u>();
</big></dt>
<dd>Parses a BlockStatement
<br><br>
<pre><b><a name="blockStatement"></a> blockStatement</b>:
<font color=red><i>'{'</i></font> <a href="#declarationsAndStatements">declarationsAndStatements</a>? <font color=red><i>'}'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseBodyStatement"></a>BodyStatement <u>parseBodyStatement</u>();
</big></dt>
<dd>Parses a BodyStatement
<br><br>
<pre><b><a name="bodyStatement"></a> bodyStatement</b>:
<font color=red><i>'body'</i></font> <a href="#blockStatement">blockStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseBreakStatement"></a>BreakStatement <u>parseBreakStatement</u>();
</big></dt>
<dd>Parses a BreakStatement
<br><br>
<pre><b><a name="breakStatement"></a> breakStatement</b>:
<font color=red><i>'break'</i></font> <font color=red><i>Identifier</i></font>? <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseBaseClass"></a>BaseClass <u>parseBaseClass</u>();
</big></dt>
<dd>Parses a BaseClass
<br><br>
<pre><b><a name="baseClass"></a> baseClass</b>:
(<a href="#typeofExpression">typeofExpression</a> <font color=red><i>'.'</i></font>)? <a href="#identifierOrTemplateChain">identifierOrTemplateChain</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseBaseClassList"></a>BaseClassList <u>parseBaseClassList</u>();
</big></dt>
<dd>Parses a BaseClassList
<br><br>
<pre><b><a name="baseClassList"></a> baseClassList</b>:
<a href="#baseClass">baseClass</a> (<font color=red><i>','</i></font> <a href="#baseClass">baseClass</a>)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseBasicType"></a>IdType <u>parseBasicType</u>();
</big></dt>
<dd>Parses an BuiltinType
<br><br>
<pre><b><a name="builtinType"></a> builtinType</b>:
<font color=red><i>'bool'</i></font>
| <font color=red><i>'byte'</i></font>
| <font color=red><i>'ubyte'</i></font>
| <font color=red><i>'short'</i></font>
| <font color=red><i>'ushort'</i></font>
| <font color=red><i>'int'</i></font>
| <font color=red><i>'uint'</i></font>
| <font color=red><i>'long'</i></font>
| <font color=red><i>'ulong'</i></font>
| <font color=red><i>'char'</i></font>
| <font color=red><i>'wchar'</i></font>
| <font color=red><i>'dchar'</i></font>
| <font color=red><i>'float'</i></font>
| <font color=red><i>'double'</i></font>
| <font color=red><i>'real'</i></font>
| <font color=red><i>'ifloat'</i></font>
| <font color=red><i>'idouble'</i></font>
| <font color=red><i>'ireal'</i></font>
| <font color=red><i>'cfloat'</i></font>
| <font color=red><i>'cdouble'</i></font>
| <font color=red><i>'creal'</i></font>
| <font color=red><i>'void'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseCaseRangeStatement"></a>CaseRangeStatement <u>parseCaseRangeStatement</u>(AssignExpression <i>low</i> = null);
</big></dt>
<dd>Parses a CaseRangeStatement
<br><br>
<pre><b><a name="caseRangeStatement"></a> caseRangeStatement</b>:
<font color=red><i>'case'</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>':'</i></font> <font color=red><i>'...'</i></font> <font color=red><i>'case'</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>':'</i></font> <a href="#declarationsAndStatements">declarationsAndStatements</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseCaseStatement"></a>CaseStatement <u>parseCaseStatement</u>(ArgumentList <i>argumentList</i> = null);
</big></dt>
<dd>Parses an CaseStatement
<br><br>
<pre><b><a name="caseStatement"></a> caseStatement</b>:
<font color=red><i>'case'</i></font> <a href="#<i>argumentList</i>"><i>argumentList</i></a> <font color=red><i>':'</i></font> <a href="#declarationsAndStatements">declarationsAndStatements</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseCastExpression"></a>CastExpression <u>parseCastExpression</u>();
</big></dt>
<dd>Parses a CastExpression
<br><br>
<pre><b><a name="castExpression"></a> castExpression</b>:
<font color=red><i>'cast'</i></font> <font color=red><i>'('</i></font> (<a href="#type">type</a> | <a href="#castQualifier">castQualifier</a>)? <font color=red><i>')'</i></font> <a href="#unaryExpression">unaryExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseCastQualifier"></a>CastQualifier <u>parseCastQualifier</u>();
</big></dt>
<dd>Parses a CastQualifier
<br><br>
<pre><b><a name="castQualifier"></a> castQualifier</b>:
<font color=red><i>'const'</i></font>
| <font color=red><i>'const'</i></font> <font color=red><i>'shared'</i></font>
| <font color=red><i>'immutable'</i></font>
| <font color=red><i>'inout'</i></font>
| <font color=red><i>'inout'</i></font> <font color=red><i>'shared'</i></font>
| <font color=red><i>'shared'</i></font>
| <font color=red><i>'shared'</i></font> <font color=red><i>'const'</i></font>
| <font color=red><i>'shared'</i></font> <font color=red><i>'inout'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseCatch"></a>Catch <u>parseCatch</u>();
</big></dt>
<dd>Parses a Catch
<br><br>
<pre><b><a name="catch"></a> catch</b>:
<font color=red><i>'catch'</i></font> <font color=red><i>'('</i></font> <a href="#type">type</a> <font color=red><i>Identifier</i></font>? <font color=red><i>')'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseCatches"></a>Catches <u>parseCatches</u>();
</big></dt>
<dd>Parses a Catches
<br><br>
<pre><b><a name="catches"></a> catches</b>:
<a href="#catch">catch</a>+
| <a href="#catch">catch</a>* <a href="#lastCatch">lastCatch</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseClassDeclaration"></a>ClassDeclaration <u>parseClassDeclaration</u>();
</big></dt>
<dd>Parses a ClassDeclaration
<br><br>
<pre><b><a name="classDeclaration"></a> classDeclaration</b>:
<font color=red><i>'class'</i></font> <font color=red><i>Identifier</i></font> (<a href="#templateParameters">templateParameters</a> <a href="#constraint">constraint</a>?)? (<font color=red><i>':'</i></font> <a href="#baseClassList">baseClassList</a>)? <a href="#structBody">structBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseCmpExpression"></a>ExpressionNode <u>parseCmpExpression</u>();
</big></dt>
<dd>Parses a CmpExpression
<br><br>
<pre><b><a name="cmpExpression"></a> cmpExpression</b>:
<a href="#shiftExpression">shiftExpression</a>
| <a href="#equalExpression">equalExpression</a>
| <a href="#identityExpression">identityExpression</a>
| <a href="#relExpression">relExpression</a>
| <a href="#inExpression">inExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseCompileCondition"></a>CompileCondition <u>parseCompileCondition</u>();
</big></dt>
<dd>Parses a CompileCondition
<br><br>
<pre><b><a name="compileCondition"></a> compileCondition</b>:
<a href="#versionCondition">versionCondition</a>
| <a href="#debugCondition">debugCondition</a>
| <a href="#staticIfCondition">staticIfCondition</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseConditionalDeclaration"></a>ConditionalDeclaration <u>parseConditionalDeclaration</u>();
</big></dt>
<dd>Parses a ConditionalDeclaration
<br><br>
<pre><b><a name="conditionalDeclaration"></a> conditionalDeclaration</b>:
<a href="#compileCondition">compileCondition</a> <a href="#declaration">declaration</a>
| <a href="#compileCondition">compileCondition</a> <font color=red><i>':'</i></font> <a href="#declaration">declaration</a>+
| <a href="#compileCondition">compileCondition</a> <a href="#declaration">declaration</a> (<font color=red><i>'else'</i></font> <a href="#declaration">declaration</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseConditionalStatement"></a>ConditionalStatement <u>parseConditionalStatement</u>();
</big></dt>
<dd>Parses a ConditionalStatement
<br><br>
<pre><b><a name="conditionalStatement"></a> conditionalStatement</b>:
<a href="#compileCondition">compileCondition</a> <a href="#declarationOrStatement">declarationOrStatement</a> (<font color=red><i>'else'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseConstraint"></a>Constraint <u>parseConstraint</u>();
</big></dt>
<dd>Parses a Constraint
<br><br>
<pre><b><a name="constraint"></a> constraint</b>:
<font color=red><i>'if'</i></font> <font color=red><i>'('</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseConstructor"></a>Constructor <u>parseConstructor</u>();
</big></dt>
<dd>Parses a Constructor
<br><br>
<pre><b><a name="constructor"></a> constructor</b>:
<font color=red><i>'this'</i></font> <a href="#templateParameters">templateParameters</a> <a href="#parameters">parameters</a> <a href="#memberFunctionAttribute">memberFunctionAttribute</a>* <a href="#constraint">constraint</a>? (<a href="#functionBody">functionBody</a> | <font color=red><i>';'</i></font>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseContinueStatement"></a>ContinueStatement <u>parseContinueStatement</u>();
</big></dt>
<dd>Parses an ContinueStatement
<br><br>
<pre><b><a name="continueStatement"></a> continueStatement</b>:
<font color=red><i>'continue'</i></font> <font color=red><i>Identifier</i></font>? <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDebugCondition"></a>DebugCondition <u>parseDebugCondition</u>();
</big></dt>
<dd>Parses a DebugCondition
<br><br>
<pre><b><a name="debugCondition"></a> debugCondition</b>:
<font color=red><i>'debug'</i></font> (<font color=red><i>'('</i></font> (<font color=red><i>IntegerLiteral</i></font> | <font color=red><i>Identifier</i></font>) <font color=red><i>')'</i></font>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDebugSpecification"></a>DebugSpecification <u>parseDebugSpecification</u>();
</big></dt>
<dd>Parses a DebugSpecification
<br><br>
<pre><b><a name="debugSpecification"></a> debugSpecification</b>:
<font color=red><i>'debug'</i></font> <font color=red><i>'='</i></font> (<font color=red><i>Identifier</i></font> | <font color=red><i>IntegerLiteral</i></font>) <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDeclaration"></a>Declaration <u>parseDeclaration</u>();
</big></dt>
<dd>Parses a Declaration
<br><br>
<pre><b><a name="declaration"></a> declaration</b>:
<a href="#attribute">attribute</a>*
;
<b><a name="declaration2"></a> declaration2</b>:
<a href="#aliasDeclaration">aliasDeclaration</a>
| <a href="#aliasThisDeclaration">aliasThisDeclaration</a>
| <a href="#classDeclaration">classDeclaration</a>
| <a href="#conditionalDeclaration">conditionalDeclaration</a>
| <a href="#constructor">constructor</a>
| <a href="#destructor">destructor</a>
| <a href="#enumDeclaration">enumDeclaration</a>
| <a href="#functionDeclaration">functionDeclaration</a>
| <a href="#importDeclaration">importDeclaration</a>
| <a href="#interfaceDeclaration">interfaceDeclaration</a>
| <a href="#mixinDeclaration">mixinDeclaration</a>
| <a href="#mixinTemplateDeclaration">mixinTemplateDeclaration</a>
| <a href="#pragmaDeclaration">pragmaDeclaration</a>
| <a href="#sharedStaticConstructor">sharedStaticConstructor</a>
| <a href="#sharedStaticDestructor">sharedStaticDestructor</a>
| <a href="#staticAssertDeclaration">staticAssertDeclaration</a>
| <a href="#staticConstructor">staticConstructor</a>
| <a href="#staticDestructor">staticDestructor</a>
| <a href="#structDeclaration">structDeclaration</a>
| <a href="#templateDeclaration">templateDeclaration</a>
| <a href="#unionDeclaration">unionDeclaration</a>
| <a href="#unittest">unittest</a>
| <a href="#variableDeclaration">variableDeclaration</a>
| <a href="#attributeDeclaration">attributeDeclaration</a>
| <a href="#invariant">invariant</a>
| <font color=red><i>'{'</i></font> <a href="#declaration">declaration</a>+ <font color=red><i>'}'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDeclarationsAndStatements"></a>DeclarationsAndStatements <u>parseDeclarationsAndStatements</u>();
</big></dt>
<dd>Parses DeclarationsAndStatements
<br><br>
<pre><b><a name="declarationsAndStatements"></a> declarationsAndStatements</b>:
<a href="#declarationOrStatement">declarationOrStatement</a>+
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDeclarationOrStatement"></a>DeclarationOrStatement <u>parseDeclarationOrStatement</u>();
</big></dt>
<dd>Parses a DeclarationOrStatement
<br><br>
<pre><b><a name="declarationOrStatement"></a> declarationOrStatement</b>:
<a href="#declaration">declaration</a>
| <a href="#statement">statement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDeclarator"></a>Declarator <u>parseDeclarator</u>();
</big></dt>
<dd>Parses a Declarator
<br><br>
<pre><b><a name="declarator"></a> declarator</b>:
<font color=red><i>Identifier</i></font> (<font color=red><i>'='</i></font> <a href="#initializer">initializer</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDefaultStatement"></a>DefaultStatement <u>parseDefaultStatement</u>();
</big></dt>
<dd>Parses a DefaultStatement
<br><br>
<pre><b><a name="defaultStatement"></a> defaultStatement</b>:
<font color=red><i>'default'</i></font> <font color=red><i>':'</i></font> <a href="#declarationsAndStatements">declarationsAndStatements</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDeleteExpression"></a>DeleteExpression <u>parseDeleteExpression</u>();
</big></dt>
<dd>Parses a DeleteExpression
<br><br>
<pre><b><a name="deleteExpression"></a> deleteExpression</b>:
<font color=red><i>'delete'</i></font> <a href="#unaryExpression">unaryExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDeprecated"></a>Deprecated <u>parseDeprecated</u>();
</big></dt>
<dd>Parses a Deprecated attribute
<br><br>
<pre><b><a name="deprecated"></a> deprecated</b>:
<font color=red><i>'deprecated'</i></font> (<font color=red><i>'('</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>')'</i></font>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDestructor"></a>Destructor <u>parseDestructor</u>();
</big></dt>
<dd>Parses a Destructor
<br><br>
<pre><b><a name="destructor"></a> destructor</b>:
<font color=red><i>'~'</i></font> <font color=red><i>'this'</i></font> <font color=red><i>'('</i></font> <font color=red><i>')'</i></font> (<a href="#functionBody">functionBody</a> | <font color=red><i>';'</i></font>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseDoStatement"></a>DoStatement <u>parseDoStatement</u>();
</big></dt>
<dd>Parses a DoStatement
<br><br>
<pre><b><a name="doStatement"></a> doStatement</b>:
<font color=red><i>'do'</i></font> <a href="#statementNoCaseNoDefault">statementNoCaseNoDefault</a> <font color=red><i>'while'</i></font> <font color=red><i>'('</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseEnumBody"></a>EnumBody <u>parseEnumBody</u>();
</big></dt>
<dd>Parses an EnumBody
<br><br>
<pre><b><a name="enumBody"></a> enumBody</b>:
<font color=red><i>';'</i></font>
| <font color=red><i>'{'</i></font> <a href="#enumMember">enumMember</a> (<font color=red><i>','</i></font> <a href="#enumMember">enumMember</a>?)* <font color=red><i>'}'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseEnumDeclaration"></a>EnumDeclaration <u>parseEnumDeclaration</u>();
</big></dt>
<dd>Parses an EnumDeclaration
<br><br>
<pre><b><a name="enumDeclaration"></a> enumDeclaration</b>:
<font color=red><i>'enum'</i></font> <font color=red><i>Identifier</i></font>? (<font color=red><i>':'</i></font> <a href="#type">type</a>)? <a href="#enumBody">enumBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseEnumMember"></a>EnumMember <u>parseEnumMember</u>();
</big></dt>
<dd>Parses an EnumMember
<br><br>
<pre><b><a name="enumMember"></a> enumMember</b>:
<font color=red><i>Identifier</i></font>
| (<font color=red><i>Identifier</i></font> | <a href="#type">type</a>) <font color=red><i>'='</i></font> <a href="#assignExpression">assignExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseEqualExpression"></a>EqualExpression <u>parseEqualExpression</u>(ExpressionNode <i>shift</i> = null);
</big></dt>
<dd>Parses an EqualExpression
<br><br>
<pre><b><a name="equalExpression"></a> equalExpression</b>:
<a href="#shiftExpression">shiftExpression</a> (<font color=red><i>'=='</i></font> | <font color=red><i>'!='</i></font>) <a href="#shiftExpression">shiftExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseExpression"></a>Expression <u>parseExpression</u>();
</big></dt>
<dd>Parses an Expression
<br><br>
<pre><b><a name="expression"></a> expression</b>:
<a href="#assignExpression">assignExpression</a> (<font color=red><i>','</i></font> <a href="#assignExpression">assignExpression</a>)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseExpressionStatement"></a>ExpressionStatement <u>parseExpressionStatement</u>(Expression <i>expression</i> = null);
</big></dt>
<dd>Parses an ExpressionStatement
<br><br>
<pre><b><a name="expressionStatement"></a> expressionStatement</b>:
<a href="#<i>expression</i>"><i>expression</i></a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseFinalSwitchStatement"></a>FinalSwitchStatement <u>parseFinalSwitchStatement</u>();
</big></dt>
<dd>Parses a FinalSwitchStatement
<br><br>
<pre><b><a name="finalSwitchStatement"></a> finalSwitchStatement</b>:
<font color=red><i>'final'</i></font> <a href="#switchStatement">switchStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseFinally"></a>Finally <u>parseFinally</u>();
</big></dt>
<dd>Parses a Finally
<br><br>
<pre><b><a name="finally"></a> finally</b>:
<font color=red><i>'finally'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseForStatement"></a>ForStatement <u>parseForStatement</u>();
</big></dt>
<dd>Parses a ForStatement
<br><br>
<pre><b><a name="forStatement"></a> forStatement</b>:
<font color=red><i>'for'</i></font> <font color=red><i>'('</i></font> <a href="#declarationOrStatement">declarationOrStatement</a> <a href="#expression">expression</a>? <font color=red><i>';'</i></font> <a href="#expression">expression</a>? <font color=red><i>')'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseForeachStatement"></a>ForeachStatement <u>parseForeachStatement</u>();
</big></dt>
<dd>Parses a ForeachStatement
<br><br>
<pre><b><a name="foreachStatement"></a> foreachStatement</b>:
(<font color=red><i>'foreach'</i></font> | <font color=red><i>'foreach_reverse'</i></font>) <font color=red><i>'('</i></font> <a href="#foreachTypeList">foreachTypeList</a> <font color=red><i>';'</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>
| (<font color=red><i>'foreach'</i></font> | <font color=red><i>'foreach_reverse'</i></font>) <font color=red><i>'('</i></font> <a href="#foreachType">foreachType</a> <font color=red><i>';'</i></font> <a href="#expression">expression</a> <font color=red><i>'..'</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseForeachType"></a>ForeachType <u>parseForeachType</u>();
</big></dt>
<dd>Parses a ForeachType
<br><br>
<pre><b><a name="foreachType"></a> foreachType</b>:
<a href="#typeConstructors">typeConstructors</a>? <a href="#type">type</a>? <font color=red><i>Identifier</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseForeachTypeList"></a>ForeachTypeList <u>parseForeachTypeList</u>();
</big></dt>
<dd>Parses a ForeachTypeList
<br><br>
<pre><b><a name="foreachTypeList"></a> foreachTypeList</b>:
<a href="#foreachType">foreachType</a> (<font color=red><i>','</i></font> <a href="#foreachType">foreachType</a>)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseFunctionAttribute"></a>FunctionAttribute <u>parseFunctionAttribute</u>(bool <i>validate</i> = true);
</big></dt>
<dd>Parses a FunctionAttribute
<br><br>
<pre><b><a name="functionAttribute"></a> functionAttribute</b>:
<a href="#atAttribute">atAttribute</a>
| <font color=red><i>'pure'</i></font>
| <font color=red><i>'nothrow'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseFunctionBody"></a>FunctionBody <u>parseFunctionBody</u>();
</big></dt>
<dd>Parses a FunctionBody
<br><br>
<pre><b><a name="functionBody"></a> functionBody</b>:
<a href="#blockStatement">blockStatement</a>
| (<a href="#inStatement">inStatement</a> | <a href="#outStatement">outStatement</a> | <a href="#outStatement">outStatement</a> <a href="#inStatement">inStatement</a> | <a href="#inStatement">inStatement</a> <a href="#outStatement">outStatement</a>)? <a href="#bodyStatement">bodyStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseFunctionCallExpression"></a>FunctionCallExpression <u>parseFunctionCallExpression</u>(UnaryExpression <i>unary</i> = null);
</big></dt>
<dd>Parses a FunctionCallExpression
<br><br>
<pre><b><a name="functionCallExpression"></a> functionCallExpression</b>:
<a href="#unaryExpression">unaryExpression</a> <a href="#templateArguments">templateArguments</a>? <a href="#arguments">arguments</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseFunctionCallStatement"></a>FunctionCallStatement <u>parseFunctionCallStatement</u>();
</big></dt>
<dd>Parses a FunctionCallStatement
<br><br>
<pre><b><a name="functionCallStatement"></a> functionCallStatement</b>:
<a href="#functionCallExpression">functionCallExpression</a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseFunctionDeclaration"></a>FunctionDeclaration <u>parseFunctionDeclaration</u>(Type <i>type</i> = null, bool <i>isAuto</i> = false);
</big></dt>
<dd>Parses a FunctionDeclaration
<br><br>
<pre><b><a name="functionDeclaration"></a> functionDeclaration</b>:
(<a href="#storageClass">storageClass</a> | <a href="#type">type</a>) <font color=red><i>Identifier</i></font> <a href="#templateParameters">templateParameters</a> <a href="#parameters">parameters</a> <a href="#memberFunctionAttribute">memberFunctionAttribute</a>* <a href="#constraint">constraint</a>? (<a href="#functionBody">functionBody</a> | <font color=red><i>';'</i></font>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseFunctionLiteralExpression"></a>FunctionLiteralExpression <u>parseFunctionLiteralExpression</u>();
</big></dt>
<dd>Parses a FunctionLiteralExpression
<br><br>
<pre><b><a name="functionLiteralExpression"></a> functionLiteralExpression</b>:
((<font color=red><i>'function'</i></font> | <font color=red><i>'delegate'</i></font>) <a href="#type">type</a>?)? (<a href="#parameters">parameters</a> <a href="#functionAttribute">functionAttribute</a>*)? <a href="#functionBody">functionBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseGotoStatement"></a>GotoStatement <u>parseGotoStatement</u>();
</big></dt>
<dd>Parses a GotoStatement
<br><br>
<pre><b><a name="gotoStatement"></a> gotoStatement</b>:
<font color=red><i>'goto'</i></font> (<font color=red><i>Identifier</i></font> | <font color=red><i>'default'</i></font> | <font color=red><i>'case'</i></font> <a href="#expression">expression</a>?) <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseIdentifierChain"></a>IdentifierChain <u>parseIdentifierChain</u>();
</big></dt>
<dd>Parses an IdentifierChain
<br><br>
<pre><b><a name="identifierChain"></a> identifierChain</b>:
<font color=red><i>Identifier</i></font> (<font color=red><i>'.'</i></font> <font color=red><i>Identifier</i></font>)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseIdentifierList"></a>IdentifierList <u>parseIdentifierList</u>();
</big></dt>
<dd>Parses an IdentifierList
<br><br>
<pre><b><a name="identifierList"></a> identifierList</b>:
<font color=red><i>Identifier</i></font> (<font color=red><i>','</i></font> <font color=red><i>Identifier</i></font>)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseIdentifierOrTemplateChain"></a>IdentifierOrTemplateChain <u>parseIdentifierOrTemplateChain</u>();
</big></dt>
<dd>Parses an IdentifierOrTemplateChain
<br><br>
<pre><b><a name="identifierOrTemplateChain"></a> identifierOrTemplateChain</b>:
<a href="#identifierOrTemplateInstance">identifierOrTemplateInstance</a> (<font color=red><i>'.'</i></font> <a href="#identifierOrTemplateInstance">identifierOrTemplateInstance</a>)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseIdentifierOrTemplateInstance"></a>IdentifierOrTemplateInstance <u>parseIdentifierOrTemplateInstance</u>();
</big></dt>
<dd>Parses an IdentifierOrTemplateInstance
<br><br>
<pre><b><a name="identifierOrTemplateInstance"></a> identifierOrTemplateInstance</b>:
<font color=red><i>Identifier</i></font>
| <a href="#templateInstance">templateInstance</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseIdentityExpression"></a>ExpressionNode <u>parseIdentityExpression</u>(ExpressionNode <i>shift</i> = null);
</big></dt>
<dd>Parses an IdentityExpression
<br><br>
<pre><b><a name="identityExpression"></a> identityExpression</b>:
<a href="#shiftExpression">shiftExpression</a> (<font color=red><i>'is'</i></font> | <font color=red><i>'!'</i></font> <font color=red><i>'is'</i></font>) <a href="#shiftExpression">shiftExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseIfStatement"></a>IfStatement <u>parseIfStatement</u>();
</big></dt>
<dd>Parses an IfStatement
<br><br>
<pre><b><a name="ifStatement"></a> ifStatement</b>:
<font color=red><i>'if'</i></font> <font color=red><i>'('</i></font> <a href="#ifCondition">ifCondition</a> <font color=red><i>')'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a> (<font color=red><i>'else'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>)?
<b><a name="ifCondition"></a> ifCondition</b>:
<font color=red><i>'auto'</i></font> <font color=red><i>Identifier</i></font> <font color=red><i>'='</i></font> <a href="#expression">expression</a>
| <a href="#type">type</a> <font color=red><i>Identifier</i></font> <font color=red><i>'='</i></font> <a href="#expression">expression</a>
| <a href="#expression">expression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseImportBind"></a>ImportBind <u>parseImportBind</u>();
</big></dt>
<dd>Parses an ImportBind
<br><br>
<pre><b><a name="importBind"></a> importBind</b>:
<font color=red><i>Identifier</i></font> (<font color=red><i>'='</i></font> <font color=red><i>Identifier</i></font>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseImportBindings"></a>ImportBindings <u>parseImportBindings</u>(SingleImport <i>singleImport</i>);
</big></dt>
<dd>Parses ImportBindings
<br><br>
<pre><b><a name="importBindings"></a> importBindings</b>:
<a href="#<i>singleImport</i>"><i>singleImport</i></a> <font color=red><i>':'</i></font> <a href="#importBind">importBind</a> (<font color=red><i>','</i></font> <a href="#importBind">importBind</a>)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseImportDeclaration"></a>ImportDeclaration <u>parseImportDeclaration</u>();
</big></dt>
<dd>Parses an ImportDeclaration
<br><br>
<pre><b><a name="importDeclaration"></a> importDeclaration</b>:
<font color=red><i>'import'</i></font> <a href="#singleImport">singleImport</a> (<font color=red><i>','</i></font> <a href="#singleImport">singleImport</a>)* (<font color=red><i>','</i></font> <a href="#importBindings">importBindings</a>)? <font color=red><i>';'</i></font>
| <font color=red><i>'import'</i></font> <a href="#importBindings">importBindings</a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseImportExpression"></a>ImportExpression <u>parseImportExpression</u>();
</big></dt>
<dd>Parses an ImportExpression
<br><br>
<pre><b><a name="importExpression"></a> importExpression</b>:
<font color=red><i>'import'</i></font> <font color=red><i>'('</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseIndexExpression"></a>IndexExpression <u>parseIndexExpression</u>(UnaryExpression <i>unaryExpression</i> = null);
</big></dt>
<dd>Parses an IndexExpression
<br><br>
<pre><b><a name="indexExpression"></a> indexExpression</b>:
<a href="#<i>unaryExpression</i>"><i>unaryExpression</i></a> <font color=red><i>'['</i></font> <a href="#argumentList">argumentList</a> <font color=red><i>']'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseInExpression"></a>ExpressionNode <u>parseInExpression</u>(ExpressionNode <i>shift</i> = null);
</big></dt>
<dd>Parses an InExpression
<br><br>
<pre><b><a name="inExpression"></a> inExpression</b>:
<a href="#shiftExpression">shiftExpression</a> (<font color=red><i>'in'</i></font> | <font color=red><i>'!'</i></font> <font color=red><i>'in'</i></font>) <a href="#shiftExpression">shiftExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseInStatement"></a>InStatement <u>parseInStatement</u>();
</big></dt>
<dd>Parses an InStatement
<br><br>
<pre><b><a name="inStatement"></a> inStatement</b>:
<font color=red><i>'in'</i></font> <a href="#blockStatement">blockStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseInitialize"></a>Initialize <u>parseInitialize</u>();
</big></dt>
<dd>Parses an Initialize
<br><br>
<pre><b><a name="initialize"></a> initialize</b>:
<font color=red><i>';'</i></font>
| <a href="#statementNoCaseNoDefault">statementNoCaseNoDefault</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseInitializer"></a>Initializer <u>parseInitializer</u>();
</big></dt>
<dd>Parses an Initializer
<br><br>
<pre><b><a name="initializer"></a> initializer</b>:
<font color=red><i>'void'</i></font>
| <a href="#nonVoidInitializer">nonVoidInitializer</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseInterfaceDeclaration"></a>InterfaceDeclaration <u>parseInterfaceDeclaration</u>();
</big></dt>
<dd>Parses an InterfaceDeclaration
<br><br>
<pre><b><a name="interfaceDeclaration"></a> interfaceDeclaration</b>:
<font color=red><i>'interface'</i></font> <font color=red><i>Identifier</i></font> (<a href="#templateParameters">templateParameters</a> <a href="#constraint">constraint</a>?)? (<font color=red><i>':'</i></font> <a href="#baseClassList">baseClassList</a>)? <a href="#structBody">structBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseInvariant"></a>Invariant <u>parseInvariant</u>();
</big></dt>
<dd>Parses an Invariant
<br><br>
<pre><b><a name="invariant"></a> invariant</b>:
<font color=red><i>'invariant'</i></font> (<font color=red><i>'('</i></font> <font color=red><i>')'</i></font>)? <a href="#blockStatement">blockStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseIsExpression"></a>IsExpression <u>parseIsExpression</u>();
</big></dt>
<dd>Parses an IsExpression
<br><br>
<pre><b><a name="isExpression"></a> isExpression</b>:
<font color=red><i>'is'</i></font> <font color=red><i>'('</i></font> <a href="#type">type</a> <font color=red><i>Identifier</i></font>? ((<font color=red><i>':'</i></font> | <font color=red><i>'=='</i></font>) <a href="#typeSpecialization">typeSpecialization</a> (<font color=red><i>','</i></font> <a href="#templateParameterList">templateParameterList</a>)?)? <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseKeyValuePair"></a>KeyValuePair <u>parseKeyValuePair</u>();
</big></dt>
<dd>Parses a KeyValuePair
<br><br>
<pre><b><a name="keyValuePair"></a> keyValuePair</b>:
<a href="#assignExpression">assignExpression</a> <font color=red><i>':'</i></font> <a href="#assignExpression">assignExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseKeyValuePairs"></a>KeyValuePairs <u>parseKeyValuePairs</u>();
</big></dt>
<dd>Parses KeyValuePairs
<br><br>
<pre><b><a name="keyValuePairs"></a> keyValuePairs</b>:
<a href="#keyValuePair">keyValuePair</a> (<font color=red><i>','</i></font> <a href="#keyValuePair">keyValuePair</a>)* <font color=red><i>','</i></font>?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseLabeledStatement"></a>LabeledStatement <u>parseLabeledStatement</u>();
</big></dt>
<dd>Parses a LabeledStatement
<br><br>
<pre><b><a name="labeledStatement"></a> labeledStatement</b>:
<font color=red><i>Identifier</i></font> <font color=red><i>':'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseLambdaExpression"></a>LambdaExpression <u>parseLambdaExpression</u>();
</big></dt>
<dd>Parses a LambdaExpression
<br><br>
<pre><b><a name="lambdaExpression"></a> lambdaExpression</b>:
<font color=red><i>Identifier</i></font> <font color=red><i>'=&gt;'</i></font> <a href="#assignExpression">assignExpression</a>
| <font color=red><i>'function'</i></font> <a href="#parameters">parameters</a> <a href="#functionAttribute">functionAttribute</a>* <font color=red><i>'=&gt;'</i></font> <a href="#assignExpression">assignExpression</a>
| <font color=red><i>'delegate'</i></font> <a href="#parameters">parameters</a> <a href="#functionAttribute">functionAttribute</a>* <font color=red><i>'=&gt;'</i></font> <a href="#assignExpression">assignExpression</a>
| <a href="#parameters">parameters</a> <a href="#functionAttribute">functionAttribute</a>* <font color=red><i>'=&gt;'</i></font> <a href="#assignExpression">assignExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseLastCatch"></a>LastCatch <u>parseLastCatch</u>();
</big></dt>
<dd>Parses a LastCatch
<br><br>
<pre><b><a name="lastCatch"></a> lastCatch</b>:
<font color=red><i>'catch'</i></font> <a href="#statementNoCaseNoDefault">statementNoCaseNoDefault</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseLinkageAttribute"></a>LinkageAttribute <u>parseLinkageAttribute</u>();
</big></dt>
<dd>Parses a LinkageAttribute
<br><br>
<pre><b><a name="linkageAttribute"></a> linkageAttribute</b>:
<font color=red><i>'extern'</i></font> <font color=red><i>'('</i></font> <font color=red><i>Identifier</i></font> <font color=red><i>'++'</i></font>? <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseMemberFunctionAttribute"></a>MemberFunctionAttribute <u>parseMemberFunctionAttribute</u>();
</big></dt>
<dd>Parses a MemberFunctionAttribute
<br><br>
<pre><b><a name="memberFunctionAttribute"></a> memberFunctionAttribute</b>:
<a href="#functionAttribute">functionAttribute</a>
| <font color=red><i>'immutable'</i></font>
| <font color=red><i>'inout'</i></font>
| <font color=red><i>'shared'</i></font>
| <font color=red><i>'const'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseMixinDeclaration"></a>MixinDeclaration <u>parseMixinDeclaration</u>();
</big></dt>
<dd>Parses a MixinDeclaration
<br><br>
<pre><b><a name="mixinDeclaration"></a> mixinDeclaration</b>:
<a href="#mixinExpression">mixinExpression</a> <font color=red><i>';'</i></font>
| <a href="#templateMixinExpression">templateMixinExpression</a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseMixinExpression"></a>MixinExpression <u>parseMixinExpression</u>();
</big></dt>
<dd>Parses a MixinExpression
<br><br>
<pre><b><a name="mixinExpression"></a> mixinExpression</b>:
<font color=red><i>'mixin'</i></font> <font color=red><i>'('</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseMixinTemplateDeclaration"></a>MixinTemplateDeclaration <u>parseMixinTemplateDeclaration</u>();
</big></dt>
<dd>Parses a MixinTemplateDeclaration
<br><br>
<pre><b><a name="mixinTemplateDeclaration"></a> mixinTemplateDeclaration</b>:
<font color=red><i>'mixin'</i></font> <a href="#templateDeclaration">templateDeclaration</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseMixinTemplateName"></a>MixinTemplateName <u>parseMixinTemplateName</u>();
</big></dt>
<dd>Parses a MixinTemplateName
<br><br>
<pre><b><a name="mixinTemplateName"></a> mixinTemplateName</b>:
<a href="#symbol">symbol</a>
| <a href="#typeofExpression">typeofExpression</a> <font color=red><i>'.'</i></font> <a href="#identifierOrTemplateChain">identifierOrTemplateChain</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseModule"></a>Module <u>parseModule</u>();
</big></dt>
<dd>Parses a Module
<br><br>
<pre><b><a name="module"></a> module</b>:
<a href="#moduleDeclaration">moduleDeclaration</a>? <a href="#declaration">declaration</a>*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseModuleDeclaration"></a>ModuleDeclaration <u>parseModuleDeclaration</u>();
</big></dt>
<dd>Parses a ModuleDeclaration
<br><br>
<pre><b><a name="moduleDeclaration"></a> moduleDeclaration</b>:
<font color=red><i>'module'</i></font> <a href="#identifierChain">identifierChain</a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseMulExpression"></a>ExpressionNode <u>parseMulExpression</u>();
</big></dt>
<dd>Parses a MulExpression
<pre><b><a name="mulExpression"></a> mulExpression</b>:
<a href="#powExpression">powExpression</a>
| <a href="#mulExpression">mulExpression</a> (<font color=red><i>'*'</i></font> | <font color=red><i>'/'</i></font> | <font color=red><i>'%'</i></font>) <a href="#powExpression">powExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseNewAnonClassExpression"></a>NewAnonClassExpression <u>parseNewAnonClassExpression</u>();
</big></dt>
<dd>Parses a NewAnonClassExpression
<br><br>
<pre><b><a name="newAnonClassExpression"></a> newAnonClassExpression</b>:
<font color=red><i>'new'</i></font> <a href="#arguments">arguments</a>? <font color=red><i>'class'</i></font> <a href="#arguments">arguments</a>? <a href="#baseClassList">baseClassList</a>? <a href="#structBody">structBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseNewExpression"></a>NewExpression <u>parseNewExpression</u>();
</big></dt>
<dd>Parses a NewExpression
<br><br>
<pre><b><a name="newExpression"></a> newExpression</b>:
<font color=red><i>'new'</i></font> <a href="#type">type</a> (<font color=red><i>'['</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>']'</i></font> | <a href="#arguments">arguments</a>)?
| <a href="#newAnonClassExpression">newAnonClassExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStatementNoCaseNoDefault"></a>StatementNoCaseNoDefault <u>parseStatementNoCaseNoDefault</u>();
</big></dt>
<dd>Parses a StatementNoCaseNoDefault
<br><br>
<pre><b><a name="statementNoCaseNoDefault"></a> statementNoCaseNoDefault</b>:
<a href="#labeledStatement">labeledStatement</a>
| <a href="#blockStatement">blockStatement</a>
| <a href="#ifStatement">ifStatement</a>
| <a href="#whileStatement">whileStatement</a>
| <a href="#doStatement">doStatement</a>
| <a href="#forStatement">forStatement</a>
| <a href="#foreachStatement">foreachStatement</a>
| <a href="#switchStatement">switchStatement</a>
| <a href="#finalSwitchStatement">finalSwitchStatement</a>
| <a href="#continueStatement">continueStatement</a>
| <a href="#breakStatement">breakStatement</a>
| <a href="#returnStatement">returnStatement</a>
| <a href="#gotoStatement">gotoStatement</a>
| <a href="#withStatement">withStatement</a>
| <a href="#synchronizedStatement">synchronizedStatement</a>
| <a href="#tryStatement">tryStatement</a>
| <a href="#throwStatement">throwStatement</a>
| <a href="#scopeGuardStatement">scopeGuardStatement</a>
| <a href="#asmStatement">asmStatement</a>
| <a href="#conditionalStatement">conditionalStatement</a>
| <a href="#staticAssertStatement">staticAssertStatement</a>
| <a href="#versionSpecification">versionSpecification</a>
| <a href="#debugSpecification">debugSpecification</a>
| <a href="#expressionStatement">expressionStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseNonVoidInitializer"></a>NonVoidInitializer <u>parseNonVoidInitializer</u>();
</big></dt>
<dd>Parses a NonVoidInitializer
<br><br>
<pre><b><a name="nonVoidInitializer"></a> nonVoidInitializer</b>:
<a href="#assignExpression">assignExpression</a>
| <a href="#arrayInitializer">arrayInitializer</a>
| <a href="#structInitializer">structInitializer</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseOperands"></a>Operands <u>parseOperands</u>();
</big></dt>
<dd>Parses Operands
<br><br>
<pre><b><a name="operands"></a> operands</b>:
<a href="#asmExp">asmExp</a>+
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseOrExpression"></a>ExpressionNode <u>parseOrExpression</u>();
</big></dt>
<dd>Parses an OrExpression
<br><br>
<pre><b><a name="orExpression"></a> orExpression</b>:
<a href="#xorExpression">xorExpression</a>
| <a href="#orExpression">orExpression</a> <font color=red><i>'|'</i></font> <a href="#xorExpression">xorExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseOrOrExpression"></a>ExpressionNode <u>parseOrOrExpression</u>();
</big></dt>
<dd>Parses an OrOrExpression
<br><br>
<pre><b><a name="orOrExpression"></a> orOrExpression</b>:
<a href="#andAndExpression">andAndExpression</a>
| <a href="#orOrExpression">orOrExpression</a> <font color=red><i>'||'</i></font> <a href="#andAndExpression">andAndExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseOutStatement"></a>OutStatement <u>parseOutStatement</u>();
</big></dt>
<dd>Parses an OutStatement
<br><br>
<pre><b><a name="outStatement"></a> outStatement</b>:
<font color=red><i>'out'</i></font> (<font color=red><i>'('</i></font> <font color=red><i>Identifier</i></font> <font color=red><i>')'</i></font>)? <a href="#blockStatement">blockStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseParameter"></a>Parameter <u>parseParameter</u>();
</big></dt>
<dd>Parses a Parameter
<br><br>
<pre><b><a name="parameter"></a> parameter</b>:
<a href="#parameterAttribute">parameterAttribute</a>* <a href="#type">type</a> (<font color=red><i>Identifier</i></font>? <font color=red><i>'...'</i></font> | (<font color=red><i>Identifier</i></font>? (<font color=red><i>'='</i></font> <a href="#assignExpression">assignExpression</a>)?))?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseParameterAttribute"></a>IdType <u>parseParameterAttribute</u>(bool <i>validate</i> = false);
</big></dt>
<dd>Parses a ParameterAttribute
<br><br>
<pre><b><a name="parameterAttribute"></a> parameterAttribute</b>:
<a href="#typeConstructor">typeConstructor</a>
| <font color=red><i>'final'</i></font>
| <font color=red><i>'in'</i></font>
| <font color=red><i>'lazy'</i></font>
| <font color=red><i>'out'</i></font>
| <font color=red><i>'ref'</i></font>
| <font color=red><i>'scope'</i></font>
| <font color=red><i>'auto'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseParameters"></a>Parameters <u>parseParameters</u>();
</big></dt>
<dd>Parses Parameters
<br><br>
<pre><b><a name="parameters"></a> parameters</b>:
<font color=red><i>'('</i></font> <a href="#parameter">parameter</a> (<font color=red><i>','</i></font> <a href="#parameter">parameter</a>)* (<font color=red><i>','</i></font> <font color=red><i>'...'</i></font>)? <font color=red><i>')'</i></font>
| <font color=red><i>'('</i></font> <font color=red><i>'...'</i></font> <font color=red><i>')'</i></font>
| <font color=red><i>'('</i></font> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parsePostblit"></a>Postblit <u>parsePostblit</u>();
</big></dt>
<dd>Parses a Postblit
<br><br>
<pre><b><a name="postblit"></a> postblit</b>:
<font color=red><i>'this'</i></font> <font color=red><i>'('</i></font> <font color=red><i>'this'</i></font> <font color=red><i>')'</i></font> (<a href="#functionBody">functionBody</a> | <font color=red><i>';'</i></font>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parsePostIncDecExpression"></a>PostIncDecExpression <u>parsePostIncDecExpression</u>(UnaryExpression <i>unary</i> = null);
</big></dt>
<dd>Parses a PostIncDecExpression
<br><br>
<pre><b><a name="postIncDecExpression"></a> postIncDecExpression</b>:
<a href="#unaryExpression">unaryExpression</a> (<font color=red><i>'++'</i></font> | <font color=red><i>'--'</i></font>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parsePowExpression"></a>ExpressionNode <u>parsePowExpression</u>();
</big></dt>
<dd>Parses a PowExpression
<br><br>
<pre><b><a name="powExpression"></a> powExpression</b>:
<a href="#unaryExpression">unaryExpression</a>
| <a href="#powExpression">powExpression</a> <font color=red><i>'^^'</i></font> <a href="#unaryExpression">unaryExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parsePragmaDeclaration"></a>PragmaDeclaration <u>parsePragmaDeclaration</u>();
</big></dt>
<dd>Parses a PragmaDeclaration
<br><br>
<pre><b><a name="pragmaDeclaration"></a> pragmaDeclaration</b>:
<a href="#pragmaExpression">pragmaExpression</a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parsePragmaExpression"></a>PragmaExpression <u>parsePragmaExpression</u>();
</big></dt>
<dd>Parses a PragmaExpression
<br><br>
<pre><b><a name="pragmaExpression"></a> pragmaExpression</b>:
<a href="#'pragma'">'pragma'</a> <font color=red><i>'('</i></font> <font color=red><i>Identifier</i></font> (<font color=red><i>','</i></font> <a href="#argumentList">argumentList</a>)? <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parsePreIncDecExpression"></a>PreIncDecExpression <u>parsePreIncDecExpression</u>();
</big></dt>
<dd>Parses a PreIncDecExpression
<br><br>
<pre><b><a name="preIncDecExpression"></a> preIncDecExpression</b>:
(<font color=red><i>'++'</i></font> | <font color=red><i>'--'</i></font>) <a href="#unaryExpression">unaryExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parsePrimaryExpression"></a>PrimaryExpression <u>parsePrimaryExpression</u>();
</big></dt>
<dd>Parses a PrimaryExpression
<br><br>
<pre><b><a name="primaryExpression"></a> primaryExpression</b>:
<a href="#identifierOrTemplateInstance">identifierOrTemplateInstance</a>
| <font color=red><i>'.'</i></font> <a href="#identifierOrTemplateInstance">identifierOrTemplateInstance</a>
| <a href="#basicType">basicType</a> <font color=red><i>'.'</i></font> <font color=red><i>Identifier</i></font>
| <a href="#typeofExpression">typeofExpression</a>
| <a href="#typeidExpression">typeidExpression</a>
| <a href="#vector">vector</a>
| <a href="#arrayLiteral">arrayLiteral</a>
| <a href="#assocArrayLiteral">assocArrayLiteral</a>
| <font color=red><i>'('</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font>
| <a href="#isExpression">isExpression</a>
| <a href="#lambdaExpression">lambdaExpression</a>
| <a href="#functionLiteralExpression">functionLiteralExpression</a>
| <a href="#traitsExpression">traitsExpression</a>
| <a href="#mixinExpression">mixinExpression</a>
| <a href="#importExpression">importExpression</a>
| <font color=red><i>'$'</i></font>
| <font color=red><i>'this'</i></font>
| <font color=red><i>'super'</i></font>
| <font color=red><i>'null'</i></font>
| <font color=red><i>'true'</i></font>
| <font color=red><i>'false'</i></font>
| <font color=red><i>'__DATE__'</i></font>
| <font color=red><i>'__TIME__'</i></font>
| <font color=red><i>'__TIMESTAMP__'</i></font>
| <font color=red><i>'__VENDOR__'</i></font>
| <font color=red><i>'__VERSION__'</i></font>
| <font color=red><i>'__FILE__'</i></font>
| <font color=red><i>'__LINE__'</i></font>
| <font color=red><i>'__MODULE__'</i></font>
| <font color=red><i>'__FUNCTION__'</i></font>
| <font color=red><i>'__PRETTY_FUNCTION__'</i></font>
| <font color=red><i>IntegerLiteral</i></font>
| <font color=red><i>FloatLiteral</i></font>
| <font color=red><i>StringLiteral</i></font>+
| <font color=red><i>CharacterLiteral</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseRegister"></a>Register <u>parseRegister</u>();
</big></dt>
<dd>Parses a Register
<br><br>
<pre><b><a name="register"></a> register</b>:
<font color=red><i>Identifier</i></font>
| <font color=red><i>Identifier</i></font> <font color=red><i>'('</i></font> <font color=red><i>IntegerLiteral</i></font> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseRelExpression"></a>ExpressionNode <u>parseRelExpression</u>(ExpressionNode <i>shift</i>);
</big></dt>
<dd>Parses a RelExpression
<br><br>
<pre><b><a name="relExpression"></a> relExpression</b>:
<a href="#shiftExpression">shiftExpression</a>
| <a href="#relExpression">relExpression</a> <a href="#relOperator">relOperator</a> <a href="#shiftExpression">shiftExpression</a>
;
<b><a name="relOperator"></a> relOperator</b>:
<font color=red><i>'&lt;'</i></font>
| <font color=red><i>'&lt;='</i></font>
| <font color=red><i>'&gt;'</i></font>
| <font color=red><i>'&gt;='</i></font>
| <font color=red><i>'!&lt;&gt;='</i></font>
| <font color=red><i>'!&lt;&gt;'</i></font>
| <font color=red><i>'&lt;&gt;'</i></font>
| <font color=red><i>'&lt;&gt;='</i></font>
| <font color=red><i>'!&gt;'</i></font>
| <font color=red><i>'!&gt;='</i></font>
| <font color=red><i>'!&lt;'</i></font>
| <font color=red><i>'!&lt;='</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseReturnStatement"></a>ReturnStatement <u>parseReturnStatement</u>();
</big></dt>
<dd>Parses a ReturnStatement
<br><br>
<pre><b><a name="returnStatement"></a> returnStatement</b>:
<font color=red><i>'return'</i></font> <a href="#expression">expression</a>? <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseScopeGuardStatement"></a>ScopeGuardStatement <u>parseScopeGuardStatement</u>();
</big></dt>
<dd>Parses a ScopeGuardStatement
<br><br>
<pre><b><a name="scopeGuardStatement"></a> scopeGuardStatement</b>:
<font color=red><i>'scope'</i></font> <font color=red><i>'('</i></font> <font color=red><i>Identifier</i></font> <font color=red><i>')'</i></font> <a href="#statementNoCaseNoDefault">statementNoCaseNoDefault</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseSharedStaticConstructor"></a>SharedStaticConstructor <u>parseSharedStaticConstructor</u>();
</big></dt>
<dd>Parses a SharedStaticConstructor
<br><br>
<pre><b><a name="sharedStaticConstructor"></a> sharedStaticConstructor</b>:
<font color=red><i>'shared'</i></font> <font color=red><i>'static'</i></font> <font color=red><i>'this'</i></font> <font color=red><i>'('</i></font> <font color=red><i>')'</i></font> <a href="#functionBody">functionBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseSharedStaticDestructor"></a>SharedStaticDestructor <u>parseSharedStaticDestructor</u>();
</big></dt>
<dd>Parses a SharedStaticDestructor
<br><br>
<pre><b><a name="sharedStaticDestructor"></a> sharedStaticDestructor</b>:
<font color=red><i>'shared'</i></font> <font color=red><i>'static'</i></font> <font color=red><i>'~'</i></font> <font color=red><i>'this'</i></font> <font color=red><i>'('</i></font> <font color=red><i>')'</i></font> <a href="#functionBody">functionBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseShiftExpression"></a>ExpressionNode <u>parseShiftExpression</u>();
</big></dt>
<dd>Parses a ShiftExpression
<br><br>
<pre><b><a name="shiftExpression"></a> shiftExpression</b>:
<a href="#addExpression">addExpression</a>
| <a href="#shiftExpression">shiftExpression</a> (<font color=red><i>'&lt;&lt;'</i></font> | <font color=red><i>'&gt;&gt;'</i></font> | <font color=red><i>'&gt;&gt;&gt;'</i></font>) <a href="#addExpression">addExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseSingleImport"></a>SingleImport <u>parseSingleImport</u>();
</big></dt>
<dd>Parses a SingleImport
<br><br>
<pre><b><a name="singleImport"></a> singleImport</b>:
(<font color=red><i>Identifier</i></font> <font color=red><i>'='</i></font>)? <a href="#identifierChain">identifierChain</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseSliceExpression"></a>SliceExpression <u>parseSliceExpression</u>(UnaryExpression <i>unary</i> = null);
</big></dt>
<dd>Parses a SliceExpression
<br><br>
<pre><b><a name="sliceExpression"></a> sliceExpression</b>:
<a href="#unaryExpression">unaryExpression</a> <font color=red><i>'['</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>'..'</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>']'</i></font>
| <a href="#unaryExpression">unaryExpression</a> <font color=red><i>'['</i></font> <font color=red><i>']'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStatement"></a>Statement <u>parseStatement</u>();
</big></dt>
<dd>Parses a Statement
<br><br>
<pre><b><a name="statement"></a> statement</b>:
<a href="#statementNoCaseNoDefault">statementNoCaseNoDefault</a>
| <a href="#caseStatement">caseStatement</a>
| <a href="#caseRangeStatement">caseRangeStatement</a>
| <a href="#defaultStatement">defaultStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStaticAssertDeclaration"></a>StaticAssertDeclaration <u>parseStaticAssertDeclaration</u>();
</big></dt>
<dd>Parses a StaticAssertDeclaration
<br><br>
<pre><b><a name="staticAssertDeclaration"></a> staticAssertDeclaration</b>:
<a href="#staticAssertStatement">staticAssertStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStaticAssertStatement"></a>StaticAssertStatement <u>parseStaticAssertStatement</u>();
</big></dt>
<dd>Parses a StaticAssertStatement
<br><br>
<pre><b><a name="staticAssertStatement"></a> staticAssertStatement</b>:
<font color=red><i>'static'</i></font> <a href="#assertExpression">assertExpression</a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStaticConstructor"></a>StaticConstructor <u>parseStaticConstructor</u>();
</big></dt>
<dd>Parses a StaticConstructor
<br><br>
<pre><b><a name="staticConstructor"></a> staticConstructor</b>:
<font color=red><i>'static'</i></font> <font color=red><i>'this'</i></font> <font color=red><i>'('</i></font> <font color=red><i>')'</i></font> <a href="#functionBody">functionBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStaticDestructor"></a>StaticDestructor <u>parseStaticDestructor</u>();
</big></dt>
<dd>Parses a StaticDestructor
<br><br>
<pre><b><a name="staticDestructor"></a> staticDestructor</b>:
<font color=red><i>'static'</i></font> <font color=red><i>'~'</i></font> <font color=red><i>'this'</i></font> <font color=red><i>'('</i></font> <font color=red><i>')'</i></font> <a href="#functionBody">functionBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStaticIfCondition"></a>StaticIfCondition <u>parseStaticIfCondition</u>();
</big></dt>
<dd>Parses an StaticIfCondition
<br><br>
<pre><b><a name="staticIfCondition"></a> staticIfCondition</b>:
<font color=red><i>'static'</i></font> <font color=red><i>'if'</i></font> <font color=red><i>'('</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStorageClass"></a>StorageClass <u>parseStorageClass</u>();
</big></dt>
<dd>Parses an StorageClass
<br><br>
<pre><b><a name="storageClass"></a> storageClass</b>:
<a href="#atAttribute">atAttribute</a>
| <a href="#typeConstructor">typeConstructor</a>
| <a href="#deprecated">deprecated</a>
| <font color=red><i>'abstract'</i></font>
| <font color=red><i>'auto'</i></font>
| <font color=red><i>'enum'</i></font>
| <font color=red><i>'extern'</i></font>
| <font color=red><i>'final'</i></font>
| <font color=red><i>'nothrow'</i></font>
| <font color=red><i>'override'</i></font>
| <font color=red><i>'pure'</i></font>
| <font color=red><i>'ref'</i></font>
| <font color=red><i>'__gshared'</i></font>
| <font color=red><i>'scope'</i></font>
| <font color=red><i>'static'</i></font>
| <font color=red><i>'synchronized'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStructBody"></a>StructBody <u>parseStructBody</u>();
</big></dt>
<dd>Parses a StructBody
<br><br>
<pre><b><a name="structBody"></a> structBody</b>:
<font color=red><i>'{'</i></font> <a href="#declaration">declaration</a>* <font color=red><i>'}'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStructDeclaration"></a>StructDeclaration <u>parseStructDeclaration</u>();
</big></dt>
<dd>Parses a StructDeclaration
<br><br>
<pre><b><a name="structDeclaration"></a> structDeclaration</b>:
<font color=red><i>'struct'</i></font> <font color=red><i>Identifier</i></font>? (<a href="#templateParameters">templateParameters</a> <a href="#constraint">constraint</a>? <a href="#structBody">structBody</a> | (<a href="#structBody">structBody</a> | <font color=red><i>';'</i></font>))
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStructInitializer"></a>StructInitializer <u>parseStructInitializer</u>();
</big></dt>
<dd>Parses an StructInitializer
<br><br>
<pre><b><a name="structInitializer"></a> structInitializer</b>:
<font color=red><i>'{'</i></font> <a href="#structMemberInitializers">structMemberInitializers</a>? <font color=red><i>'}'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStructMemberInitializer"></a>StructMemberInitializer <u>parseStructMemberInitializer</u>();
</big></dt>
<dd>Parses a StructMemberInitializer
<br><br>
<pre><b><a name="structMemberInitializer"></a> structMemberInitializer</b>:
(<font color=red><i>Identifier</i></font> <font color=red><i>':'</i></font>)? <a href="#nonVoidInitializer">nonVoidInitializer</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseStructMemberInitializers"></a>StructMemberInitializers <u>parseStructMemberInitializers</u>();
</big></dt>
<dd>Parses StructMemberInitializers
<br><br>
<pre><b><a name="structMemberInitializers"></a> structMemberInitializers</b>:
<a href="#structMemberInitializer">structMemberInitializer</a> (<font color=red><i>','</i></font> <a href="#structMemberInitializer">structMemberInitializer</a>?)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseSwitchStatement"></a>SwitchStatement <u>parseSwitchStatement</u>();
</big></dt>
<dd>Parses a SwitchStatement
<br><br>
<pre><b><a name="switchStatement"></a> switchStatement</b>:
<font color=red><i>'switch'</i></font> <font color=red><i>'('</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font> <a href="#statement">statement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseSymbol"></a>Symbol <u>parseSymbol</u>();
</big></dt>
<dd>Parses a Symbol
<br><br>
<pre><b><a name="symbol"></a> symbol</b>:
<font color=red><i>'.'</i></font>? <a href="#identifierOrTemplateChain">identifierOrTemplateChain</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseSynchronizedStatement"></a>SynchronizedStatement <u>parseSynchronizedStatement</u>();
</big></dt>
<dd>Parses a SynchronizedStatement
<br><br>
<pre><b><a name="synchronizedStatement"></a> synchronizedStatement</b>:
<font color=red><i>'synchronized'</i></font> (<font color=red><i>'('</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font>)? <a href="#statementNoCaseNoDefault">statementNoCaseNoDefault</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateAliasParameter"></a>TemplateAliasParameter <u>parseTemplateAliasParameter</u>();
</big></dt>
<dd>Parses a TemplateAliasParameter
<br><br>
<pre><b><a name="templateAliasParameter"></a> templateAliasParameter</b>:
<font color=red><i>'alias'</i></font> <a href="#type">type</a>? <font color=red><i>Identifier</i></font> (<font color=red><i>':'</i></font> (<a href="#type">type</a> | <a href="#assignExpression">assignExpression</a>))? (<font color=red><i>'='</i></font> (<a href="#type">type</a> | <a href="#assignExpression">assignExpression</a>))?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateArgument"></a>TemplateArgument <u>parseTemplateArgument</u>();
</big></dt>
<dd>Parses a TemplateArgument
<br><br>
<pre><b><a name="templateArgument"></a> templateArgument</b>:
<a href="#type">type</a>
| <a href="#assignExpression">assignExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateArgumentList"></a>TemplateArgumentList <u>parseTemplateArgumentList</u>();
</big></dt>
<dd>Parses a TemplateArgumentList
<br><br>
<pre><b><a name="templateArgumentList"></a> templateArgumentList</b>:
<a href="#templateArgument">templateArgument</a> (<font color=red><i>','</i></font> <a href="#templateArgument">templateArgument</a>?)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateArguments"></a>TemplateArguments <u>parseTemplateArguments</u>();
</big></dt>
<dd>Parses TemplateArguments
<br><br>
<pre><b><a name="templateArguments"></a> templateArguments</b>:
<font color=red><i>'!'</i></font> (<font color=red><i>'('</i></font> <a href="#templateArgumentList">templateArgumentList</a>? <font color=red><i>')'</i></font> | <a href="#templateSingleArgument">templateSingleArgument</a>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateDeclaration"></a>TemplateDeclaration <u>parseTemplateDeclaration</u>();
</big></dt>
<dd>Parses a TemplateDeclaration
<br><br>
<pre><b><a name="templateDeclaration"></a> templateDeclaration</b>:
<font color=red><i>'template'</i></font> <font color=red><i>Identifier</i></font> <a href="#templateParameters">templateParameters</a> <a href="#constraint">constraint</a>? <font color=red><i>'{'</i></font> <a href="#declaration">declaration</a>* <font color=red><i>'}'</i></font>
| <a href="#eponymousTemplateDeclaration">eponymousTemplateDeclaration</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseEponymousTemplateDeclaration"></a>EponymousTemplateDeclaration <u>parseEponymousTemplateDeclaration</u>();
</big></dt>
<dd>Parses an EponymousTemplateDeclaration
<br><br>
<pre><b><a name="eponymousTemplateDeclaration"></a> eponymousTemplateDeclaration</b>:
<font color=red><i>'enum'</i></font> <font color=red><i>Identifier</i></font> <a href="#templateParameters">templateParameters</a> <font color=red><i>'='</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateInstance"></a>TemplateInstance <u>parseTemplateInstance</u>();
</big></dt>
<dd>Parses a TemplateInstance
<br><br>
<pre><b><a name="templateInstance"></a> templateInstance</b>:
<font color=red><i>Identifier</i></font> <a href="#templateArguments">templateArguments</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateMixinExpression"></a>TemplateMixinExpression <u>parseTemplateMixinExpression</u>();
</big></dt>
<dd>Parses a TemplateMixinExpression
<br><br>
<pre><b><a name="templateMixinExpression"></a> templateMixinExpression</b>:
<font color=red><i>'mixin'</i></font> <a href="#mixinTemplateName">mixinTemplateName</a> <a href="#templateArguments">templateArguments</a>? <font color=red><i>Identifier</i></font>?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateParameter"></a>TemplateParameter <u>parseTemplateParameter</u>();
</big></dt>
<dd>Parses a TemplateParameter
<br><br>
<pre><b><a name="templateParameter"></a> templateParameter</b>:
<a href="#templateTypeParameter">templateTypeParameter</a>
| <a href="#templateValueParameter">templateValueParameter</a>
| <a href="#templateAliasParameter">templateAliasParameter</a>
| <a href="#templateTupleParameter">templateTupleParameter</a>
| <a href="#templateThisParameter">templateThisParameter</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateParameterList"></a>TemplateParameterList <u>parseTemplateParameterList</u>();
</big></dt>
<dd>Parses an TemplateParameterList
<br><br>
<pre><b><a name="templateParameterList"></a> templateParameterList</b>:
<a href="#templateParameter">templateParameter</a> (<font color=red><i>','</i></font> <a href="#templateParameter">templateParameter</a>?)*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateParameters"></a>TemplateParameters <u>parseTemplateParameters</u>();
</big></dt>
<dd>Parses TemplateParameters
<br><br>
<pre><b><a name="templateParameters"></a> templateParameters</b>:
<font color=red><i>'('</i></font> <a href="#templateParameterList">templateParameterList</a>? <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateSingleArgument"></a>TemplateSingleArgument <u>parseTemplateSingleArgument</u>();
</big></dt>
<dd>Parses a TemplateSingleArgument
<br><br>
<pre><b><a name="templateSingleArgument"></a> templateSingleArgument</b>:
<a href="#builtinType">builtinType</a>
| <font color=red><i>Identifier</i></font>
| <font color=red><i>CharacterLiteral</i></font>
| <font color=red><i>StringLiteral</i></font>
| <font color=red><i>IntegerLiteral</i></font>
| <font color=red><i>FloatLiteral</i></font>
| <font color=red><i>'true'</i></font>
| <font color=red><i>'false'</i></font>
| <font color=red><i>'null'</i></font>
| <font color=red><i>'this'</i></font>
| <font color=red><i>'__DATE__'</i></font>
| <font color=red><i>'__TIME__'</i></font>
| <font color=red><i>'__TIMESTAMP__'</i></font>
| <font color=red><i>'__VENDOR__'</i></font>
| <font color=red><i>'__VERSION__'</i></font>
| <font color=red><i>'__FILE__'</i></font>
| <font color=red><i>'__LINE__'</i></font>
| <font color=red><i>'__MODULE__'</i></font>
| <font color=red><i>'__FUNCTION__'</i></font>
| <font color=red><i>'__PRETTY_FUNCTION__'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateThisParameter"></a>TemplateThisParameter <u>parseTemplateThisParameter</u>();
</big></dt>
<dd>Parses a TemplateThisParameter
<br><br>
<pre><b><a name="templateThisParameter"></a> templateThisParameter</b>:
<font color=red><i>'this'</i></font> <a href="#templateTypeParameter">templateTypeParameter</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateTupleParameter"></a>TemplateTupleParameter <u>parseTemplateTupleParameter</u>();
</big></dt>
<dd>Parses an TemplateTupleParameter
<br><br>
<pre><b><a name="templateTupleParameter"></a> templateTupleParameter</b>:
<font color=red><i>Identifier</i></font> <font color=red><i>'...'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateTypeParameter"></a>TemplateTypeParameter <u>parseTemplateTypeParameter</u>();
</big></dt>
<dd>Parses a TemplateTypeParameter
<br><br>
<pre><b><a name="templateTypeParameter"></a> templateTypeParameter</b>:
<font color=red><i>Identifier</i></font> (<font color=red><i>':'</i></font> <a href="#type">type</a>)? (<font color=red><i>'='</i></font> <a href="#type">type</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateValueParameter"></a>TemplateValueParameter <u>parseTemplateValueParameter</u>();
</big></dt>
<dd>Parses a TemplateValueParameter
<br><br>
<pre><b><a name="templateValueParameter"></a> templateValueParameter</b>:
<a href="#type">type</a> <font color=red><i>Identifier</i></font> (<font color=red><i>':'</i></font> <a href="#expression">expression</a>)? <a href="#templateValueParameterDefault">templateValueParameterDefault</a>?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTemplateValueParameterDefault"></a>TemplateValueParameterDefault <u>parseTemplateValueParameterDefault</u>();
</big></dt>
<dd>Parses a TemplateValueParameterDefault
<br><br>
<pre><b><a name="templateValueParameterDefault"></a> templateValueParameterDefault</b>:
<font color=red><i>'='</i></font> (<font color=red><i>'__FILE__'</i></font> | <font color=red><i>'__MODULE__'</i></font> | <font color=red><i>'__LINE__'</i></font> | <font color=red><i>'__FUNCTION__'</i></font> | <font color=red><i>'__PRETTY_FUNCTION__'</i></font> | <a href="#assignExpression">assignExpression</a>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTernaryExpression"></a>ExpressionNode <u>parseTernaryExpression</u>();
</big></dt>
<dd>Parses a TernaryExpression
<br><br>
<pre><b><a name="ternaryExpression"></a> ternaryExpression</b>:
<a href="#orOrExpression">orOrExpression</a> (<font color=red><i>'?'</i></font> <a href="#expression">expression</a> <font color=red><i>':'</i></font> <a href="#ternaryExpression">ternaryExpression</a>)?
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseThrowStatement"></a>ThrowStatement <u>parseThrowStatement</u>();
</big></dt>
<dd>Parses a ThrowStatement
<br><br>
<pre><b><a name="throwStatement"></a> throwStatement</b>:
<font color=red><i>'throw'</i></font> <a href="#expression">expression</a> <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTraitsExpression"></a>TraitsExpression <u>parseTraitsExpression</u>();
</big></dt>
<dd>Parses an TraitsExpression
<br><br>
<pre><b><a name="traitsExpression"></a> traitsExpression</b>:
<font color=red><i>'__traits'</i></font> <font color=red><i>'('</i></font> <font color=red><i>Identifier</i></font> <font color=red><i>','</i></font> <a href="#TemplateArgumentList">TemplateArgumentList</a> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTryStatement"></a>TryStatement <u>parseTryStatement</u>();
</big></dt>
<dd>Parses a TryStatement
<br><br>
<pre><b><a name="tryStatement"></a> tryStatement</b>:
<font color=red><i>'try'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a> (<a href="#catches">catches</a> | <a href="#catches">catches</a> <a href="#finally">finally</a> | <a href="#finally">finally</a>)
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseType"></a>Type <u>parseType</u>();
</big></dt>
<dd>Parses a Type
<br><br>
<pre><b><a name="type"></a> type</b>:
<a href="#attribute">attribute</a>? <a href="#type2">type2</a> <a href="#typeSuffix">typeSuffix</a>*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseType2"></a>Type2 <u>parseType2</u>();
</big></dt>
<dd>Parses a Type2
<br><br>
<pre><b><a name="type2"></a> type2</b>:
<a href="#builtinType">builtinType</a>
| <a href="#symbol">symbol</a>
| <a href="#typeofExpression">typeofExpression</a> (<font color=red><i>'.'</i></font> <a href="#identifierOrTemplateChain">identifierOrTemplateChain</a>)?
| <a href="#typeConstructor">typeConstructor</a> <font color=red><i>'('</i></font> <a href="#type">type</a> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTypeConstructor"></a>IdType <u>parseTypeConstructor</u>(bool <i>validate</i> = true);
</big></dt>
<dd>Parses a TypeConstructor
<br><br>
<pre><b><a name="typeConstructor"></a> typeConstructor</b>:
<font color=red><i>'const'</i></font>
| <font color=red><i>'immutable'</i></font>
| <font color=red><i>'inout'</i></font>
| <font color=red><i>'shared'</i></font>
| <font color=red><i>'scope'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTypeConstructors"></a>IdType[] <u>parseTypeConstructors</u>();
</big></dt>
<dd>Parses TypeConstructors
<br><br>
<pre><b><a name="typeConstructors"></a> typeConstructors</b>:
<a href="#typeConstructor">typeConstructor</a>+
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTypeSpecialization"></a>TypeSpecialization <u>parseTypeSpecialization</u>();
</big></dt>
<dd>Parses a TypeSpecialization
<br><br>
<pre><b><a name="typeSpecialization"></a> typeSpecialization</b>:
<a href="#type">type</a>
| <font color=red><i>'struct'</i></font>
| <font color=red><i>'union'</i></font>
| <font color=red><i>'class'</i></font>
| <font color=red><i>'interface'</i></font>
| <font color=red><i>'enum'</i></font>
| <font color=red><i>'function'</i></font>
| <font color=red><i>'delegate'</i></font>
| <font color=red><i>'super'</i></font>
| <font color=red><i>'const'</i></font>
| <font color=red><i>'immutable'</i></font>
| <font color=red><i>'inout'</i></font>
| <font color=red><i>'shared'</i></font>
| <font color=red><i>'return'</i></font>
| <font color=red><i>'typedef'</i></font>
| <font color=red><i>'__parameters'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTypeSuffix"></a>TypeSuffix <u>parseTypeSuffix</u>();
</big></dt>
<dd>Parses a TypeSuffix
<br><br>
<pre><b><a name="typeSuffix"></a> typeSuffix</b>:
<font color=red><i>'*'</i></font>
| <font color=red><i>'['</i></font> <a href="#type">type</a>? <font color=red><i>']'</i></font>
| <font color=red><i>'['</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>']'</i></font>
| <font color=red><i>'['</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>'..'</i></font> <a href="#assignExpression">assignExpression</a> <font color=red><i>']'</i></font>
| (<font color=red><i>'delegate'</i></font> | <font color=red><i>'function'</i></font>) <a href="#parameters">parameters</a> <a href="#memberFunctionAttribute">memberFunctionAttribute</a>*
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTypeidExpression"></a>TypeidExpression <u>parseTypeidExpression</u>();
</big></dt>
<dd>Parses a TypeidExpression
<br><br>
<pre><b><a name="typeidExpression"></a> typeidExpression</b>:
<font color=red><i>'typeid'</i></font> <font color=red><i>'('</i></font> (<a href="#type">type</a> | <a href="#expression">expression</a>) <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseTypeofExpression"></a>TypeofExpression <u>parseTypeofExpression</u>();
</big></dt>
<dd>Parses a TypeofExpression
<br><br>
<pre><b><a name="typeofExpression"></a> typeofExpression</b>:
<font color=red><i>'typeof'</i></font> <font color=red><i>'('</i></font> (<a href="#expression">expression</a> | <font color=red><i>'return'</i></font>) <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseUnaryExpression"></a>UnaryExpression <u>parseUnaryExpression</u>();
</big></dt>
<dd>Parses a UnaryExpression
<br><br>
<pre><b><a name="unaryExpression"></a> unaryExpression</b>:
<a href="#primaryExpression">primaryExpression</a>
| <font color=red><i>'&amp;'</i></font> <a href="#unaryExpression">unaryExpression</a>
| <font color=red><i>'!'</i></font> <a href="#unaryExpression">unaryExpression</a>
| <font color=red><i>'*'</i></font> <a href="#unaryExpression">unaryExpression</a>
| <font color=red><i>'+'</i></font> <a href="#unaryExpression">unaryExpression</a>
| <font color=red><i>'-'</i></font> <a href="#unaryExpression">unaryExpression</a>
| <font color=red><i>'~'</i></font> <a href="#unaryExpression">unaryExpression</a>
| <font color=red><i>'++'</i></font> <a href="#unaryExpression">unaryExpression</a>
| <font color=red><i>'--'</i></font> <a href="#unaryExpression">unaryExpression</a>
| <a href="#newExpression">newExpression</a>
| <a href="#deleteExpression">deleteExpression</a>
| <a href="#castExpression">castExpression</a>
| <a href="#assertExpression">assertExpression</a>
| <a href="#functionCallExpression">functionCallExpression</a>
| <a href="#sliceExpression">sliceExpression</a>
| <a href="#indexExpression">indexExpression</a>
| <font color=red><i>'$LPAREN'</i></font> <a href="#type">type</a> <font color=red><i>'$RPAREN'</i></font> <font color=red><i>'.'</i></font> <a href="#identifierOrTemplateInstance">identifierOrTemplateInstance</a>
| <a href="#unaryExpression">unaryExpression</a> <font color=red><i>'.'</i></font> <a href="#identifierOrTemplateInstance">identifierOrTemplateInstance</a>
| <a href="#unaryExpression">unaryExpression</a> <font color=red><i>'--'</i></font>
| <a href="#unaryExpression">unaryExpression</a> <font color=red><i>'++'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseUnionDeclaration"></a>UnionDeclaration <u>parseUnionDeclaration</u>();
</big></dt>
<dd>Parses an UnionDeclaration
<br><br>
<pre><b><a name="unionDeclaration"></a> unionDeclaration</b>:
<font color=red><i>'union'</i></font> <font color=red><i>Identifier</i></font> <a href="#templateParameters">templateParameters</a> <a href="#constraint">constraint</a>? <a href="#structBody">structBody</a>
| <font color=red><i>'union'</i></font> <font color=red><i>Identifier</i></font> (<a href="#structBody">structBody</a> | <font color=red><i>';'</i></font>)
| <font color=red><i>'union'</i></font> <a href="#structBody">structBody</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseUnittest"></a>Unittest <u>parseUnittest</u>();
</big></dt>
<dd>Parses a Unittest
<br><br>
<pre><b><a name="unittest"></a> unittest</b>:
<font color=red><i>'unittest'</i></font> <a href="#blockStatement">blockStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseVariableDeclaration"></a>VariableDeclaration <u>parseVariableDeclaration</u>(Type <i>type</i> = null, bool <i>isAuto</i> = false);
</big></dt>
<dd>Parses a VariableDeclaration
<br><br>
<pre><b><a name="variableDeclaration"></a> variableDeclaration</b>:
<a href="#type">type</a> <a href="#declarator">declarator</a> (<font color=red><i>','</i></font> <a href="#declarator">declarator</a>)* <font color=red><i>';'</i></font>
| <a href="#autoDeclaration">autoDeclaration</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseVector"></a>Vector <u>parseVector</u>();
</big></dt>
<dd>Parses a Vector
<br><br>
<pre><b><a name="vector"></a> vector</b>:
<font color=red><i>'__vector'</i></font> <font color=red><i>'('</i></font> <a href="#type">type</a> <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseVersionCondition"></a>VersionCondition <u>parseVersionCondition</u>();
</big></dt>
<dd>Parses a VersionCondition
<br><br>
<pre><b><a name="versionCondition"></a> versionCondition</b>:
<font color=red><i>'version'</i></font> <font color=red><i>'('</i></font> (<font color=red><i>IntegerLiteral</i></font> | <font color=red><i>Identifier</i></font> | <font color=red><i>'unittest'</i></font> | <font color=red><i>'assert'</i></font>) <font color=red><i>')'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseVersionSpecification"></a>VersionSpecification <u>parseVersionSpecification</u>();
</big></dt>
<dd>Parses a VersionSpecification
<br><br>
<pre><b><a name="versionSpecification"></a> versionSpecification</b>:
<font color=red><i>'version'</i></font> <font color=red><i>'='</i></font> (<font color=red><i>Identifier</i></font> | <font color=red><i>IntegerLiteral</i></font>) <font color=red><i>';'</i></font>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseWhileStatement"></a>WhileStatement <u>parseWhileStatement</u>();
</big></dt>
<dd>Parses a WhileStatement
<br><br>
<pre><b><a name="whileStatement"></a> whileStatement</b>:
<font color=red><i>'while'</i></font> <font color=red><i>'('</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font> <a href="#declarationOrStatement">declarationOrStatement</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseWithStatement"></a>WithStatement <u>parseWithStatement</u>();
</big></dt>
<dd>Parses a WithStatement
<br><br>
<pre><b><a name="withStatement"></a> withStatement</b>:
<font color=red><i>'with'</i></font> <font color=red><i>'('</i></font> <a href="#expression">expression</a> <font color=red><i>')'</i></font> <a href="#statementNoCaseNoDefault">statementNoCaseNoDefault</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.parseXorExpression"></a>ExpressionNode <u>parseXorExpression</u>();
</big></dt>
<dd>Parses an XorExpression
<br><br>
<pre><b><a name="xorExpression"></a> xorExpression</b>:
<a href="#andExpression">andExpression</a>
| <a href="#xorExpression">xorExpression</a> <font color=red><i>'^'</i></font> <a href="#andExpression">andExpression</a>
;</pre><br><br>
</dd>
<dt><big><a name="Parser.errorCount"></a>uint <u>errorCount</u>;
</big></dt>
<dd>Current error count<br><br>
</dd>
<dt><big><a name="Parser.warningCount"></a>uint <u>warningCount</u>;
</big></dt>
<dd>Current warning count<br><br>
</dd>
<dt><big><a name="Parser.fileName"></a>string <u>fileName</u>;
</big></dt>
<dd>Name used when reporting warnings and errors<br><br>
</dd>
<dt><big><a name="Parser.messageFunction"></a>void function(string, size_t, size_t, string, bool) <u>messageFunction</u>;
</big></dt>
<dd>Function that is called when a warning or error is encountered.
The parameters are the file name, line number, column number,
and the error or warning message.<br><br>
</dd>
<dt><big><a name="Parser.expect"></a>protected const(Token)* <u>expect</u>(IdType <i>type</i>);
</big></dt>
<dd>Returns a token of the specified <i>type</i> if it was the next token, otherwise
calls the error function and returns <b>null</b>.<br><br>
</dd>
<dt><big><a name="Parser.current"></a>protected const @property Token <u>current</u>();
</big></dt>
<dd><b>Returns:</b><br>
the current token<br><br>
</dd>
<dt><big><a name="Parser.advance"></a>protected Token <u>advance</u>();
</big></dt>
<dd>Advances to the next token and returns the current token<br><br>
</dd>
<dt><big><a name="Parser.currentIs"></a>protected const bool <u>currentIs</u>(IdType <i>type</i>);
</big></dt>
<dd><b>Returns:</b><br>
<b>true</b> if the current token has the given <i>type</i><br><br>
</dd>
<dt><big><a name="Parser.currentIsOneOf"></a>protected const bool <u>currentIsOneOf</u>(IdType[] <i>types</i>...);
</big></dt>
<dd><b>Returns:</b><br>
<b>true</b> if the current token is one of the given <i>types</i><br><br>
</dd>
<dt><big><a name="Parser.moreTokens"></a>protected const nothrow bool <u>moreTokens</u>();
</big></dt>
<dd><b>Returns:</b><br>
<b>true</b> if there are more tokens<br><br>
</dd>
</dl>
</dd>
</dl>
<hr><small>Page generated by <a href="http://dlang.org/ddoc.html">Ddoc</a>. </small>
</body></html>