簡體   English   中英

在詞法分析期間訪問 Flex 狀態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM