Я использую antlr, чтобы сгенерировать парсер java, но сгенерированный код имеет ссылки на библиотеку antlr.Генератор парсера Java, который генерирует автономный код
// Generated from Sentences.g by ANTLR. Needs the JAR... How to avoid this?
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.misc.*;
...
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class SentencesParser extends Parser {
static { RuntimeMetaData.checkVersion("4.5.1", RuntimeMetaData.VERSION); }
...
Есть ли альтернатива, которая генерирует автономного Java-код? (или есть способ сделать сгенерированный код автономным)
Я думаю, что [JavaCC] (https://javacc.java.net/) делает, но это не столь мощным, как ANTLR. – dasblinkenlight
@ dasblinkenlight: это не проблема, мой грамматик прост. Я дам ему попробовать – Ha11owed
Если ваша грамматика достаточно проста, вы можете вручную обработать рекурсивный парсер спуска, который имеет только тот код, который вы выберете для его ввода. См. Http://stackoverflow.com/questions/2245962/is-there-an-alternative-for-flex-bison-that-is-usable-on-8-bit-embedded-systems/2336769#2336769 –