Есть связка flex/bison. Связка эта таскает текст не со стандартного ввода, а из строки, предоставляемой им другой функцией. Bison по большому счёту делает всего две вещи: собирает структуры из полученных токенов и матерится на синтаксические ошибки. Мне нужно как-то получать собранные им структуры. Первый это впихивать в правила bison'а return'ы. Но тогда во-первых получается, что функция которая должна возвращать int возвращает указатель (что как-то не красиво и запутано), а во-вторых она уже не вернёт 0 после успешного разбора и становится не понятно как отследить тот момент когда разбор завершился. Второй это создать некий внешний «стек» при помощи extern'а и писать в него указатели на структуры из yyparse, чтобы потом прочесть их из функции вызвавшей yyparse. Недостатком этого варианта является то что при вызове yyparse из нескольких нитей одновременно стек превратится в кашу (можно конечно залочить стэк на время его использования, а после этого скопировать его локально для вызывающей функции, но это по моему самый крайний случай, да и замок в таком месте обиден и явно не обоснован). Собственно как можно попытаться решить такую задачу?
Ответ на:
комментарий
от Sectoid
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от Sectoid
Ответ на:
комментарий
от KblCb
Ответ на:
комментарий
от Reset
Ответ на:
комментарий
от KblCb
Ответ на:
комментарий
от Reset
Ответ на:
комментарий
от Reset
Ответ на:
комментарий
от KblCb
Ответ на:
комментарий
от Reset
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Новости Bison 3.2 (2018)
- Форум Создать и вернуть структуру из функции (2021)
- Форум bison & gcc (2011)
- Новости Bison 2.0 (2005)
- Форум bison & C++ (2006)
- Форум Стрелочки в bison (2016)
- Форум bison + pointers = UB ? (2016)
- Новости Вышел Bison 2.7 (2012)
- Форум Flex&Bisone конфликты (2020)
- Форум YYSTYPE Bison&Flex (2021)