在Lex/Flex中,是否有一種方法可以獲取令牌出現在字符流中的位置(從文件的開頭)?有點像yylineno,只是它將字符位置作爲整數返回?使用Lex/Flex的掃描儀中的字符位置
如果沒有,最好的方法是什麼?我需要保留自己的櫃檯嗎?
謝謝!
在Lex/Flex中,是否有一種方法可以獲取令牌出現在字符流中的位置(從文件的開頭)?有點像yylineno,只是它將字符位置作爲整數返回?使用Lex/Flex的掃描儀中的字符位置
如果沒有,最好的方法是什麼?我需要保留自己的櫃檯嗎?
謝謝!
您可以使用yyleng和YY_USER_ACTION來跟蹤字符位置。 yyleng具有當前令牌的長度,YY_USER_ACTION在匹配令牌之前被調用。在YY_USER_ACTION中,將yyleng添加到位置變量。除非需要從輸入流開始的字符位置,否則您需要重置每個行尾標記處的變量。在您的規則操作中,變量 - yyleng是令牌的起始位置。
太棒了!謝謝! – ChrisDiRulli 2010-02-14 17:26:30
位置從文件的開頭還是從行的開頭? – 2010-02-14 04:30:02
從文件開始的位置 – ChrisDiRulli 2010-02-14 05:30:22