# HG changeset patch # User aziz # Date 1185535140 0 # Node ID 6846138a0e246ac2e928015f0af494453c1cab3c # Parent 8f1790d16753da43bb4f05fce0b377c55db42c27 - Fixed parseEnumDeclaration(). - Fix: skip T.Semicolon in parseStatement(). diff -r 8f1790d16753 -r 6846138a0e24 trunk/src/Parser.d --- a/trunk/src/Parser.d Fri Jul 27 10:38:05 2007 +0000 +++ b/trunk/src/Parser.d Fri Jul 27 11:19:00 2007 +0000 @@ -709,7 +709,12 @@ bool hasBody; nT(); // Skip enum keyword. - enumName = requireIdentifier(); + + if (token.type == T.Identifier) + { + enumName = token.identifier; + nT(); + } if (token.type == T.Colon) { @@ -719,8 +724,8 @@ if (token.type == T.Semicolon) { - //if (ident.length == 0) - // TODO: issue error msg + if (enumName.length == 0) + expected(T.Identifier); nT(); } else if (token.type == T.LBrace) @@ -749,6 +754,8 @@ } while (token.type != T.RBrace) nT(); } + else + error(MID.ExpectedButFound, "enum declaration", token.srcText); return new EnumDeclaration(enumName, baseType, members, values, hasBody); } @@ -1547,6 +1554,7 @@ s = parseScopeStatement(); break; case T.Semicolon: + nT(); s = new EmptyStatement(); break; default: