2015-07-18 3 views
2

Я использую 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-код? (или есть способ сделать сгенерированный код автономным)

+1

Я думаю, что [JavaCC] (https://javacc.java.net/) делает, но это не столь мощным, как ANTLR. – dasblinkenlight

+0

@ dasblinkenlight: это не проблема, мой грамматик прост. Я дам ему попробовать – Ha11owed

+0

Если ваша грамматика достаточно проста, вы можете вручную обработать рекурсивный парсер спуска, который имеет только тот код, который вы выберете для его ввода. См. Http://stackoverflow.com/questions/2245962/is-there-an-alternative-for-flex-bison-that-is-usable-on-8-bit-embedded-systems/2336769#2336769 –

ответ

0

Вы можете избежать каких-либо других зависимостей путем ручного кодирования рекурсивного анализатора спуска (вы можете в конечном итоге ввести некоторые свои собственные, но это полностью зависит от вас) ,

Смотрите мой SO ответ о том, как построить рекурсивный спуск парсер: https://stackoverflow.com/a/2336769/120163

Смежные вопросы