comparison src/dil/parser/Parser.d @ 823:fde064aca673

Added support for version(unittest).
author Aziz K?ksal <aziz.koeksal@gmail.com>
date Mon, 24 Mar 2008 18:53:15 +0100
parents 1abffc396594
children 55c463c57d3a
comparison
equal deleted inserted replaced
822:fd52beaaa94a 823:fde064aca673
1232 return this.prevToken; 1232 return this.prevToken;
1233 error(token, MSG.ExpectedIdentOrInt, token.srcText); 1233 error(token, MSG.ExpectedIdentOrInt, token.srcText);
1234 return null; 1234 return null;
1235 } 1235 }
1236 1236
1237 Token* parseVersionCondition()
1238 {
1239 version(D2)
1240 {
1241 if (consumed(T.Unittest))
1242 return this.prevToken;
1243 }
1244 return parseIdentOrInt();
1245 }
1246
1237 Declaration parseDebugDeclaration() 1247 Declaration parseDebugDeclaration()
1238 { 1248 {
1239 skip(T.Debug); 1249 skip(T.Debug);
1240 1250
1241 Token* spec; 1251 Token* spec;
1281 require(T.Semicolon); 1291 require(T.Semicolon);
1282 } 1292 }
1283 else 1293 else
1284 { // ( Condition ) 1294 { // ( Condition )
1285 require(T.LParen); 1295 require(T.LParen);
1286 cond = parseIdentOrInt(); 1296 cond = parseVersionCondition();
1287 require(T.RParen); 1297 require(T.RParen);
1288 // version ( Condition ) DeclarationsBlock 1298 // version ( Condition ) DeclarationsBlock
1289 decls = parseDeclarationsBlock(); 1299 decls = parseDeclarationsBlock();
1290 // else DeclarationsBlock 1300 // else DeclarationsBlock
1291 if (consumed(T.Else)) 1301 if (consumed(T.Else))
2223 Token* cond; 2233 Token* cond;
2224 Statement versionBody, elseBody; 2234 Statement versionBody, elseBody;
2225 2235
2226 // ( Condition ) 2236 // ( Condition )
2227 require(T.LParen); 2237 require(T.LParen);
2228 cond = parseIdentOrInt(); 2238 cond = parseVersionCondition();
2229 require(T.RParen); 2239 require(T.RParen);
2230 // version ( Condition ) Statement 2240 // version ( Condition ) Statement
2231 versionBody = parseNoScopeStatement(); 2241 versionBody = parseNoScopeStatement();
2232 // else Statement 2242 // else Statement
2233 if (consumed(T.Else)) 2243 if (consumed(T.Else))