DSL 유형에 대해 JJTree (JavaCC) 구성을 작성했으며 주어진 파일 형식을 성공적으로 토큰 화하고 요청시 AST를 덤프합니다.토큰을 저장하는 데 JavaCC/JJTree를 어떻게 사용합니까?
문제는 현재 토큰을 저장하지 않아 트리의 각 노드가 비어 있다는 것입니다 (예제를 이해할 수 없음).
SimpleNode Start() #Root : {} {
(
(Section1())?
(Section2())?
(Section3())*
) {
return jjtThis;
}
}
void Section3() #Section3 : {}
{
<SECTION_3> Identifier() <LBRACE >
Header()
(Details() <SEMICOLON>)*
<RBRACE>
}
내가 조 제 1 항, 제 2 장 및 섹션 3에 참조 목록에 대한 참조를 저장하는 루트 노드를 좋아하는 것 : 여기
내 .jjt 파일의 일부입니다. Section3 노드에서 식별자, 헤더 블록을 저장하고 세부 정보 블록의 목록을 유지합니다.
내 채우기 .jjt 파일은 수백 줄이지만,이 두 섹션에 대해 이해할 수 있으면 JJTree의 작동 방식을 이해할 수 있다고 생각합니다. JJTree를 올바르게 사용하는 방법을 알려주십시오.
감사합니다.
고마워. 가능한 경우 사용자 정의 노드 클래스를 정의하지 않고이 예제를 처리하는 방법을 보여줄 수 있습니까 (기존 JJTree 정의 노드 유형에서 사용자 정의 토큰을 저장하는 필드는 어떻게 추가합니까)? 즉, 첫 번째 단락에서 설명하는 방법의 예를 들어보십시오. – Chris