Mercurial > projects > dil
diff trunk/src/Parser.d @ 258:112a57f433f2
- Created class TemplateParameters.
- Changed instances of TemplateParameter[] to TemplateParameters.
author | aziz |
---|---|
date | Wed, 01 Aug 2007 20:55:04 +0000 |
parents | 6c58366ba1eb |
children | 8118da6fee44 |
line wrap: on
line diff
--- a/trunk/src/Parser.d Wed Aug 01 20:37:03 2007 +0000 +++ b/trunk/src/Parser.d Wed Aug 01 20:55:04 2007 +0000 @@ -333,7 +333,7 @@ { // writef("°Function°"); // It's a function declaration - TemplateParameter[] tparams; + TemplateParameters tparams; if (tokenAfterParenIs(T.LParen)) { // ( TemplateParameterList ) ( ParameterList ) @@ -842,7 +842,7 @@ assert(token.type == T.Class); string className; - TemplateParameter[] tparams; + TemplateParameters tparams; BaseClass[] bases; Declaration[] decls; bool hasBody; @@ -917,7 +917,7 @@ assert(token.type == T.Interface); string name; - TemplateParameter[] tparams; + TemplateParameters tparams; BaseClass[] bases; Declaration[] decls; bool hasBody; @@ -959,7 +959,7 @@ TOK tok = token.type; string name; - TemplateParameter[] tparams; + TemplateParameters tparams; Declaration[] decls; bool hasBody; @@ -3219,7 +3219,7 @@ break; /+ // parsed in parseDeclaration() case T.LParen: - TemplateParameter[] tparams; + TemplateParameters tparams; if (tokenAfterParenIs(T.LParen)) { // ( TemplateParameterList ) ( ParameterList ) @@ -3423,15 +3423,17 @@ return args; } - TemplateParameter[] parseTemplateParameterList() + TemplateParameters parseTemplateParameterList() { + auto begin = token; require(T.LParen); if (token.type == T.RParen) return null; - TemplateParameter[] tparams; + auto tparams = new TemplateParameters; while (1) { + auto paramBegin = token; TP tp; Token* ident; Type valueType; @@ -3517,13 +3519,14 @@ } } - tparams ~= new TemplateParameter(tp, valueType, ident, specType, defType, specValue, defValue); + tparams ~= set(new TemplateParameter(tp, valueType, ident, specType, defType, specValue, defValue), paramBegin); if (token.type != T.Comma) break; nT(); } require(T.RParen); + set(tparams, begin); return tparams; }