[英]Accessing States of Flex during lexical analysis
所以,我為我的詞法分析創建了 al 文件。 我定義了一種模式如下
<str,chars,comment,text_block,text_block_chars><<EOF>> {printf("%d", yy_top_state()); showError("", EOF_ERROR); return(0);}
在這里,我想根據 state 給出錯誤。 我知道我的 lex.yy.c 文件中有 yy_top_state() 和 yy_current_buffer() 函數,它存儲當前的 state。但是我無法訪問那些 function。
有人可以告訴我是否有任何其他方法可以僅通過 .l 文件訪問我當前的 state。
(這里的 str、chars 等是狀態,showError() 是我定義的其他一些 function)
謝謝你。
當前的 state 可通過宏YY_START
(以及YYSTATE
)獲得。 該值是一個小的 integer,其中INITIAL
的值為 0。
據我所知,無法在運行時獲取開始條件的符號名稱。 State 名稱是預處理器宏,因此在編譯詞法分析器之前它們早已消失,並且在生成的詞法分析器之外不可用。 但是構建一個查找表(在詞法分析器中)會很容易。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.