Mercurial > projects > dil
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)) |