private Object paseExpression() {
        Object result = null;
        outer:
        while (true) {
            
            switch (args.charAt(currentIndex)) {
                case ' ':
                    break;
                case '{':
                    currentIndex++;
                    result = parseList();
                    break outer;
                default:
                    int endIndex = Math.min(getNextCharOrStringEnd(','), getNextCharOrStringEnd('}'));
                    try {
                        result = Integer.parseInt(args.substring(currentIndex, endIndex));
                        break outer;
                    } catch (RuntimeException rex) {
                        try {
                            result = Double.parseDouble(args.substring(currentIndex, endIndex));
                            break outer;
                        } catch (Exception e1) {
                            try {
                                result = tokenResolver.resolveToken(args.substring(currentIndex, endIndex));
                                break outer;
                            } catch (Exception e2) {
                                try {
                                } catch (Exception e3) {
                                }
                            }


                        }
                    }
                    break outer;

            }
            currentIndex++;
            if (currentIndex == args.length()) {
                break outer;
            }

        }
        currentIndex = Math.min(getNextCharOrStringEnd(','), getNextCharOrStringEnd('}'));
        return result;

    }