나는 자바 문법을 사용하여 Java 코드에 대한 AST를 생성 ANTLR을 통해 일하고 있어요 그리고 난 파일을 컴파일하려면 명령 줄을 사용하고, 나는이 문제를 가지고 : 나는 antlrworks을 사용 이 Java.g와 -1-1.4.3.jar하고, javac의로 파일을 컴파일 할 때, 나는 antlrworks-1.5.jar와 ANTLR-1.3.jar를 사
일단 ANTLR 문법에서 생성 된 AST가 있으면 Visitor 패턴을 적용하는 방법을 이해하려고합니다. 나무를 횡단하는 것과는 다른 접근 방식입니까? 예를 들어 , 나는 다음과 같은 AST (From this question)가 가정 내가 원하는 경우에 appened FUNDEF IDS 모든 VARDECL ID에, 나의 접근 방식은 모든 찾기 위해 트리
내가 ANTLR3C의 V3.4을 사용하고 , 여기에 문법의 조각입니다 : include_cmd
: Include Double_Quote file_name Double_Quote
{
my_model->add_include($file_name.text, LT(0)->getLine(LT(0)));
}
;
하지만
Antlr3에 대한 렉서 규칙을 만들려고합니다. 삼중 인용 문자열과 일치합니다. 예를 들어 : """this is some text"""
이 내가 그것을하고 있어요 방법은 다음과 같습니다 TEXT:
'"""' ('\\"' | ~'"')+ '"""'
{
this.setText(
this.getText()
.s
기본 ANTLR 기반 검색을 수행하려고합니다. 원하는 토큰과 일치하지 않는 렉서에 문제가 있습니다. 상기 문법 lexer grammar DefaultLexer;
ALPHANUM : (LETTER | DIGIT)+;
ACRONYM : LETTER '.' (LETTER '.')+;
HOST : ALPHANUM (('.' | '-') ALPHANUM)
antlr의 C 대상에 대한 몇 가지 질문이 있습니다. 더 가비지 컬렉션이 없기 때문에 (나는 libantlr3c-3.4을 사용하고 있습니다), 나는 메모리 나 자신을 정리, 그래서 난 내 데이터 구조가 채워집니다 및 구문 분석이 완료 모든 파서 데이터 후 버리고 싶어 . 각각의 모든 객체를 걷고 명시 적으로 삭제하는 대신 전체 파서 메모리를 삭제하는 간단
다음 언어를 정의해야하며, ANTLR은 쉽게 비밀을 알려주고 있지 않습니다. ui {
screen X {
input()
checkbox()
}
}
model {
// any text
// even {}
}
나는 ui: UI OBR (screen)* CBR;
screen: ....
model : MOD
루프 잠시 안녕을 위해, 가 나는 동안 루프를 구문 분석을위한 C 문법이 필요합니다. 예를 들어, 다음 코드를 구문 분석해야한다고 가정 해보십시오. A = 20
B = 1
WHILE(A < 30)
//function call
A = A + B
ENDWHILE
표현식을 구문 분석하고 평가해야합니다. 나는 몇몇 단계를 따라하고 문법을 썼지 만, 그
내가 지금까지 http://www.ibrezina.net/OracleSQL.tgz를 시작하기 위해 노력하고있어 대한 OracleSQL 문법 시작하기, 나는 다음을 수행했습니다 다음과 같은 오류가 발생 wget http://www.ibrezina.net/OracleSQL.tgz
tar xvzf OracleSQL.tgz
cd OracleSQL
make