4
파서 문법 locals
절에 여러 변수를 정의하고 싶습니다.ANTLR은 locals 절에서 여러 변수 정의를 허용합니까?
단순화 된 예는 다음과 같습니다
body
locals [
Map<String, String> bodyContent = new HashMap<String, String>();
long counter = 0;
]
: BODY_CAPTION NEWLINE line ;
line : key='MyKey' TAB value='MyValue' NEWLINE
{
$body::bodyContent.put($key.text, $value.text);
$body::counter++;
} ;
이 오류를 제공합니다
unknown attribute 'counter' for rule 'body' in '$body::counter'
나는이
locals [
long counter = 0;
Map<String, String> bodyContent = new HashMap<String, String>();
]
같은 locals
절에 라인을 교체하는 경우 오류 :
unknown attribute 'bodyContent' for rule 'body' in '$body::bodyContent'
분명히, ANTLR은 locals
절의 첫 번째 지역 변수 정의를 인식합니다.
locals
아래에 여러 로컬 변수를 정의하는 방법이 있습니까?
그 해결책입니다, 감사합니다! – DCX