Revision 46082 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/DefaultCompiler.java
DefaultCompiler.java | ||
---|---|---|
568 | 568 |
// Solo estamos dando soporte al especificador de modo "IN". |
569 | 569 |
lexer.next(); |
570 | 570 |
token = lexer.look(); |
571 |
String mode_specifier = "IN"; |
|
571 | 572 |
if( token.getType() == Token.IDENTIFIER ) { |
572 | 573 |
switch(token.getLiteral().trim().toUpperCase()) { |
573 | 574 |
case "IN": |
574 | 575 |
lexer.next(); |
576 |
mode_specifier = "IN"; |
|
575 | 577 |
break; |
576 | 578 |
case "OUT": |
579 |
lexer.next(); |
|
580 |
mode_specifier = "OUT"; |
|
581 |
break; |
|
577 | 582 |
case "INOUT": |
578 |
// Invalid mode specifier in host expression |
|
579 |
throw new ExpressionSyntaxException( |
|
580 |
I18N.invalid_mode_specifier_in_host_expression(), |
|
581 |
lexer |
|
582 |
); |
|
583 |
lexer.next(); |
|
584 |
mode_specifier = "INOUT"; |
|
585 |
break; |
|
583 | 586 |
} |
584 | 587 |
} |
585 | 588 |
Code op = parse_termino(); |
586 |
return codeBuilder.$eval(op);
|
|
589 |
return codeBuilder.$HostExpression(op, mode_specifier);
|
|
587 | 590 |
} |
588 | 591 |
return parse_termino(); |
589 | 592 |
} |
Also available in: Unified diff