0
ANTLR에 대한 도움이 필요합니다. 구문 분석을위한여러 요소가있는 ANTLR 규칙
datasource
@init{boolean joinexpr = false;}
:
(s1=datasourceelement (joinclause1=joinclause joinelement1=datasourceelement onclause1=onclause (multijoinexpression)* {joinexpr=true;})?)
-> {joinexpr}? ^(JOINEXPRESSION
^(LEFTEXPR $s1?)
$joinclause1?
^(RIGHTEXPR $joinelement1?) $onclause1? multijoinexpression*
)
-> $s1
;
multijoinexpression
:
joinclause datasourceelement onclause
->
^(MULTIJOINEXPRESSION
joinclause
^(RIGHTEXPR datasourceelement) onclause
)
;
밖으로 표현 가입 : 나는 다음과 같은 규칙이 그것은() (필드 = 필드 (테이블/쿼리)에 가입
그러나이 같은 분석 할 수있는 "()"각 가입 주위에, 그래서 내가 처리해야합니다(테이블/쿼리)를 먹는다) *
을 5,는(((표 1 가입 표 2 ON 필드 1 = FIELD2) 가입 표 3 ON FIELD2 = FIELD3) 가입 ...) 잘 작동 괄호없이
,하지만 난 왼쪽을 추가하는 방법을 알아낼 수 없습니다 다중 결합 표현 덕분에 오른쪽 괄호가 적용됩니다. *