Я пытался разобрать простой код, похожий на Lisp / схему
E.g. (func a (b c d) )
и построить из него дерево, я мог бы выполнить синтаксический анализ на C без использования bison
(т. е. используя только flex
для возврата токенов и построения дерева с рекурсией). Но с грамматикой bison
я не уверен, куда добавить код для построения списка (т. Е. какое правило связать с накоплением терминальных символов и где связать построенный список с родительским узлом).
Моя грамматика похожа на приведенную здесь: Грамматика Лиспа в yacc грамматика правильная и может распознать код.
flex
наgnu-flex
, несмотря на встречный совет: meta.stackexchange.com/questions/26460/tag-for-two-flexes/ просто потому, что многим посетителям сайта сложно увидеть значок Adobe на теге. Надеюсь, это скоро будет рассмотрено. Желаем удачи получить ответ на свой вопрос. - person mechanical_meat   schedule 30.06.2010#e#x+e#s+e@-e#l-e
. - person Eli Barzilay   schedule 30.06.2010