Expression getVariable( String name ) {
        for( int i = state.stackIdx - 1; i >= 0; i-- ) {
            Expression variable = state.stack.get( i ).getVariable( name );
            if( variable != null ) {
                return variable;
            }
        }
        if( name.equals( "@arguments" ) ) {
            for( int i = state.stackIdx - 1; i >= 0; i-- ) {
                Scope scope = state.stack.get( i );
                if( scope.parameters != null ) {
                    Operation params = new Operation( scope.mixin, ' ' );
                    for( Expression expr : scope.parameters.values() ) {
                        if( expr.getClass() == Operation.class && scope.parameters.size() == 1 ) {
                            return expr;
                        }
                        params.addOperand( expr );
                    }
                    return params;
                }
            }
        }
        return null;
    }
Expression getVariable ( String name ) { for ( int i = state . stackIdx - 1 ; i >= 0 ; i -- ) { Expression variable = state . stack . get ( i ) . getVariable ( name ) ; if ( variable != null ) { return variable ; } } if ( name . equals ( "@arguments" ) ) { for ( int i = state . stackIdx - 1 ; i >= 0 ; i -- ) { Scope scope = state . stack . get ( i ) ; if ( scope . parameters != null ) { Operation params = new Operation ( scope . mixin , ' ' ) ; for ( Expression expr : scope . parameters . values ( ) ) { if ( expr . getClass ( ) == Operation . class && scope . parameters . size ( ) == 1 ) { return expr ; } params . addOperand ( expr ) ; } return params ; } } } return null ; }
Get a variable expression from the current stack

@param name
the name of the variable starting with @
@return the expression or null if not found