Mercurial > projects > dil
diff trunk/src/dil/Parser.d @ 494:9a7ca8c56e59
Refactored a few things in the Parser.
Removed unnecessary 'bool hasBody' parameter from some declarations.
Added shebang to list of tokens in Lexer unittest.
Added some semantic methods.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Fri, 07 Dec 2007 18:22:35 +0100 |
parents | d13502b6fa5f |
children | b60450804b6e |
line wrap: on
line diff
--- a/trunk/src/dil/Parser.d Thu Dec 06 22:59:38 2007 +0100 +++ b/trunk/src/dil/Parser.d Fri Dec 07 18:22:35 2007 +0100 @@ -1007,15 +1007,12 @@ TemplateParameters tparams; BaseClass[] bases; Declarations decls; - bool hasBody; nT(); // Skip class keyword. className = requireId(); if (token.type == T.LParen) - { tparams = parseTemplateParameterList(); - } if (token.type == T.Colon) bases = parseBaseClasses(); @@ -1027,14 +1024,11 @@ nT(); } else if (token.type == T.LBrace) - { - hasBody = true; decls = parseDeclarationDefinitionsBlock(); - } else expected(T.LBrace); // TODO: better error msg - return new ClassDeclaration(className, tparams, bases, decls, hasBody); + return new ClassDeclaration(className, tparams, bases, decls); } BaseClass[] parseBaseClasses(bool colonLeadsOff = true) @@ -1083,15 +1077,12 @@ TemplateParameters tparams; BaseClass[] bases; Declarations decls; - bool hasBody; nT(); // Skip interface keyword. name = requireId(); if (token.type == T.LParen) - { tparams = parseTemplateParameterList(); - } if (token.type == T.Colon) bases = parseBaseClasses(); @@ -1103,14 +1094,11 @@ nT(); } else if (token.type == T.LBrace) - { - hasBody = true; decls = parseDeclarationDefinitionsBlock(); - } else expected(T.LBrace); // TODO: better error msg - return new InterfaceDeclaration(name, tparams, bases, decls, hasBody); + return new InterfaceDeclaration(name, tparams, bases, decls); } Declaration parseAggregateDeclaration() @@ -1122,7 +1110,6 @@ Token* name; TemplateParameters tparams; Declarations decls; - bool hasBody; nT(); // Skip struct or union keyword. // name is optional. @@ -1131,9 +1118,7 @@ name = token; nT(); if (token.type == T.LParen) - { tparams = parseTemplateParameterList(); - } } if (token.type == T.Semicolon) @@ -1143,17 +1128,14 @@ nT(); } else if (token.type == T.LBrace) - { - hasBody = true; decls = parseDeclarationDefinitionsBlock(); - } else expected(T.LBrace); // TODO: better error msg if (tok == T.Struct) - return new StructDeclaration(name, tparams, decls, hasBody); + return new StructDeclaration(name, tparams, decls); else - return new UnionDeclaration(name, tparams, decls, hasBody); + return new UnionDeclaration(name, tparams, decls); } Declaration parseConstructorDeclaration()