Revision 44198 trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultInterpreter.java

View differences:

DefaultInterpreter.java
165 165

  
166 166
    @Override
167 167
    public void link(Code code) {
168
        linkCode(code);
168
        code.link(this.getSymbolTable());
169 169
    }
170 170

  
171
    private void linkCode(Code code) {
172
        if( code.code() == Code.CALLER ) {
173
            Caller caller = (Caller) code;
174
            if( caller.function() == null ) {
175
                caller.function(this.getSymbolTable().function(caller.name()));
176
            }
177
            if( caller.args() != null ) {
178
                for( Code arg : caller.args() ) {
179
                    linkCode(arg);
180
                }
181
            }
182
        }
183
    }
184

  
185 171
    public Object runCode(Code code) throws Exception {
186 172
        RecursionControlSupport recursionControl = null;
187 173
        if( code instanceof RecursionControlSupport ) {
......
235 221
                if( !function.isSQLCompatible() && this.sqlCompatible ) {
236 222
                    throw new ExpressionRuntimeException(code, I18N.Cant_use_non_SQL_compatible_functions(function.name()));
237 223
                }
238
                Codes args = caller.args();
224
                Codes args = caller.parameters();
239 225
                try {
240 226
                    switch( caller.type() ) {
241 227
                    case Caller.UNARY_OPERATOR:

Also available in: Unified diff