src/org/nutz/el/arithmetic/ShuntingYard.java
public Queue<Object> parseToRPN(String val) {
        rpn = new LinkedList<Object>();
        opts = new LinkedList<Operator>();
        
        Converter converter = new Converter(val);
        converter.initItems();
        while(!converter.isEnd()){
            Object item = converter.fetchItem();
            if(item instanceof Operator){
                parseOperator((Operator) item);
                continue;
            }
            rpn.add(item);
        }
        while(!opts.isEmpty()){
            rpn.add(opts.poll());
        }
        
        return rpn;
    }
public Queue<Object> parseToRPN(String val) {
        rpn = new LinkedList<Object>();
        opts = new LinkedList<Operator>();
        
        Converter converter = new Converter(val);
        converter.initItems();
        while(!converter.isEnd()){
            Object item = converter.fetchItem();
            if(item instanceof Operator){
                parseOperator((Operator) item);
                continue;
            }
            rpn.add(item);
        }
        while(!opts.isEmpty()){
            rpn.add(opts.poll());
        }
        
        return rpn;
    }
public Queue < Object > parseToRPN ( String val ) { rpn = new LinkedList < Object > ( ) ; opts = new LinkedList < Operator > ( ) ; Converter converter = new Converter ( val ) ; converter . initItems ( ) ; while ( ! converter . isEnd ( ) ) { Object item = converter . fetchItem ( ) ; if ( item instanceof Operator ) { parseOperator ( ( Operator ) item ) ; continue ; } rpn . add ( item ) ; } while ( ! opts . isEmpty ( ) ) { rpn . add ( opts . poll ( ) ) ; } return rpn ; }
转换成 逆波兰表示法（Reverse Polish notation，RPN，或逆波兰记法）
@param val
@throws IOException
转换成 逆波兰表示法（Reverse Polish notation，RPN，或逆波兰记法）