2011-01-14 52 views
0

this file,在我看來只有宣言就夠了。爲什麼它需要lex中的規則?

任何人都可以解釋爲什麼規則是必要的詞法分析?

在我看來他們只是在.y文件需要...

通過規則我說的像塊:

rdels { 
    if ($this->smarty->auto_literal) { 
    $this->token = Smarty_Internal_Templateparser::TP_OTHER; 
    } else { 
    $this->token = Smarty_Internal_Templateparser::TP_RDEL; 
    $this->yypopstate(); 
    } 
} 

何時yypopstateyypushstate

回答

0

你輸入狀態,當字符輸入可能有含糊不清的含義。

如果詞法分析器遇到"(報價),你可能會進入一個名爲其中任何下面的字符,否則將有特殊含義(即+-等)被認爲是「串」狀態(yypushstate)部分字符串。當詞法分析器遇到另一個"時,「字符串」狀態完成(yypopstate)。

在flex中,這些狀態被稱爲start conditions

+0

如果lex分析也有狀態,那麼與語法分析有什麼區別? – java 2011-01-14 11:06:29

相關問題