Pozerám sa na bison + flex parser s možnosťou reentrant. Analyzátor sa spúšťa vo funkcii, ktorá volá yylex_init(&scanner)
kde scanner
je a yyscan_t
. %locations
je zapnutá.
Tento syntaktický analyzátor sa používa na analýzu vložených skriptov nachádzajúcich sa v strede iných súborov. Číslo riadku teda nezačína od 1.
Avšak v analyzátore reentrant je aktuálne číslo riadku uložené v nepriehľadnom yyscan_t
a nevidím čistý spôsob zriadenia. Dúfam, že mi niečo chýba.
odpovede:
2 pre odpoveď č. 1Môžeš použiť yyset_lineno(int line_number, yyscan_t scanner)
pre nastavenie aktuálneho čísla riadku.