В Законе/Flex там способ получить положение в символьном потоке (от запуска файла), в котором появляется маркер? Отчасти как yylineno за исключением того, что это возвращает позицию символа как целое число?
В противном случае, что лучший способ состоит в том, чтобы достигнуть это? Я должен сохранить свой собственный счетчик?
Спасибо!
Вы можете отслеживать позицию символа с помощью yyleng и YY_USER_ACTION. yyleng имеет длину текущего токена, YY_USER_ACTION вызывается перед сопоставлением токена. В YY_USER_ACTION добавьте yyleng в переменную position. Вам нужно будет сбрасывать переменную при каждом маркере в конце строки, если вы не хотите получить позицию символа от начала входного потока. В вашем правиле-действии переменная - yyleng является начальной позицией лексемы.