code: private ParseTree parseReturnStatement() {
      SourcePosition start = getTreeStartLocation();
      eat(TokenType.RETURN);
      ParseTree expression = null;
      if (!peekImplicitSemiColon()) {
        expression = parseExpression();
      }
      eatPossibleImplicitSemiColon();
      return new ReturnStatementTree(getTreeLocation(start), expression);
    }
docs: 12.9 The return Statement