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;
|
INTEGER_LITERAL;
|
||||||
EXPRESSION;
|
EXPRESSION;
|
||||||
QUALIFIED_IDENTIFIER;
|
QUALIFIED_IDENTIFIER;
|
||||||
REFERENCE;
|
|
||||||
PROPERTY_OR_FIELD;
|
PROPERTY_OR_FIELD;
|
||||||
INDEXER;
|
INDEXER;
|
||||||
CONSTRUCTOR;
|
CONSTRUCTOR;
|
||||||
|
|
@ -97,7 +96,6 @@ startNode
|
||||||
parenExpr
|
parenExpr
|
||||||
| methodOrProperty
|
| methodOrProperty
|
||||||
| functionOrVar
|
| functionOrVar
|
||||||
| reference
|
|
||||||
| indexer
|
| indexer
|
||||||
| literal
|
| literal
|
||||||
| type
|
| type
|
||||||
|
|
@ -152,17 +150,6 @@ methodArgs : LPAREN! (argument (COMMA! argument)* (COMMA!)?)? RPAREN!;
|
||||||
// access id as a child of the new node.
|
// access id as a child of the new node.
|
||||||
property: id=ID -> ^(PROPERTY_OR_FIELD[$id]);
|
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=range (COMMA r2=range)* RBRACKET -> ^(INDEXER $r1 ($r2)*);
|
||||||
indexer: LBRACKET r1=argument (COMMA r2=argument)* RBRACKET -> ^(INDEXER $r1 ($r2)*);
|
indexer: LBRACKET r1=argument (COMMA r2=argument)* RBRACKET -> ^(INDEXER $r1 ($r2)*);
|
||||||
|
|
|
||||||
|
|
@ -1,83 +1,82 @@
|
||||||
GREATER_THAN_OR_EQUAL=71
|
GREATER_THAN_OR_EQUAL=69
|
||||||
SELECT_FIRST=52
|
SELECT_FIRST=50
|
||||||
COMMA=45
|
COMMA=44
|
||||||
HOLDER=12
|
HOLDER=11
|
||||||
GREATER_THAN=70
|
GREATER_THAN=68
|
||||||
TYPE=54
|
TYPE=52
|
||||||
EXPRESSIONLIST=4
|
EXPRESSIONLIST=4
|
||||||
MINUS=36
|
MINUS=35
|
||||||
MAP_ENTRY=21
|
MAP_ENTRY=20
|
||||||
SELECT_LAST=53
|
SELECT_LAST=51
|
||||||
NUMBER=25
|
NUMBER=24
|
||||||
LESS_THAN=68
|
LESS_THAN=66
|
||||||
BANG=41
|
BANG=40
|
||||||
FALSE=62
|
FALSE=60
|
||||||
METHOD=22
|
METHOD=21
|
||||||
PROPERTY_OR_FIELD=9
|
PROPERTY_OR_FIELD=8
|
||||||
LBRACKET=47
|
LBRACKET=45
|
||||||
INDEXER=10
|
INDEXER=9
|
||||||
MOD=39
|
MOD=38
|
||||||
CONSTRUCTOR_ARRAY=13
|
CONSTRUCTOR_ARRAY=12
|
||||||
FUNCTIONREF=15
|
FUNCTIONREF=14
|
||||||
NULL_LITERAL=58
|
NULL_LITERAL=56
|
||||||
NAMED_ARGUMENT=14
|
NAMED_ARGUMENT=13
|
||||||
OR=33
|
OR=32
|
||||||
PIPE=77
|
PIPE=75
|
||||||
DOT=42
|
DOT=41
|
||||||
RCURLY=50
|
RCURLY=48
|
||||||
EXPRESSION=6
|
EXPRESSION=6
|
||||||
AND=34
|
AND=33
|
||||||
LCURLY=55
|
LCURLY=53
|
||||||
REAL_TYPE_SUFFIX=84
|
REAL_TYPE_SUFFIX=83
|
||||||
STRING_LITERAL=56
|
STRING_LITERAL=54
|
||||||
SELECT=51
|
SELECT=49
|
||||||
QUALIFIED_IDENTIFIER=7
|
QUALIFIED_IDENTIFIER=7
|
||||||
RBRACKET=48
|
RBRACKET=46
|
||||||
SUBTRACT=24
|
SUBTRACT=23
|
||||||
ASSIGN=27
|
ASSIGN=26
|
||||||
BETWEEN=74
|
BETWEEN=72
|
||||||
RPAREN=32
|
RPAREN=31
|
||||||
SIGN=85
|
SIGN=84
|
||||||
LPAREN=31
|
LPAREN=30
|
||||||
HEX_DIGIT=65
|
HEX_DIGIT=63
|
||||||
PLUS=35
|
PLUS=34
|
||||||
LIST_INITIALIZER=19
|
LIST_INITIALIZER=18
|
||||||
APOS=78
|
APOS=76
|
||||||
INTEGER_LITERAL=5
|
INTEGER_LITERAL=5
|
||||||
AT=46
|
AT=80
|
||||||
ID=44
|
ID=43
|
||||||
NOT_EQUAL=67
|
NOT_EQUAL=65
|
||||||
RANGE=17
|
RANGE=16
|
||||||
POWER=40
|
POWER=39
|
||||||
TYPEREF=16
|
TYPEREF=15
|
||||||
DECIMAL_DIGIT=63
|
DECIMAL_DIGIT=61
|
||||||
WS=80
|
WS=78
|
||||||
IS=73
|
IS=71
|
||||||
DOLLAR=81
|
DOLLAR=79
|
||||||
LESS_THAN_OR_EQUAL=69
|
LESS_THAN_OR_EQUAL=67
|
||||||
SEMIRPAREN=26
|
SEMIRPAREN=25
|
||||||
DQ_STRING_LITERAL=57
|
DQ_STRING_LITERAL=55
|
||||||
HEXADECIMAL_INTEGER_LITERAL=59
|
HEXADECIMAL_INTEGER_LITERAL=57
|
||||||
MAP_INITIALIZER=20
|
MAP_INITIALIZER=19
|
||||||
IN=72
|
IN=70
|
||||||
SEMI=76
|
SEMI=74
|
||||||
CONSTRUCTOR=11
|
CONSTRUCTOR=10
|
||||||
INTEGER_TYPE_SUFFIX=64
|
INTEGER_TYPE_SUFFIX=62
|
||||||
EQUAL=66
|
EQUAL=64
|
||||||
MATCHES=75
|
MATCHES=73
|
||||||
DOT_ESCAPED=79
|
DOT_ESCAPED=77
|
||||||
UPTO=82
|
UPTO=81
|
||||||
QMARK=29
|
QMARK=28
|
||||||
REFERENCE=8
|
PROJECT=47
|
||||||
PROJECT=49
|
DEFAULT=27
|
||||||
DEFAULT=28
|
COLON=29
|
||||||
COLON=30
|
DIV=37
|
||||||
DIV=38
|
STAR=36
|
||||||
STAR=37
|
REAL_LITERAL=58
|
||||||
REAL_LITERAL=60
|
VARIABLEREF=17
|
||||||
VARIABLEREF=18
|
EXPONENT_PART=82
|
||||||
EXPONENT_PART=83
|
TRUE=59
|
||||||
TRUE=61
|
ADD=22
|
||||||
ADD=23
|
POUND=42
|
||||||
POUND=43
|
'new'=85
|
||||||
'new'=86
|
|
||||||
|
|
|
||||||
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;}
|
@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
|
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
|
INTEGER_LITERAL
|
||||||
: (DECIMAL_DIGIT)+ (INTEGER_TYPE_SUFFIX)?;
|
: (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)?;
|
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: '=';
|
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: '==';
|
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: '!=';
|
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: '<';
|
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: '<=';
|
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: '>';
|
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: '>=';
|
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';
|
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';
|
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';
|
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';
|
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';
|
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: ';';
|
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: '.';
|
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: ',';
|
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: '(';
|
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: ')';
|
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: '{';
|
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: '}';
|
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: '[';
|
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: ']';
|
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: '|';
|
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';
|
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';
|
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';
|
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';
|
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: '+';
|
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: '-';
|
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: '/';
|
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: '*';
|
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: '%';
|
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: '^';
|
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: '!';
|
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: '#';
|
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: '?';
|
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: '??';
|
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: '!{';
|
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: '?{';
|
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: '^{';
|
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: '${';
|
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(';
|
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|~'\'')* '\''!;
|
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: '"'! (~'"')* '"'!;
|
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)*;
|
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: '\\.';
|
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; } ;
|
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: '$';
|
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: '@';
|
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: '..';
|
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: ':';
|
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 :
|
REAL_LITERAL :
|
||||||
('.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |
|
('.' (DECIMAL_DIGIT)+ (EXPONENT_PART)? (REAL_TYPE_SUFFIX)?) |
|
||||||
((DECIMAL_DIGIT)+ '.' (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)+ (EXPONENT_PART) (REAL_TYPE_SUFFIX)?) |
|
||||||
((DECIMAL_DIGIT)+ (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 : '\''! '\'';
|
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' ;
|
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' );
|
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';
|
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)+ ;
|
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 : '+' | '-' ;
|
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';
|
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.PropertyOrFieldReference;
|
||||||
import org.springframework.expression.spel.ast.QualifiedIdentifier;
|
import org.springframework.expression.spel.ast.QualifiedIdentifier;
|
||||||
import org.springframework.expression.spel.ast.RealLiteral;
|
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.Selection;
|
||||||
import org.springframework.expression.spel.ast.StringLiteral;
|
import org.springframework.expression.spel.ast.StringLiteral;
|
||||||
import org.springframework.expression.spel.ast.Ternary;
|
import org.springframework.expression.spel.ast.Ternary;
|
||||||
|
|
@ -127,8 +126,6 @@ public class SpelTreeAdaptor extends CommonTreeAdaptor {
|
||||||
return new MethodReference(payload);
|
return new MethodReference(payload);
|
||||||
case SpringExpressionsLexer.QUALIFIED_IDENTIFIER:
|
case SpringExpressionsLexer.QUALIFIED_IDENTIFIER:
|
||||||
return new QualifiedIdentifier(payload);
|
return new QualifiedIdentifier(payload);
|
||||||
case SpringExpressionsLexer.REFERENCE:
|
|
||||||
return new Reference(payload);
|
|
||||||
case SpringExpressionsLexer.TYPEREF:
|
case SpringExpressionsLexer.TYPEREF:
|
||||||
return new TypeReference(payload);
|
return new TypeReference(payload);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -346,29 +346,29 @@ public class EvaluationTests extends ExpressionTestCase {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bean references
|
// Bean references
|
||||||
public void testReferences01() {
|
// public void testReferences01() {
|
||||||
evaluate("@(apple).name", "Apple", String.class, true);
|
// evaluate("@(apple).name", "Apple", String.class, true);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void testReferences02() {
|
// public void testReferences02() {
|
||||||
evaluate("@(fruits:banana).name", "Banana", String.class, true);
|
// evaluate("@(fruits:banana).name", "Banana", String.class, true);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void testReferences03() {
|
// public void testReferences03() {
|
||||||
evaluate("@(a.b.c)", null, null);
|
// evaluate("@(a.b.c)", null, null);
|
||||||
} // null - no context, a.b.c treated as name
|
// } // null - no context, a.b.c treated as name
|
||||||
|
//
|
||||||
public void testReferences05() {
|
// public void testReferences05() {
|
||||||
evaluate("@(a/b/c:orange).name", "Orange", String.class, true);
|
// evaluate("@(a/b/c:orange).name", "Orange", String.class, true);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void testReferences06() {
|
// public void testReferences06() {
|
||||||
evaluate("@(apple).color.getRGB() == T(java.awt.Color).green.getRGB()", "true", Boolean.class);
|
// evaluate("@(apple).color.getRGB() == T(java.awt.Color).green.getRGB()", "true", Boolean.class);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void testReferences07() {
|
// public void testReferences07() {
|
||||||
evaluate("@(apple).color.getRGB().equals(T(java.awt.Color).green.getRGB())", "true", Boolean.class);
|
// evaluate("@(apple).color.getRGB().equals(T(java.awt.Color).green.getRGB())", "true", Boolean.class);
|
||||||
}
|
// }
|
||||||
|
|
||||||
// value is not public, it is accessed through getRGB()
|
// value is not public, it is accessed through getRGB()
|
||||||
// public void testStaticRef01() {
|
// public void testStaticRef01() {
|
||||||
|
|
|
||||||
|
|
@ -228,18 +228,18 @@ public class ParsingTests extends TestCase {
|
||||||
parseCheck("{'a','b','a','d','e'}.distinct()");
|
parseCheck("{'a','b','a','d','e'}.distinct()");
|
||||||
}
|
}
|
||||||
|
|
||||||
// references
|
// // references
|
||||||
public void testReferences01() {
|
// public void testReferences01() {
|
||||||
parseCheck("@(foo)");
|
// parseCheck("@(foo)");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void testReferences02() {
|
// public void testReferences02() {
|
||||||
parseCheck("@(p:foo)");
|
// parseCheck("@(p:foo)");
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void testReferences04() {
|
// public void testReferences04() {
|
||||||
parseCheck("@(a/b/c:foo)", "@(a.b.c:foo)");
|
// parseCheck("@(a/b/c:foo)", "@(a.b.c:foo)");
|
||||||
}// normalized to '.' for separator in QualifiedIdentifier
|
// }// normalized to '.' for separator in QualifiedIdentifier
|
||||||
|
|
||||||
// properties
|
// properties
|
||||||
public void testProperties01() {
|
public void testProperties01() {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue