Mercurial > projects > dil
comparison trunk/src/dil/parser/Parser.d @ 750:40a52ea29e3b
Commented out parseDeclarationsBlockNoColon().
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Mon, 11 Feb 2008 21:39:02 +0100 |
parents | 7db35977b947 |
children | 90668b83ae5e |
comparison
equal
deleted
inserted
replaced
749:7db35977b947 | 750:40a52ea29e3b |
---|---|
394 : DeclDefs | 394 : DeclDefs |
395 { } | 395 { } |
396 { DeclDefs } | 396 { DeclDefs } |
397 DeclDef | 397 DeclDef |
398 +/ | 398 +/ |
399 Declaration parseDeclarationsBlock(bool noColon = false) | 399 Declaration parseDeclarationsBlock(/+bool noColon = false+/) |
400 { | 400 { |
401 Declaration d; | 401 Declaration d; |
402 switch (token.kind) | 402 switch (token.kind) |
403 { | 403 { |
404 case T.LBrace: | 404 case T.LBrace: |
409 decls ~= parseDeclarationDefinition(); | 409 decls ~= parseDeclarationDefinition(); |
410 require(T.RBrace); | 410 require(T.RBrace); |
411 d = set(decls, begin); | 411 d = set(decls, begin); |
412 break; | 412 break; |
413 case T.Colon: | 413 case T.Colon: |
414 if (noColon == true) | 414 // if (noColon == true) |
415 goto default; | 415 // goto default; |
416 nT(); | 416 nT(); |
417 auto begin = token; | 417 auto begin = token; |
418 auto decls = new CompoundDeclaration; | 418 auto decls = new CompoundDeclaration; |
419 while (token.kind != T.RBrace && token.kind != T.EOF) | 419 while (token.kind != T.RBrace && token.kind != T.EOF) |
420 decls ~= parseDeclarationDefinition(); | 420 decls ~= parseDeclarationDefinition(); |
425 } | 425 } |
426 assert(isNodeSet(d)); | 426 assert(isNodeSet(d)); |
427 return d; | 427 return d; |
428 } | 428 } |
429 | 429 |
430 Declaration parseDeclarationsBlockNoColon() | 430 // Declaration parseDeclarationsBlockNoColon() |
431 { | 431 // { |
432 return parseDeclarationsBlock(true); | 432 // return parseDeclarationsBlock(true); |
433 } | 433 // } |
434 | 434 |
435 /++ | 435 /++ |
436 Parses either a VariableDeclaration or a FunctionDeclaration. | 436 Parses either a VariableDeclaration or a FunctionDeclaration. |
437 Params: | 437 Params: |
438 stc = previously parsed storage classes | 438 stc = previously parsed storage classes |
1263 cond = parseIdentOrInt(); | 1263 cond = parseIdentOrInt(); |
1264 require(T.RParen); | 1264 require(T.RParen); |
1265 } | 1265 } |
1266 // debug DeclarationsBlock | 1266 // debug DeclarationsBlock |
1267 // debug ( Condition ) DeclarationsBlock | 1267 // debug ( Condition ) DeclarationsBlock |
1268 decls = parseDeclarationsBlockNoColon(); | 1268 decls = parseDeclarationsBlock(); |
1269 // else DeclarationsBlock | 1269 // else DeclarationsBlock |
1270 if (skipped(T.Else)) | 1270 if (skipped(T.Else)) |
1271 elseDecls = parseDeclarationsBlockNoColon(); | 1271 elseDecls = parseDeclarationsBlock(); |
1272 } | 1272 } |
1273 | 1273 |
1274 return new DebugDeclaration(spec, cond, decls, elseDecls); | 1274 return new DebugDeclaration(spec, cond, decls, elseDecls); |
1275 } | 1275 } |
1276 | 1276 |
1293 { // ( Condition ) | 1293 { // ( Condition ) |
1294 require(T.LParen); | 1294 require(T.LParen); |
1295 cond = parseIdentOrInt(); | 1295 cond = parseIdentOrInt(); |
1296 require(T.RParen); | 1296 require(T.RParen); |
1297 // version ( Condition ) DeclarationsBlock | 1297 // version ( Condition ) DeclarationsBlock |
1298 decls = parseDeclarationsBlockNoColon(); | 1298 decls = parseDeclarationsBlock(); |
1299 // else DeclarationsBlock | 1299 // else DeclarationsBlock |
1300 if (skipped(T.Else)) | 1300 if (skipped(T.Else)) |
1301 elseDecls = parseDeclarationsBlockNoColon(); | 1301 elseDecls = parseDeclarationsBlock(); |
1302 } | 1302 } |
1303 | 1303 |
1304 return new VersionDeclaration(spec, cond, decls, elseDecls); | 1304 return new VersionDeclaration(spec, cond, decls, elseDecls); |
1305 } | 1305 } |
1306 | 1306 |
1315 | 1315 |
1316 require(T.LParen); | 1316 require(T.LParen); |
1317 condition = parseAssignExpression(); | 1317 condition = parseAssignExpression(); |
1318 require(T.RParen); | 1318 require(T.RParen); |
1319 | 1319 |
1320 ifDecls = parseDeclarationsBlockNoColon(); | 1320 ifDecls = parseDeclarationsBlock(); |
1321 | 1321 |
1322 if (skipped(T.Else)) | 1322 if (skipped(T.Else)) |
1323 elseDecls = parseDeclarationsBlockNoColon(); | 1323 elseDecls = parseDeclarationsBlock(); |
1324 | 1324 |
1325 return new StaticIfDeclaration(condition, ifDecls, elseDecls); | 1325 return new StaticIfDeclaration(condition, ifDecls, elseDecls); |
1326 } | 1326 } |
1327 | 1327 |
1328 Declaration parseStaticAssertDeclaration() | 1328 Declaration parseStaticAssertDeclaration() |