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