This commit is contained in:
Hackerpilot 2014-01-07 00:04:14 +00:00
parent 84969961ea
commit a1ac849141
3 changed files with 20 additions and 20 deletions

View File

@ -485,7 +485,7 @@ class XMLPrinter : ASTVisitor
visit(forStatement.increment);
output.writeln("</increment>");
}
visit(forStatement.statementNoCaseNoDefault);
visit(forStatement.declarationOrStatement);
output.writeln("</forStatement>");
}

View File

@ -1203,13 +1203,13 @@ class ForStatement : ASTNode
public:
override void accept(ASTVisitor visitor)
{
mixin (visitIfNotNull!(declarationOrStatement, test, increment,
statementNoCaseNoDefault));
mixin (visitIfNotNull!(initialization, test, increment,
declarationOrStatement));
}
/** */ DeclarationOrStatement declarationOrStatement;
/** */ DeclarationOrStatement initialization;
/** */ ExpressionStatement test;
/** */ Expression increment;
/** */ StatementNoCaseNoDefault statementNoCaseNoDefault;
/** */ DeclarationOrStatement declarationOrStatement;
/** */ size_t startIndex;
}
@ -2760,11 +2760,11 @@ class WhileStatement : ASTNode
public:
override void accept(ASTVisitor visitor)
{
mixin (visitIfNotNull!(expression, statementNoCaseNoDefault));
mixin (visitIfNotNull!(expression, declarationOrStatement));
}
/** */ Expression expression;
/** */ StatementNoCaseNoDefault statementNoCaseNoDefault;
/** */ DeclarationOrStatement declarationOrStatement;
/** */ size_t startIndex;
}

View File

@ -2166,7 +2166,7 @@ class ClassFour(A, B) if (someTest()) : Super {}}c;
* Parses a ForStatement
*
* $(GRAMMAR $(RULEDEF forStatement):
* $(LITERAL 'for') $(LITERAL '$(LPAREN)') $(RULE declarationOrStatement) $(RULE expression)? $(LITERAL ';') $(RULE expression)? $(LITERAL '$(RPAREN)') $(RULE statementNoCaseNoDefault)
* $(LITERAL 'for') $(LITERAL '$(LPAREN)') $(RULE declarationOrStatement) $(RULE expression)? $(LITERAL ';') $(RULE expression)? $(LITERAL '$(RPAREN)') $(RULE declarationOrStatement)
* ;)
*/
ForStatement parseForStatement()
@ -2180,7 +2180,7 @@ class ClassFour(A, B) if (someTest()) : Super {}}c;
if (currentIs(TokenType.semicolon))
advance();
else
node.declarationOrStatement = parseDeclarationOrStatement();
node.initialization = parseDeclarationOrStatement();
if (currentIs(TokenType.semicolon))
advance();
@ -2196,8 +2196,8 @@ class ClassFour(A, B) if (someTest()) : Super {}}c;
error("Statement expected", false);
return node; // this line makes DCD better
}
node.statementNoCaseNoDefault = parseStatementNoCaseNoDefault();
if (node.statementNoCaseNoDefault is null) return null;
node.declarationOrStatement = parseDeclarationOrStatement();
if (node.declarationOrStatement is null) return null;
return node;
}
@ -2205,8 +2205,8 @@ class ClassFour(A, B) if (someTest()) : Super {}}c;
* Parses a ForeachStatement
*
* $(GRAMMAR $(RULEDEF foreachStatement):
* ($(LITERAL 'foreach') | $(LITERAL 'foreach_reverse')) $(LITERAL '$(LPAREN)') $(RULE foreachTypeList) $(LITERAL ';') $(RULE expression) $(LITERAL '$(RPAREN)') $(RULE statementNoCaseNoDefault)
* | ($(LITERAL 'foreach') | $(LITERAL 'foreach_reverse')) $(LITERAL '$(LPAREN)') $(RULE foreachType) $(LITERAL ';') $(RULE expression) $(LITERAL '..') $(RULE expression) $(LITERAL '$(RPAREN)') $(RULE statementNoCaseNoDefault)
* ($(LITERAL 'foreach') | $(LITERAL 'foreach_reverse')) $(LITERAL '$(LPAREN)') $(RULE foreachTypeList) $(LITERAL ';') $(RULE expression) $(LITERAL '$(RPAREN)') $(RULE declarationOrStatement)
* | ($(LITERAL 'foreach') | $(LITERAL 'foreach_reverse')) $(LITERAL '$(LPAREN)') $(RULE foreachType) $(LITERAL ';') $(RULE expression) $(LITERAL '..') $(RULE expression) $(LITERAL '$(RPAREN)') $(RULE declarationOrStatement)
* ;)
*/
ForeachStatement parseForeachStatement()
@ -5948,7 +5948,7 @@ q{doStuff(5)}c;
* Parses a WhileStatement
*
* $(GRAMMAR $(RULEDEF whileStatement):
* $(LITERAL 'while') $(LITERAL '$(LPAREN)') $(RULE expression) $(LITERAL '$(RPAREN)') $(RULE statementNoCaseNoDefault)
* $(LITERAL 'while') $(LITERAL '$(LPAREN)') $(RULE expression) $(LITERAL '$(RPAREN)') $(RULE declarationOrStatement)
* ;)
*/
WhileStatement parseWhileStatement()
@ -5960,12 +5960,12 @@ q{doStuff(5)}c;
expect(TokenType.lParen);
node.expression = parseExpression();
expect(TokenType.rParen);
if (currentIs(TokenType.rBrace))
{
error("Statement expected", false);
return node; // this line makes DCD better
}
node.statementNoCaseNoDefault = parseStatementNoCaseNoDefault();
if (currentIs(TokenType.rBrace))
{
error("Statement expected", false);
return node; // this line makes DCD better
}
node.declarationOrStatement = parseDeclarationOrStatement();
return node;
}