PHPはa Bison grammar fileなので、PHPは完全なコンテキストフリー言語です。PHPは完全に文脈自由言語ですか、文脈依存部分を持っていますか?
答えて
私は、数学と解釈解析を混在させていると思います。
構造とデータを見て、質問の背後にある根拠を判断してください。
「構造とデータを見てください」また、私は質問を改訂しました、うまくいけば、これはもっと簡単に答えることができますか? – RelaXNow
私は上記のJazzのコメントに同意します。あなたの質問を精緻化して、SOの仕組みに沿ったものにしてください。 – infrared411
あなたがそれを見ていない場合に備えて私がこれを言いたいと思ったのは、これが純粋な学習のためでなければ、あなたに多くの時間を節約するかもしれません。
ソースファイルをトークンに解析するPHP Tokenizer Functionsをチェックしてください。次に、トークンを踏み越えてソースを調べることができます。
この例では、トークンにソースファイルを読み込み、そして取り除かコメントでそれを再生するPHP.netから取られました:
<?php
/*
* T_ML_COMMENT does not exist in PHP 5.
* The following three lines define it in order to
* preserve backwards compatibility.
*
* The next two lines define the PHP 5 only T_DOC_COMMENT,
* which we will mask as T_ML_COMMENT for PHP 4.
*/
if (!defined('T_ML_COMMENT')) {
define('T_ML_COMMENT', T_COMMENT);
} else {
define('T_DOC_COMMENT', T_ML_COMMENT);
}
$source = file_get_contents('example.php');
$tokens = token_get_all($source);
foreach ($tokens as $token) {
if (is_string($token)) {
// simple 1-character token
echo $token;
} else {
// token array
list($id, $text) = $token;
switch ($id) {
case T_COMMENT:
case T_ML_COMMENT: // we've defined this
case T_DOC_COMMENT: // and this
// no action on comments
break;
default:
// anything else -> output "as is"
echo $text;
break;
}
}
}
?>
ありがとう!もっと学習プロジェクトであり、PHPを使ったトークン化には、PHPバージョンのトークン(それよりも小さい、より小さい)用に書かれたPHPコードをトークン化できないという欠点があります。 PHP 5.2)。 – RelaXNow
あなたは、PHPのためのパーサを構築している場合は、を見てください。既存のもの:
https://github.com/nikic/PHP-Parser - これはPHPで書かれており、スタンドアロンのPHPパーサーです。
https://github.com/svalaskevicius/ionPulse/tree/master/ionParticles/ionPhp/phpParser - この1つは<で機能テストを持つC++で書かれたionPulse IDE用のphp-サポートプラグイン、の一部である...>/ionTests/phpparsertest.h [まだ進行中の作業]
- 1. 文脈自由言語の連合
- 2. 言語から文脈自由文法への移動
- 3. C言語を文脈自由にするには?
- 4. VimとPython:言語メソッドの文脈に依存しないオートコンプリート
- 5. NLTK文脈自由文法
- 6. 文脈自由文法
- 7. 文脈依存文法
- 8. 次の言語を生成する文脈自由文法を与える
- 9. 文の文脈自由文法
- 10. 文脈自由言語で1または2の右側変数
- 11. 文脈自由文法 - 計算理論
- 12. 文脈自由文法変換
- 13. NLTK文脈自由文法の制作
- 14. 文脈自由文法の解析
- 15. 文脈自由文法とC++
- 16. 文脈自由文法と逆転
- 17. 文脈自由文法のアルゴリズム
- 18. 次の言語のための文脈自由文法を書く
- 19. 現代プログラミング言語の「正規表現」は本当に「文脈依存文法」ですか?
- 20. ネストと不等式を持つ文脈自由文法
- 21. 文脈自由文法の一部大きな謎
- 22. WはWがどこに属しているのですか?{a、b} *文脈自由な言語ですか? Wは、{A、B} *文脈自由言語に属しているところ
- 23. プッシュダウンオートマトンと無限要素を含む文脈自由で規則的な言語
- 24. L = {1^n(n + 1)/ 2}は文脈自由ですか?
- 25. ε端末は文脈自由ですか?
- 26. 誰もこの文脈自由文法を私に説明できますか?
- 27. Chomsky Normal Formで文脈自由文法を構築する
- 28. 文脈自由文法以外の文法を分析できるツールはありますか?
- 29. は、通常、文脈自由、またはその他と分類されます
- 30. 正規表現を記述する文脈自由文法?
ビルPHPのパーサです。同様の質問:http://stackoverflow.com/questions/9652436私はSOが最高の場所になると信じていますが、別のスタック交換の提案は大歓迎です! – RelaXNow