Mercurial > projects > dil
comparison trunk/src/Parser.d @ 175:522df6f0f230
- Implemented parseReturnStatement().
author | aziz |
---|---|
date | Sat, 14 Jul 2007 10:44:05 +0000 |
parents | e51c9ee66ea0 |
children | 3071522c0cf0 |
comparison
equal
deleted
inserted
replaced
174:e51c9ee66ea0 | 175:522df6f0f230 |
---|---|
1161 s = parseContinueStatement(); | 1161 s = parseContinueStatement(); |
1162 break; | 1162 break; |
1163 case T.Break: | 1163 case T.Break: |
1164 s = parseBreakStatement(); | 1164 s = parseBreakStatement(); |
1165 break; | 1165 break; |
1166 case T.Return: | |
1167 s = parseReturnStatement(); | |
1168 break; | |
1166 default: | 1169 default: |
1167 // TODO: issue error msg and return IllegalStatement. | 1170 // TODO: issue error msg and return IllegalStatement. |
1168 } | 1171 } |
1169 return s; | 1172 return s; |
1170 } | 1173 } |
1416 ident = token.identifier; | 1419 ident = token.identifier; |
1417 nT(); | 1420 nT(); |
1418 } | 1421 } |
1419 require(T.Semicolon); | 1422 require(T.Semicolon); |
1420 return new BreakStatement(ident); | 1423 return new BreakStatement(ident); |
1424 } | |
1425 | |
1426 Statement parseReturnStatement() | |
1427 { | |
1428 assert(token.type == T.Return); | |
1429 nT(); | |
1430 auto expr = parseExpression(); | |
1431 require(T.Semicolon); | |
1432 return new ReturnStatement(expr); | |
1421 } | 1433 } |
1422 | 1434 |
1423 /+++++++++++++++++++++++++++++ | 1435 /+++++++++++++++++++++++++++++ |
1424 + Expression parsing methods + | 1436 + Expression parsing methods + |
1425 +++++++++++++++++++++++++++++/ | 1437 +++++++++++++++++++++++++++++/ |