Мне нужны некоторые инструкции для разбора файла правил .drl AKA a Drools. Файл drl определяется грамматикой ANTLR3, которую можно найти здесь . Ранее я работал с грамматикой g4, используя ANTLR v4 грамматический плагин для IntelliJ, я мог легко сгенерировать i) Дерево разбора для файла образца AND ii) Посетитель. java файл для этой конкретной грамматики .
Мне также нужно сгенерировать два выше для ANTLR3, т.е. i) Дерево разбора для файла Sample.drl ii) Файл посетителя. java для DroolsRule.g , который может принимать Sample. java в качестве входных данных для синтаксического анализа.
Я попытался сгенерировать файл .dot для AST, выполнив следующие шаги для ответа Bart Kiers на этот вопрос . Но, пытаясь сгенерировать лексеры и парсеры на шаге 1, как указано выше, например
java -cp antlr-3.3.jar org.antlr.Tool Java.g
, я получаю следующую ошибку
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
at java.lang.Class.getMethod0(Class.java:3018)
at java.lang.Class.getMethod(Class.java:1784)
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: antlr.ANTLRException
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
Кроме того, я не смог найти, можно ли сгенерировать гость. java. как функция для DroolsRule.g с использованием ANTLR3.