2011-01-20 10 views
3
function yy_r9_1($yy_subpatterns) 
    { 

    $this->token = Smarty_Internal_Templateparser::TP_PHP_CODE; 
    $this->yypopstate(); 
    } 

上記はPHPのsmartyのレクサーですから、誰でも何を意味するのですか?yy_r9_1は何を意味していますか?レクサーの命名規則とは何ですか?

答えて

1

yyは、衝突を避けるためのYACCのプレフィックスです。 YACCが構築された時代に戻ると、構造体でなくても名前空間やクラスは存在しませんでした。実際にはYACCは最初にCの前身であるBに書かれました。

r9はおそらくルール番号9を表し、1は複数の関数の処理を必要とするルールの増分接頭辞です。

しかし、私が間違っていて、これらの文字列が何か他のものを意味していても、私はあなたがこの情報を利用することはできません。これは、レクサーとパーサの内部を深く理解することを必要とし、文法の規則の最後ではありません。文法を理解していれば、それを変更し、サブルーチンを使用したり、操作したりする代わりに、レクサーを再生成することもできます。