나는 오래 전 누군가 다른 사람이 만든 yacc 파일을 가지고 있습니다. 이 파일은 사용자 지정 언어를 설명합니다. 내 목표는 자바 응용 프로그램에서 내 사용자 지정 텍스트 영역에 대한 파서를 만들려면 해당 yacc 파일을 사용하는 것입니다. 최종 목표는 구문이 올바르지 않을 때 오류를 표시하는 것입니다. 현재 (내가 구현 한 yacc 파일이 아닌) 강조 표시를 처리하는 RSyntaxTextArea를 사용하고 있지만 가능한 모든 오류를 감지 할 수있는 파서를 만드는 것이 훨씬 어렵습니다. 어떻게 든 내 자바 응용 프로그램에서 내가 직접 가지고 yacc에 파일을 사용할 수 있다면yacc 파일을 사용하여 Java의 텍스트 영역에서 구문 오류를 감지합니다.
최선의 시나리오는 다음과 같습니다
내가 볼때
나는 세 가지 옵션이 있습니다.두 번째로 좋은 경우는 Java에서 쉽게 사용할 수있는 형식으로 yacc 파일을 구문 분석 할 수있는 방법이 될 것입니다. 필자는 yacc 파일에서 Java 클래스를 생성하는 BYACC/J를 찾았지만 구문 오류 (누락 된 함수, 변수 등)로 가득 차서 너무 잘 풀리지 않았습니다.
세 번째 옵션은 YACC와 자바에서 사용할 수있는 또 다른 파서 생성기를 배우고 그 모든 것을 다시 작성하는 것입니다. 새로운 것을 배우는 것은 결코 나쁜 일이 아닙니다. 그러나 시간이 끝나지 않고 "컴파일러 컴파일러"가 다소 가파른 학습 곡선을 가진 것처럼 보이기 때문에 YACC를 사용할 방법이 없다면 시간을 투자하고 싶을 것입니다. 정의를 직접. JavaCC, Jacc, CUP, ANTLR4 및 기타 다른 많은 잠재 옵션이 있음을 발견 했으므로 가능한 한 yacc에 가깝게 구현 시간을 줄이기 위해 하나를 선택하고 싶습니다. . 도움이 될 것입니다.