/src/org/ooc/frontend/parser/ReturnParser.java

http://github.com/nddrylliog/ooc · Java · 32 lines · 24 code · 8 blank · 0 comment · 4 complexity · e76e3a3a9fba15487f0398329f191e91 MD5 · raw file

  1. package org.ooc.frontend.parser;
  2. import org.ooc.frontend.model.Expression;
  3. import org.ooc.frontend.model.Module;
  4. import org.ooc.frontend.model.Return;
  5. import org.ooc.frontend.model.ValuedReturn;
  6. import org.ooc.frontend.model.tokens.Token;
  7. import org.ooc.frontend.model.tokens.TokenReader;
  8. import org.ooc.frontend.model.tokens.Token.TokenType;
  9. import org.ubi.SourceReader;
  10. public class ReturnParser {
  11. public static Return parse(Module module, SourceReader sReader, TokenReader reader) {
  12. int mark = reader.mark();
  13. Token startToken = reader.read();
  14. if(startToken.type == TokenType.RETURN_KW) {
  15. Expression expr = ExpressionParser.parse(module, sReader, reader);
  16. if(expr == null) {
  17. return new Return(startToken);
  18. }
  19. return new ValuedReturn(expr, startToken);
  20. }
  21. reader.reset(mark);
  22. return null;
  23. }
  24. }