/ / синтаксичний аналізатор зубрів бізона з початковою лінією #, відмінною від 1 - бізона, flex-lexer

зубрів сировина з початковою лінією #, відмінною від 1 - бізон, flex-lexer

Я дивлюся на синтаксичний парсер bison + flex з опцією reentrant. Парсер запускається у функції, яка викликає yylex_init(&scanner) де scanner це yyscan_t. %locations ввімкнено

Цей синтаксичний аналізатор використовується для аналізу вбудованих скриптів, розташованих у середині інших файлів. Таким чином, номер рядка не починається з 1.

Проте в синтаксичному аналізаторі поточний номер рядка похований у непрозорому yyscan_t, і я не бачу чистого способу налаштування. Я сподіваюся, що я щось відсутній.

Відповіді:

2 для відповіді № 1

Ви можете використовувати yyset_lineno(int line_number, yyscan_t scanner) , щоб встановити поточний номер рядка.