Есть ли готовые решения для лексического/синтаксического анализатора?
У меня задача из входного текстового файла выделить структуры данных и записать их в базу данных. Текст в текстовом файле представляет из себя некий формальный язык.
Я начал искать инфу что да как, понял что нужно выделить лексемы сначала, потом провести синтаксический анализ. Как я понял все это делается с помощью конечного автомата.
Например var number = 20, занести в таблицу "Переменные" запись с названием и со значением.
Правильно ли я понимаю порядок действий? :
- Написать лексический анализатор
- Синтаксический анализатор
Есть ли готовые средства для этого (слышал что то про генераторы лексических анализаторов, но пока не смотрел)?
Ответы (1 шт):
Разумеется есть: ANTLR, yacc/bison + lex/flex. Но задача реализации языка, пусть даже и примитивного, не так проста как может показаться. Если опыта нет, придётся потратить значительное время, чтобы углубиться в тему.
P.S.: Если задача только хранить/читать/писать данные, может имеет смысл выбрать другой способ их представления: XML, JSON, CSV и прочее.