break;
    public static List parseArguments(String functionCall) throws FBSQLParseException {        functionCall = functionCall.trim();                int parenthesisStart = functionCall.indexOf('(');                if (parenthesisStart == -1)            throw new FBSQLParseException("No opening parenthesis found, " +                "not a function call.");                        if (functionCall.charAt(functionCall.length() - 1) != ')')            throw new FBSQLParseException("No closing parenthesis found, " +                "not a function call.");                        String paramsString = functionCall.substring(            parenthesisStart + 1, functionCall.length() - 1);                    List params = new ArrayList();        StringBuffer sb = new StringBuffer();        boolean inQuotes = false;        boolean inDoubleQuotes = false;                char[] chars = paramsString.toCharArray();                for(int i = 0; i < chars.length ; i++) {            switch(chars[i]) {                case '\'' :                    if (!inDoubleQuotes)                         inQuotes = !inQuotes;                    break;                                    case '"' :                    if (!inQuotes)                         inDoubleQuotes = !inDoubleQuotes;                    break;                                    // we ignore spaces, tabs and new lines if                // we are not in the string literal                case ' ' :                case '\t' :                case '\n' :                case '\r' :                    if (inQuotes || inDoubleQuotes)                         sb.append(chars[i]);                                            break;                                    // comma is considered parameter separator                // if it is not within the string literal                 case ',' :                    if (inQuotes || inDoubleQuotes)                        sb.append(chars[i]);                    else {                        params.add(sb.toString());                        sb = new StringBuffer();                        break;                    }                                  // by default we add chars to the buffer                  default :                     sb.append(chars[i]);            }        }                // after processing all parameters all string literals should be closed        if (inQuotes || inDoubleQuotes)            throw new FBSQLParseException(                "String literal is not properly closed.");                return params;    }