Я хочу реализовать язык сценариев в своем приложении. Просто для того, чтобы контролировать поведение, определять правила и т. Д.
Я не нашел причины использовать Lua вместо bison / yacc или наоборот. Каковы преимущества и недостатки этих инструментов?
С точки зрения реализации Lua, кажется, гораздо проще реализовать, в то время как yacc / bison требует научиться писать разметку синтаксического анализатора, но тогда у меня есть автономный синтаксический анализатор. Кроме того, в чем различия?
Это совершенно разные вещи, и не совсем сопоставимые. Lua — это (встраиваемый) язык сценариев, Bison / yacc, с помощью которого вы можете написать лексер и парсер для языка.
С Bison / Yacc вам все равно придется реализовать реальный механизм выполнения (VM, любой другой) для вашего языка сценариев.
Поэтому, если вы хотите, чтобы в вашем приложении был встроен язык сценариев, lua предоставит вам один «из коробки». Bison / yacc предоставляют вам (некоторые из) инструменты для его реализации.
Если по какой-то причине вам нужен парсер, вы можете использовать bison / yacc или посмотреть lpeg в Lua, в зависимости от вашего варианта использования.