2010-03-20 2 views
2

정수를 구문 분석하고 antlr 3.2에서 해당 값에 액세스하려고합니다.ANTLR - c/C++에서 토큰 값에 액세스

//token definition 

INT : '0'..'9'+; 

//rule to access token value: 

start : val=INT   {Integer x = Integer.valueOf($val.text).intValue(); } 

; 

을 ... 그러나 나는 C에서 이것에 대한 솔루션/C++를 찾을 수 없습니다 :

이미 자바에서이 작업을 수행하는 방법을 알게되었습니다. 누군가 이것을하는 방법을 알고 있습니까?

+1

이것은 귀하의 질문에 대답하지 않지만, 그 코드에서 문자열을 '정수'로 구문 분석하고 'int'로 변환 한 다음 다시 정수로 변환합니다. 'intValue' 스텝을 건너 뛰거나'x'를'int'로 바꿀 수 있습니다. –

답변

0

예 : v3/C/C.g에 따르면 http://www.antlr.org/download/examples-v3.tar.gz $ INT.text-> chars는 C에서 작동해야하지만 테스트하지 않았습니다.

C 프로그램에서 파서 외부에서 AST를 탐색하고 ANTLR3_BASE_TREE 유형의 노드가 있으면 node-> getText (node) -> chars를 사용하여 액세스 할 수 있습니다 (사용 이후 테스트 됨). 이 자신).

C 및 C++ 대상은 완전히 다른 두 가지 항목입니다. 나는 C 타겟만을 사용하므로 C++에 대해서는별로 말할 수 없다.

그럼에도 불구하고 예제는 유감스럽게도 잘 설명되어 있지 않은 세부 정보를 배우는 데 유용한 리소스입니다.

+0

빠른 답장을 보내 주셔서 감사합니다 $ INT.text-> chars는 char 포인터를 반환하고 문제를 해결합니다. –