Я пытаюсь написать (относительно) простой синтаксический анализатор файла конфигурации в flex
/bison
. Основная идея заключается в том, что моя грамматика bison
использует некоторые функции C для организации анализируемых данных в серии C-структур. Я был бы рад опубликовать свой код, если кто-то подумает, что нужно ответить на вопрос, просто прокомментировать.Какова область действия yacc/bison?
Проблема, с которой я сталкиваюсь, включает в себя объем процедур в пределах bison
действий. Например, если у меня есть что-то вроде:
set
: NTOK name {
section *sec
init_s(sec, $2);
add_s(cf, sec);
}
не sec
должны быть доступны в более позднем правило грамматики для использования? Я получаю error: 'sec' undeclared
, когда пытаюсь снова вызвать его в качестве аргумента. Может ли кто-нибудь просветить меня?
Посмотрите на сгенерированный код. –
Что я должен искать? Не уверен, что понимаю. – Pygmalion
Пожалуйста, не редактируйте ответы на вопрос. Комбинация голосования по ответам и вашей способности принять их лучше справляется с их сортировкой для людей, которые приходят позже. – dmckee