2011-06-28 8 views
2

私は素晴らしい答えは得られませんが、しばらくの間これを探してきました。PHPで言語を作成する方法

私は、新しい言語のように定義された構文を解析するチュートリアルやコードを探しています。好ましくは、strtokまたはtokenizerを使用します。

後で解析する簡単な言語を書く必要があります。

ありがとうございました。

編集 言語は非常に簡単です。基本的に変数の代入とループと条件付きチェック。何もない。私は私が得た答えから推測

編集 、タイトルはそうすべきではありません。 "phpで言語を作成する方法"に沿った何かが良いでしょう。ありがとう。

+0

目的とする言語は何ですか?これは単一または複数のパスパーサーであるべきですか?新しい言語はどれほど複雑ですか? –

+3

十分な情報がありません。ごめんなさい。 –

+0

@nick。テンプレート作成用です@バート、私はドキュメントに問題があります。構文解析に関する詳細がないので実際には使用できません。上に申し訳ありませんが、私はブラウザの問題があります。構文解析に関する詳細はありません。上記の申し訳ありませんが、私はブラウザの問題があります。 – frostymarvelous

答えて

3

基本的には、「言語を作る」にはいくつかのステップがあります。まず、あなたの入力を異なるシンボルクラス( "識別子"、 "番号"、 "演算子"など)に属する部分文字列に分割する "字句解析"が必要です。次に、あなたの言語の文法を書き留めます。通常、ある種のBNFを使用します。その後、 バナナを食べる 文法を実際のパーサコードに変換する "パーサージェネレータ"と呼ばれるプログラムを使用し、実際にレクサーとパーサを組み合わせて実際のコンパイラを取得します。

通常、このようなことはCまたはJavaで行われています。私はphpで書かれた作業コンパイラについて聞いたことがありません。それでも、最初の部分(レクサー)にphp tokenizerを使うことができます - あなたの言語がphpに似た構文を持っていると仮定し、http://pear.php.net/package/PHP_ParserGeneratorを使ってパーサを生成してみてください。

申し訳ありませんが、これは少し複雑に聞こえますが、そうです。

+0

ありがとうございます。だから、基本的に、私がしなければならないことは、残りの部分を取り除くことです。ブーストに感謝します。私はCのチュートリアルをいくつかやったが、PHPのために何かが存在することを期待していた。私はCのチュートリアルをいくつかやったが、PHPのために何かが存在することを期待していた。 – frostymarvelous

+0

もう少し検索した後。より良い検索用語を使用して、私はこれを見つけました。私が終わったわけではありませんが、それは有望なようです。すでにいくつかのステップを踏んで説明しています。 – frostymarvelous

2

このリンクAny decent PHP parser written in PHP?は、PHPを使用してPHPの解析について説明しています。

OPのためのこの値は、答えがパーサジェネレータを得るためのいくつかの方法を提供していることです。その中には、PHP自身で実行されるものもあります。

関連する問題