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 +++++++++++++++++++++++++++++/