봄 표현 해석

3620 단어 express
SPEL 표현 식 지원:
1. 기본 표현 식: 글자 양 표현 식, 관계, 논리 와 산수 연산 표현 식, 문자열 연결 및 캡 처 표현 식, 세 가지 연산 및 Elivis 표현 식, 정규 표현 식, 괄호 우선 순위 표현 식;
2. 클래스 관련 표현 식: 클래스 형식 표현 식, 클래스 실례 화, instanceof 표현 식, 변수 정의 및 인용, 할당 표현 식, 사용자 정의 함수, 대상 속성 액세스 및 안전 네 비게 이 션 표현 식, 대상 방법 호출, Bean 참조;
3. 집합 관련 표현 식: 내 연 List, 내 연 배열, 집합, 사전 방문, 목록, 사전, 배열 수정, 집합 투영, 집합 선택;다 차원 내 연 배열 초기 화 는 지원 되 지 않 습 니 다.내 연 사전 정 의 는 지원 되 지 않 습 니 다.
4. 다른 표현 식: 템 플 릿 표현 식.
주: SpEL 표현 식 의 키 워드 는 대소 문 자 를 구분 하지 않 습 니 다.
표현 식 해석 은 주로 다음 과 같은 세 가 지 를 포함한다.
1. 단어 분해
   규칙 은 다음 과 같 습 니 다.

1.	     [\0] ;
2.	  char  .  charAt(i)
3.	          
a)	     ,     ,          ,   ,$    .
i.	        2 3          
1.	      ,    token  
2.	       ,       token  
b)	+         .
c)	_          
d)	–         
e)	:         
f)	.         
g)	,         
h)	*         
i)	/         
j)	%          
k)	(          
l)	)          
m)	[           
n)	#         
o)	]           
p)	{           
q)	}           
r)	@  @     
s)	^      ^[,        ^[  ,          
t)	!      !=, ![,          ,         
u)	=      ==,          ,          
v)	?      ?[,?:,?.           ,          
w)	$      $[,          ,           .
x)	>      >=,          ,    >     
y)	<     <=,          ,    <     
z)	‘0~9’ , 0x  ,     16  ,     ,           ,   L   long  。  E,       . f float, d double, Long,Int      
aa)	‘ ’,’\t’,’
’,’\r’, bb) ‘\’’, . cc) ‘”’, dd) 0

2. 품사 분석

1.	     token
2.	    token    [    ,   ]
i.	eatLogicalOrExpression[       or]
1.	class OpOr extends Operator
a)	public BooleanTypedValue 
getValueInternal(ExpressionState state)
2.	abstract class Operator extends SpelNodeImpl
3.	class SpelNodeImpl implements SpelNode
4.	Object getValue(ExpressionState expressionState) throws EvaluationException;
5.	 
ii.	eatLogicalAndExpression[   and]
iii.	eatRelationalExpression[   (>,>=,<,<=,==,!=,instanceof, matches, between)]
iv.	eatSumExpression[   (+-)](      +  , EvaluationContext  )
v.	eatProductExpression[   */%]
vi.	eatPowerExpression[ power ^]
vii.	eatUnaryExpression[ +-!]
viii.	eatPrimaryExpression[   ]
ix.	eatStartNode [     ]
1.	int,long,float,Boolean,string push next return pop
2.	(,          ,)push        return true pop
3.	  IDENTIFIER,(, eatPossiblyQualifiedId,)push Type    pop
4.	  IDENTIFIER,null,push null pop(maybeEatNullReference)
5.	  IDENTIFIER ,new,maybeEatConstructorReference, ConstructorReference,pop
6.	  IDENTIFIER,maybeEatMethodOrProperty, 
maybeEatMethodArgs,  ,      ,        
7.	  IDENTIFIER,maybeEatFunctionOrVar,#,    ,
8.	maybeEatBeanReference,@ bean  
9.	maybeEatProjection ![
10.	maybeEatSelection $[
11.	maybeEatSelection [
12.	maybeEatInlineList {}
x.	     .,[,?.          CompoundExpression,    SpelNodeImpl
xi.	Return


3. 문법 트 리 생 성

            
     (^,*/%,+-,><>=<=!===,and,or)
10 * 10 + 1 + 2 * 3 + 5 * 2
	  10(primary)
	  *    10   *  (primary,*)
	  +,  (primary,*),   1,  +  
	  +,  (primary,*),     2,*   2*3    ,     +  
	    …


4. 해석 문법 트 리

좋은 웹페이지 즐겨찾기