From a1ac849141d7bb295970501094a66b31cd062bce Mon Sep 17 00:00:00 2001 From: Hackerpilot Date: Tue, 7 Jan 2014 00:04:14 +0000 Subject: [PATCH] Fix #80 --- astprinter.d | 2 +- stdx/d/ast.d | 12 ++++++------ stdx/d/parser.d | 26 +++++++++++++------------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/astprinter.d b/astprinter.d index 1b7ed06..1ad6d24 100644 --- a/astprinter.d +++ b/astprinter.d @@ -485,7 +485,7 @@ class XMLPrinter : ASTVisitor visit(forStatement.increment); output.writeln(""); } - visit(forStatement.statementNoCaseNoDefault); + visit(forStatement.declarationOrStatement); output.writeln(""); } diff --git a/stdx/d/ast.d b/stdx/d/ast.d index 3650ee9..1437808 100644 --- a/stdx/d/ast.d +++ b/stdx/d/ast.d @@ -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; } diff --git a/stdx/d/parser.d b/stdx/d/parser.d index fbda69c..ba1743a 100644 --- a/stdx/d/parser.d +++ b/stdx/d/parser.d @@ -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; }