Mercurial > projects > dil
comparison trunk/src/Parser.d @ 177:504b1b2f7c93
- Implemented parseWithStatement().
author | aziz |
---|---|
date | Sat, 14 Jul 2007 11:10:03 +0000 |
parents | 3071522c0cf0 |
children | 62718b29679e |
comparison
equal
deleted
inserted
replaced
176:3071522c0cf0 | 177:504b1b2f7c93 |
---|---|
1167 s = parseReturnStatement(); | 1167 s = parseReturnStatement(); |
1168 break; | 1168 break; |
1169 case T.Goto: | 1169 case T.Goto: |
1170 s = parseGotoStatement(); | 1170 s = parseGotoStatement(); |
1171 break; | 1171 break; |
1172 case T.With: | |
1173 s = parseWithStatement(); | |
1174 break; | |
1172 default: | 1175 default: |
1173 // TODO: issue error msg and return IllegalStatement. | 1176 // TODO: issue error msg and return IllegalStatement. |
1174 } | 1177 } |
1175 return s; | 1178 return s; |
1176 } | 1179 } |
1456 ident = requireIdentifier(); | 1459 ident = requireIdentifier(); |
1457 nT(); | 1460 nT(); |
1458 } | 1461 } |
1459 require(T.Semicolon); | 1462 require(T.Semicolon); |
1460 return new GotoStatement(ident, caseExpr); | 1463 return new GotoStatement(ident, caseExpr); |
1464 } | |
1465 | |
1466 Statement parseWithStatement() | |
1467 { | |
1468 assert(token.type == T.With); | |
1469 nT(); | |
1470 require(T.LParen); | |
1471 auto expr = parseExpression(); | |
1472 require(T.RParen); | |
1473 return new WithStatement(expr, parseScopeStatement()); | |
1461 } | 1474 } |
1462 | 1475 |
1463 /+++++++++++++++++++++++++++++ | 1476 /+++++++++++++++++++++++++++++ |
1464 + Expression parsing methods + | 1477 + Expression parsing methods + |
1465 +++++++++++++++++++++++++++++/ | 1478 +++++++++++++++++++++++++++++/ |