我有一個很久以前由其他人創建的yacc文件。該文件描述了一種自定義語言。我的目標是使用該yacc文件爲我的Java應用程序中的自定義文本區域創建解析器。當語法不正確時,最終目的是顯示錯誤。 我目前正在使用RSyntaxTextArea,它很好地處理突出顯示(基於我自己的實現,而不是yacc文件),但創建一個可以檢測用戶可能發生的每個可能錯誤的解析器是一項非常困難的任務。使用yacc文件檢測Java中文本區域的語法錯誤
我看到它的方式,我有三個選擇:
最理想的情況是,如果以某種方式,我可以在我的Java應用程序中使用YACC文件我有直接。
第二種最好的情況是,如果有辦法將yacc文件解析爲我可以在Java中輕鬆使用的格式。我發現BYACC/J從yacc文件創建了一個Java類,但是我得到的文件充斥着語法錯誤(缺少的函數,變量等),所以沒有太好的工作。
正如我所看到的,第三個選擇是學習YACC和另一個我可以在Java中使用的解析器生成器,並重寫整個事情。學習新事物從來不是一件壞事,但由於我的時間不是無窮無盡,這些「編譯器編譯器」似乎有一個相當陡峭的學習曲線,我只想投入時間,如果沒有辦法使用YACC直接定義。 因爲我發現JavaCC,Jacc,CUP,ANTLR4和其他很多可能的選項之間有很多潛在的選擇,我想選擇一個儘可能接近yacc的選項以減少實施時間。 任何幫助,將不勝感激。