code: public ArrayList<String> parseColumnNames()
    {
      ArrayList<String> columns = new ArrayList<String>();
  
      Token token = scanToken();
      if (token == Token.LPAREN) {
        do {
          columns.add(parseIdentifier());
  
          token = scanToken();
        } while (token == Token.COMMA);
  
        if (token != Token.RPAREN) {
          throw error("expected ')' at '{0}'", token);
        }
      }
      else if (token == Token.IDENTIFIER) {
        columns.add(_lexeme);
  
        _token = token;
      }
      else {
        throw error("expected '(' at '{0}'", token);
      }
  
      return columns;
    }
docs: Parses a list of column names