src/org/nutz/el/parse/Converter.java
private LinkedList<Object> clearUp(LinkedList<Object> rpn) {
        LinkedList<Object> dest = new LinkedList<Object>();
        while (!rpn.isEmpty()) {
            if (!(rpn.getFirst() instanceof Elobj)) {
                dest.add(rpn.removeFirst());
                continue;
            }
            Elobj obj = (Elobj) rpn.removeFirst();
            // 方法对象
            if (!rpn.isEmpty() && rpn.getFirst() instanceof MethodOpt) {
                dest.add(new MethodObj(obj.getVal()));
                continue;
            }
            // 属性对象
            if (dest.size() > 0
                && dest.getLast() instanceof AccessOpt
                && rpn.size() > 0
                && rpn.getFirst() instanceof AccessOpt) {
                dest.add(new FieldObj(obj.getVal()));
                continue;
            }
            // //普通的对象
            // if(!(dest.getLast() instanceof AccessOpt) && !(rpn.peekFirst()
            // instanceof MethodOpt)){
            // continue;
            // }
            dest.add(new IdentifierObj(obj.getVal()));
        }
        return dest;
    }
private LinkedList<Object> clearUp(LinkedList<Object> rpn) {
        LinkedList<Object> dest = new LinkedList<Object>();
        while (!rpn.isEmpty()) {
            if (!(rpn.getFirst() instanceof Elobj)) {
                dest.add(rpn.removeFirst());
                continue;
            }
            Elobj obj = (Elobj) rpn.removeFirst();
            // 方法对象
            if (!rpn.isEmpty() && rpn.getFirst() instanceof MethodOpt) {
                dest.add(new MethodObj(obj.getVal()));
                continue;
            }
            // 属性对象
            if (dest.size() > 0
                && dest.getLast() instanceof AccessOpt
                && rpn.size() > 0
                && rpn.getFirst() instanceof AccessOpt) {
                dest.add(new FieldObj(obj.getVal()));
                continue;
            }
            // //普通的对象
            // if(!(dest.getLast() instanceof AccessOpt) && !(rpn.peekFirst()
            // instanceof MethodOpt)){
            // continue;
            // }
            dest.add(new IdentifierObj(obj.getVal()));
        }
        return dest;
    }
private LinkedList < Object > clearUp ( LinkedList < Object > rpn ) { LinkedList < Object > dest = new LinkedList < Object > ( ) ; while ( ! rpn . isEmpty ( ) ) { if ( ! ( rpn . getFirst ( ) instanceof Elobj ) ) { dest . add ( rpn . removeFirst ( ) ) ; continue ; } Elobj obj = ( Elobj ) rpn . removeFirst ( ) ; // 方法对象 if ( ! rpn . isEmpty ( ) && rpn . getFirst ( ) instanceof MethodOpt ) { dest . add ( new MethodObj ( obj . getVal ( ) ) ) ; continue ; } // 属性对象 if ( dest . size ( ) > 0 && dest . getLast ( ) instanceof AccessOpt && rpn . size ( ) > 0 && rpn . getFirst ( ) instanceof AccessOpt ) { dest . add ( new FieldObj ( obj . getVal ( ) ) ) ; continue ; } // //普通的对象 // if(!(dest.getLast() instanceof AccessOpt) && !(rpn.peekFirst() // instanceof MethodOpt)){ // continue; // } dest . add ( new IdentifierObj ( obj . getVal ( ) ) ) ; } return dest ; }
清理转换后的结果, 主要做一些标识性的转换

@param rpn
@return
清理转换后的结果 主要做一些标识性的转换