bean references removed, no more @(context:beanname)
This commit is contained in:
parent
95892dc993
commit
39c966f419
|
@ -1,88 +0,0 @@
|
|||
/*
|
||||
* Copyright 2004-2008 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.springframework.expression.spel.ast;
|
||||
|
||||
import org.antlr.runtime.Token;
|
||||
import org.springframework.expression.EvaluationException;
|
||||
import org.springframework.expression.spel.ExpressionState;
|
||||
import org.springframework.expression.spel.generated.SpringExpressionsLexer;
|
||||
|
||||
/**
|
||||
* Represent a object reference of the form '@(<contextName>:<objectName>)'
|
||||
*
|
||||
*/
|
||||
public class Reference extends SpelNode {
|
||||
|
||||
private boolean contextAndObjectDetermined = false;
|
||||
private SpelNode contextNode = null;
|
||||
private SpelNode objectNode = null;
|
||||
|
||||
public Reference(Token payload) {
|
||||
super(payload);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object getValue(ExpressionState state) throws EvaluationException {
|
||||
|
||||
ensureContextAndNameDetermined();
|
||||
Object contextName = (contextNode == null ? null : contextNode.getValue(state));
|
||||
Object objectName = (objectNode == null ? null : objectNode.getValue(state));
|
||||
|
||||
Object referencedValue = state.lookupReference(contextName, objectName);
|
||||
|
||||
return referencedValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Work out which represents the context and which the object. This would be trivial except for parser recovery
|
||||
* situations where the expression was incomplete. We need to do our best here to recover so that we can offer
|
||||
* suitable code completion suggestions.
|
||||
*/
|
||||
private void ensureContextAndNameDetermined() {
|
||||
if (contextAndObjectDetermined)
|
||||
return;
|
||||
contextAndObjectDetermined = true;
|
||||
int colon = -1;
|
||||
for (int i = 0; i < getChildCount(); i++) {
|
||||
if (getChild(i).getToken().getType() == SpringExpressionsLexer.COLON) {
|
||||
colon = i;
|
||||
}
|
||||
}
|
||||
if (colon != -1) {
|
||||
contextNode = getChild(colon - 1);
|
||||
objectNode = getChild(colon + 1);
|
||||
} else {
|
||||
objectNode = getChild(0);
|
||||
}
|
||||
if (objectNode.getToken().getType() != SpringExpressionsLexer.QUALIFIED_IDENTIFIER) {
|
||||
objectNode = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toStringAST() {
|
||||
ensureContextAndNameDetermined();
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.append("@(");
|
||||
if (contextNode != null) {
|
||||
sb.append(contextNode.toStringAST()).append(":");
|
||||
}
|
||||
sb.append(objectNode.toStringAST());
|
||||
sb.append(")");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
}
|
|
@ -13,7 +13,6 @@ tokens {
|
|||
INTEGER_LITERAL;
|
||||
EXPRESSION;
|
||||
QUALIFIED_IDENTIFIER;
|
||||
REFERENCE;
|
||||
PROPERTY_OR_FIELD;
|
||||
INDEXER;
|
||||
CONSTRUCTOR;
|
||||
|
@ -97,7 +96,6 @@ startNode
|
|||
parenExpr
|
||||
| methodOrProperty
|
||||
| functionOrVar
|
||||
| reference
|
||||
| indexer
|
||||
| literal
|
||||
| type
|
||||
|
@ -152,17 +150,6 @@ methodArgs : LPAREN! (argument (COMMA! argument)* (COMMA!)?)? RPAREN!;
|
|||
// access id as a child of the new node.
|
||||
property: id=ID -> ^(PROPERTY_OR_FIELD[$id]);
|
||||
|
||||
// start - in this block there are changes to help parser recovery and code completion
|
||||
|
||||
// fiddled with to support better code completion
|
||||
// we preserve the colon and rparen to give positional info and the qualifiedId is optional to cope with
|
||||
// code completing in @() (which is really an invalid expression)
|
||||
reference
|
||||
: AT pos=LPAREN (cn=contextName COLON)? (q=qualifiedId)? RPAREN
|
||||
-> ^(REFERENCE[$pos] ($cn COLON)? $q? RPAREN);
|
||||
// what I really want here is: was there a colon? position of the right paren
|
||||
|
||||
// end - in this block there are changes to help parser recovery and code completion
|
||||
|
||||
//indexer: LBRACKET r1=range (COMMA r2=range)* RBRACKET -> ^(INDEXER $r1 ($r2)*);
|
||||
indexer: LBRACKET r1=argument (COMMA r2=argument)* RBRACKET -> ^(INDEXER $r1 ($r2)*);
|
||||
|
|
|
@ -1,83 +1,82 @@
|
|||
GREATER_THAN_OR_EQUAL=71
|
||||
SELECT_FIRST=52
|
||||
COMMA=45
|
||||
HOLDER=12
|
||||
GREATER_THAN=70
|
||||
TYPE=54
|
||||
GREATER_THAN_OR_EQUAL=69
|
||||
SELECT_FIRST=50
|
||||
COMMA=44
|
||||
HOLDER=11
|
||||
GREATER_THAN=68
|
||||
TYPE=52
|
||||
EXPRESSIONLIST=4
|
||||
MINUS=36
|
||||
MAP_ENTRY=21
|
||||
SELECT_LAST=53
|
||||
NUMBER=25
|
||||
LESS_THAN=68
|
||||
BANG=41
|
||||
FALSE=62
|
||||
METHOD=22
|
||||
PROPERTY_OR_FIELD=9
|
||||
LBRACKET=47
|
||||
INDEXER=10
|
||||
MOD=39
|
||||
CONSTRUCTOR_ARRAY=13
|
||||
FUNCTIONREF=15
|
||||
NULL_LITERAL=58
|
||||
NAMED_ARGUMENT=14
|
||||
OR=33
|
||||
PIPE=77
|
||||
DOT=42
|
||||
RCURLY=50
|
||||
MINUS=35
|
||||
MAP_ENTRY=20
|
||||
SELECT_LAST=51
|
||||
NUMBER=24
|
||||
LESS_THAN=66
|
||||
BANG=40
|
||||
FALSE=60
|
||||
METHOD=21
|
||||
PROPERTY_OR_FIELD=8
|
||||
LBRACKET=45
|
||||
INDEXER=9
|
||||
MOD=38
|
||||
CONSTRUCTOR_ARRAY=12
|
||||
FUNCTIONREF=14
|
||||
NULL_LITERAL=56
|
||||
NAMED_ARGUMENT=13
|
||||
OR=32
|
||||
PIPE=75
|
||||
DOT=41
|
||||
RCURLY=48
|
||||
EXPRESSION=6
|
||||
AND=34
|
||||
LCURLY=55
|
||||
REAL_TYPE_SUFFIX=84
|
||||
STRING_LITERAL=56
|
||||
SELECT=51
|
||||
AND=33
|
||||
LCURLY=53
|
||||
REAL_TYPE_SUFFIX=83
|
||||
STRING_LITERAL=54
|
||||
SELECT=49
|
||||
QUALIFIED_IDENTIFIER=7
|
||||
RBRACKET=48
|
||||
SUBTRACT=24
|
||||
ASSIGN=27
|
||||
BETWEEN=74
|
||||
RPAREN=32
|
||||
SIGN=85
|
||||
LPAREN=31
|
||||
HEX_DIGIT=65
|
||||
PLUS=35
|
||||
LIST_INITIALIZER=19
|
||||
APOS=78
|
||||
RBRACKET=46
|
||||
SUBTRACT=23
|
||||
ASSIGN=26
|
||||
BETWEEN=72
|
||||
RPAREN=31
|
||||
SIGN=84
|
||||
LPAREN=30
|
||||
HEX_DIGIT=63
|
||||
PLUS=34
|
||||
LIST_INITIALIZER=18
|
||||
APOS=76
|
||||
INTEGER_LITERAL=5
|
||||
AT=46
|
||||
ID=44
|
||||
NOT_EQUAL=67
|
||||
RANGE=17
|
||||
POWER=40
|
||||
TYPEREF=16
|
||||
DECIMAL_DIGIT=63
|
||||
WS=80
|
||||
IS=73
|
||||
DOLLAR=81
|
||||
LESS_THAN_OR_EQUAL=69
|
||||
SEMIRPAREN=26
|
||||
DQ_STRING_LITERAL=57
|
||||
HEXADECIMAL_INTEGER_LITERAL=59
|
||||
MAP_INITIALIZER=20
|
||||
IN=72
|
||||
SEMI=76
|
||||
CONSTRUCTOR=11
|
||||
INTEGER_TYPE_SUFFIX=64
|
||||
EQUAL=66
|
||||
MATCHES=75
|
||||
DOT_ESCAPED=79
|
||||
UPTO=82
|
||||
QMARK=29
|
||||
REFERENCE=8
|
||||
PROJECT=49
|
||||
DEFAULT=28
|
||||
COLON=30
|
||||
DIV=38
|
||||
STAR=37
|
||||
REAL_LITERAL=60
|
||||
VARIABLEREF=18
|
||||
EXPONENT_PART=83
|
||||
TRUE=61
|
||||
ADD=23
|
||||
POUND=43
|
||||
'new'=86
|
||||
AT=80
|
||||
ID=43
|
||||
NOT_EQUAL=65
|
||||
RANGE=16
|
||||
POWER=39
|
||||
TYPEREF=15
|
||||
DECIMAL_DIGIT=61
|
||||
WS=78
|
||||
IS=71
|
||||
DOLLAR=79
|
||||
LESS_THAN_OR_EQUAL=67
|
||||
SEMIRPAREN=25
|
||||
DQ_STRING_LITERAL=55
|
||||
HEXADECIMAL_INTEGER_LITERAL=57
|
||||
MAP_INITIALIZER=19
|
||||
IN=70
|
||||
SEMI=74
|
||||
CONSTRUCTOR=10
|
||||
INTEGER_TYPE_SUFFIX=62
|
||||
EQUAL=64
|
||||
MATCHES=73
|
||||
DOT_ESCAPED=77
|
||||
UPTO=81
|
||||
QMARK=28
|
||||
PROJECT=47
|
||||
DEFAULT=27
|
||||
COLON=29
|
||||
DIV=37
|
||||
STAR=36
|
||||
REAL_LITERAL=58
|
||||
VARIABLEREF=17
|
||||
EXPONENT_PART=82
|
||||
TRUE=59
|
||||
ADD=22
|
||||
POUND=42
|
||||
'new'=85
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -5,143 +5,143 @@ options {
|
|||
}
|
||||
@header {package org.springframework.expression.spel.generated;}
|
||||
|
||||
T86 : 'new' ;
|
||||
T85 : 'new' ;
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 59
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 58
|
||||
SEMIRPAREN : ';)'; // recoveryrelated: allows us to cope with a rogue superfluous semicolon before the rparen in an expression list
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 237
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 224
|
||||
INTEGER_LITERAL
|
||||
: (DECIMAL_DIGIT)+ (INTEGER_TYPE_SUFFIX)?;
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 240
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 227
|
||||
HEXADECIMAL_INTEGER_LITERAL : ('0x' | '0X') (HEX_DIGIT)+ (INTEGER_TYPE_SUFFIX)?;
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 255
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 242
|
||||
ASSIGN: '=';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 256
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 243
|
||||
EQUAL: '==';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 257
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 244
|
||||
NOT_EQUAL: '!=';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 258
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 245
|
||||
LESS_THAN: '<';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 259
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 246
|
||||
LESS_THAN_OR_EQUAL: '<=';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 260
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 247
|
||||
GREATER_THAN: '>';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 261
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 248
|
||||
GREATER_THAN_OR_EQUAL: '>=';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 262
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 249
|
||||
IN: 'in';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 263
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 250
|
||||
IS: 'is';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 264
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 251
|
||||
BETWEEN:'between';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 265
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 252
|
||||
MATCHES:'matches';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 266
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 253
|
||||
NULL_LITERAL: 'null';
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 268
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 255
|
||||
SEMI: ';';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 269
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 256
|
||||
DOT: '.';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 270
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 257
|
||||
COMMA: ',';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 271
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 258
|
||||
LPAREN: '(';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 272
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 259
|
||||
RPAREN: ')';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 273
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 260
|
||||
LCURLY: '{';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 274
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 261
|
||||
RCURLY: '}';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 275
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 262
|
||||
LBRACKET: '[';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 276
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 263
|
||||
RBRACKET: ']';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 277
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 264
|
||||
PIPE: '|';
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 279
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 266
|
||||
AND: 'and';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 280
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 267
|
||||
OR: 'or';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 281
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 268
|
||||
FALSE: 'false';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 282
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 269
|
||||
TRUE: 'true';
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 284
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 271
|
||||
PLUS: '+';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 285
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 272
|
||||
MINUS: '-';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 286
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 273
|
||||
DIV: '/';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 287
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 274
|
||||
STAR: '*';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 288
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 275
|
||||
MOD: '%';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 289
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 276
|
||||
POWER: '^';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 290
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 277
|
||||
BANG: '!';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 291
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 278
|
||||
POUND: '#';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 292
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 279
|
||||
QMARK: '?';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 293
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 280
|
||||
DEFAULT: '??';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 294
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 281
|
||||
PROJECT: '!{';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 295
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 282
|
||||
SELECT: '?{';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 296
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 283
|
||||
SELECT_FIRST: '^{';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 297
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 284
|
||||
SELECT_LAST: '${';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 298
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 285
|
||||
TYPE: 'T(';
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 300
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 287
|
||||
STRING_LITERAL: '\''! (APOS|~'\'')* '\''!;
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 301
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 288
|
||||
DQ_STRING_LITERAL: '"'! (~'"')* '"'!;
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 302
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 289
|
||||
ID: ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|DOT_ESCAPED)*;
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 303
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 290
|
||||
DOT_ESCAPED: '\\.';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 304
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 291
|
||||
WS: ( ' ' | '\t' | '\n' |'\r')+ { $channel=HIDDEN; } ;
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 305
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 292
|
||||
DOLLAR: '$';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 306
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 293
|
||||
AT: '@';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 307
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 294
|
||||
UPTO: '..';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 308
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 295
|
||||
COLON: ':';
|
||||
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 311
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 298
|
||||
REAL_LITERAL :
|
||||
('.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |
|
||||
((DECIMAL_DIGIT)+ '.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |
|
||||
((DECIMAL_DIGIT)+ (EXPONENT_PART) (REAL_TYPE_SUFFIX)?) |
|
||||
((DECIMAL_DIGIT)+ (REAL_TYPE_SUFFIX));
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 317
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 304
|
||||
fragment APOS : '\''! '\'';
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 318
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 305
|
||||
fragment DECIMAL_DIGIT : '0'..'9' ;
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 319
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 306
|
||||
fragment INTEGER_TYPE_SUFFIX : ( 'L' | 'l' );
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 320
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 307
|
||||
fragment HEX_DIGIT : '0'|'1'|'2'|'3'|'4'|'5'|'6'|'7'|'8'|'9'|'A'|'B'|'C'|'D'|'E'|'F'|'a'|'b'|'c'|'d'|'e'|'f';
|
||||
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 322
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 309
|
||||
fragment EXPONENT_PART : 'e' (SIGN)* (DECIMAL_DIGIT)+ | 'E' (SIGN)* (DECIMAL_DIGIT)+ ;
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 323
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 310
|
||||
fragment SIGN : '+' | '-' ;
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 324
|
||||
// $ANTLR src "/Users/aclement/el2/spring-framework/trunk/org.springframework.expression/src/main/java/org/springframework/expression/spel/generated/SpringExpressions.g" 311
|
||||
fragment REAL_TYPE_SUFFIX : 'F' | 'f' | 'D' | 'd';
|
||||
|
|
|
@ -55,7 +55,6 @@ import org.springframework.expression.spel.ast.Projection;
|
|||
import org.springframework.expression.spel.ast.PropertyOrFieldReference;
|
||||
import org.springframework.expression.spel.ast.QualifiedIdentifier;
|
||||
import org.springframework.expression.spel.ast.RealLiteral;
|
||||
import org.springframework.expression.spel.ast.Reference;
|
||||
import org.springframework.expression.spel.ast.Selection;
|
||||
import org.springframework.expression.spel.ast.StringLiteral;
|
||||
import org.springframework.expression.spel.ast.Ternary;
|
||||
|
@ -127,8 +126,6 @@ public class SpelTreeAdaptor extends CommonTreeAdaptor {
|
|||
return new MethodReference(payload);
|
||||
case SpringExpressionsLexer.QUALIFIED_IDENTIFIER:
|
||||
return new QualifiedIdentifier(payload);
|
||||
case SpringExpressionsLexer.REFERENCE:
|
||||
return new Reference(payload);
|
||||
case SpringExpressionsLexer.TYPEREF:
|
||||
return new TypeReference(payload);
|
||||
|
||||
|
|
|
@ -346,29 +346,29 @@ public class EvaluationTests extends ExpressionTestCase {
|
|||
}
|
||||
|
||||
// Bean references
|
||||
public void testReferences01() {
|
||||
evaluate("@(apple).name", "Apple", String.class, true);
|
||||
}
|
||||
|
||||
public void testReferences02() {
|
||||
evaluate("@(fruits:banana).name", "Banana", String.class, true);
|
||||
}
|
||||
|
||||
public void testReferences03() {
|
||||
evaluate("@(a.b.c)", null, null);
|
||||
} // null - no context, a.b.c treated as name
|
||||
|
||||
public void testReferences05() {
|
||||
evaluate("@(a/b/c:orange).name", "Orange", String.class, true);
|
||||
}
|
||||
|
||||
public void testReferences06() {
|
||||
evaluate("@(apple).color.getRGB() == T(java.awt.Color).green.getRGB()", "true", Boolean.class);
|
||||
}
|
||||
|
||||
public void testReferences07() {
|
||||
evaluate("@(apple).color.getRGB().equals(T(java.awt.Color).green.getRGB())", "true", Boolean.class);
|
||||
}
|
||||
// public void testReferences01() {
|
||||
// evaluate("@(apple).name", "Apple", String.class, true);
|
||||
// }
|
||||
//
|
||||
// public void testReferences02() {
|
||||
// evaluate("@(fruits:banana).name", "Banana", String.class, true);
|
||||
// }
|
||||
//
|
||||
// public void testReferences03() {
|
||||
// evaluate("@(a.b.c)", null, null);
|
||||
// } // null - no context, a.b.c treated as name
|
||||
//
|
||||
// public void testReferences05() {
|
||||
// evaluate("@(a/b/c:orange).name", "Orange", String.class, true);
|
||||
// }
|
||||
//
|
||||
// public void testReferences06() {
|
||||
// evaluate("@(apple).color.getRGB() == T(java.awt.Color).green.getRGB()", "true", Boolean.class);
|
||||
// }
|
||||
//
|
||||
// public void testReferences07() {
|
||||
// evaluate("@(apple).color.getRGB().equals(T(java.awt.Color).green.getRGB())", "true", Boolean.class);
|
||||
// }
|
||||
|
||||
// value is not public, it is accessed through getRGB()
|
||||
// public void testStaticRef01() {
|
||||
|
|
|
@ -228,18 +228,18 @@ public class ParsingTests extends TestCase {
|
|||
parseCheck("{'a','b','a','d','e'}.distinct()");
|
||||
}
|
||||
|
||||
// references
|
||||
public void testReferences01() {
|
||||
parseCheck("@(foo)");
|
||||
}
|
||||
|
||||
public void testReferences02() {
|
||||
parseCheck("@(p:foo)");
|
||||
}
|
||||
|
||||
public void testReferences04() {
|
||||
parseCheck("@(a/b/c:foo)", "@(a.b.c:foo)");
|
||||
}// normalized to '.' for separator in QualifiedIdentifier
|
||||
// // references
|
||||
// public void testReferences01() {
|
||||
// parseCheck("@(foo)");
|
||||
// }
|
||||
//
|
||||
// public void testReferences02() {
|
||||
// parseCheck("@(p:foo)");
|
||||
// }
|
||||
//
|
||||
// public void testReferences04() {
|
||||
// parseCheck("@(a/b/c:foo)", "@(a.b.c:foo)");
|
||||
// }// normalized to '.' for separator in QualifiedIdentifier
|
||||
|
||||
// properties
|
||||
public void testProperties01() {
|
||||
|
|
Loading…
Reference in New Issue