저는 ANTLR을 사용하기 시작했으며, plsql.g4 문법을 사용하여 간단한 PL/SQL 문을 구문 분석하는 테스트를 시도하려고합니다. Getting Started with ANTLR v4에 사용 된 형식을 따르고 있습니다. ANTLR4에 포함 된 PL/SQL 문법은 어떻게 테스트 할 수 있습니까?
다음 명령
는 문제없이 실행 :antlr4 plsql.g4
java org.antlr.v4.Tool plsql.g4
javac plsql*.java
은 시작 예, 그들은 다음 명령을 실행 : '안녕하세요'는 문법과 'R의 이름입니다
grun Hello r -tree
을 '는 생산 규칙 중 하나입니다.
sql_script
: (unit_statement | sql_plus_command)* EOF
;
그래서 내가 그렇게 같은 PL/SQL 파서를 호출하려고 : 문법은 'sql_script'생산 규칙이 입력 스트림의 마지막에 다음에 0 개 이상의 단위 진술 또는 SQLPLUS 명령으로 구성되어 있음을 나타냅니다 : 간단한 PL/SQL의에 대한 파스 트리를 생성하기 위해이 문법 파서를 호출하는 올바른 방법을 무엇
Can't load plsql as lexer or parser
:
grun plsql sql_script -tree
는 그러나 나는 다음과 같은 오류가 발생합니다 발언? JDK 8을 Windows 컴퓨터에서 사용하고 있습니다. 다음은 내 터미널 창의 내용을 보여주는 screenshot입니다.
나는 모든 명령을 실행 했으므로 모든 것이 작동합니다! 나는'plsqlLexer.class' 파일을 삭제할 때 오류를 재현 할 수 있습니다. 'plsqlLexer.class'와'plsqlParser $ *. class' 파일이있는 디렉토리에서'grun plsql sql_script -tree' 명령을 실행 하시겠습니까? – Quepas
예. 다음은 내 터미널 창의 내용을 보여주는 [screenshot] (http://imgur.com/9EIfkuh)입니다. – Dyndrilliac
스크린 샷 :'ls' 명령으로 나열된'plsqlParser $ * .class' 파일이 모두 작은 따옴표로 묶여있는 이유는 무엇입니까? – Quepas