2011-01-14 42 views
0

this fileのように、私の意見では宣言だけで十分です。lexでルールが必要なのはなぜですか?

字句解析でルールが必要な理由を説明できる人はいますか?

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

ときyypopstateに、そしてyypushstate:私の意見では

は彼らが私のようなブロックについて話している

ルールことで... .yファイルでのみ必要としていますか?

答えて

0

入力する文字の意味が不明瞭な場合は、の状態と入力します。レクサーは"(引用符)を検出した場合

することは、あなたがそれ以外の場合は特別な意味を持っているでしょう任意の次の文字は、(すなわち+-、など)を考慮している「文字列」と呼ばれる状態を(yypushstate)と入力します文字列の一部。 "文字列"状態は、レクサーが別のものに遭遇したときに終了します(yypopstate"

フレックスでは、これらの状態はstart conditionsと呼ばれます。

+0

lex解析にも状態がある場合、文法解析とは何か異なりますか? – java

+0

字句状態は、文法を定義するのではなく、入力を区別する目的にのみ役立ちます。彼らは例えば減らすことはできません。 –

関連する問題