code: private Command parse() throws ParseException {
          command();
          while (!is(Token.WHERE, Token.RETURN, Token.EOL)) { 
              param();
          }
          if (token == Token.WHERE) {
              where();
          }
          if (token == Token.RETURN) {
              returns();
          }
          expect(Token.EOL);
          return cmd;
      }
docs: run parse on the internal data and return the command object