ホームページ >バックエンド開発 >PHPチュートリアル >Phunkieによる機能プログラミング:PHP JSONパーサーの構築
この2部構成のチュートリアルでは、Phunkie機能ライブラリを使用してPHPのパーサーコンビネーターの構築を示しています。 図書館の作成者であるMarcello Duarteは、プロセスを案内します。
このチュートリアルは、より高度なシーケンスと選択戦略に進む基本的なパーサーの概念に基づいています。
a (満足)パーサーが導入され、特定の述語を満たしているかどうかを確認します。 、
、およびプリミティブパーサーを活用します。 sat
、item
、result
、zero
、sat
などの単純なパーサーに構築できます。
char
digit
lower
upper
コンビネーターを使用すると、2つのパーサーを選択できます。 これは、改善された構文のためにクラス内のメソッドとして実装されます。
(小文字または大文字)および(文字または数字)パーサーを例示します。
plus
or
再帰的な組み合わせParser
letter
alphanum
再帰的な組み合わせは、非決定的な解析を可能にします。
パーサーは、より大きな入力内の特定の文字列を認識します。 回帰は、スタックオーバーフローを避けるために慎重に処理されます 簡単な繰り返し
word
string
パーサーは繰り返しを一般化し、パーサーのゼロ以上の発生を可能にします。
(自然数)パーサーとパーサーはを使用して構築され、整数に解析された結果をキャストします。
セパレーターによる繰り返しmany
many1
nat
int
コンビネーターは、別のパーサーによって区切られた繰り返しを処理します。 これは、PHPアレイのスタイルで整数の解析リストにmany1
パーサーを作成するために使用されます(例えば、
ヘルパー関数はこれをさらにリファクタリングします。
a jsonパーサーsepBy1
ints
JSONパーサーは、以前に定義されたコンビネーターを使用して構築されています。 [1,-42,500]
パーサーは、他の特殊なパーサー(例えば、surrounded
、
、、)を組み合わせて、トップレベルの選択パーサーとして機能します。
コンビネーターは配列を構築するために使用され、不変のマップはJSONオブジェクトに使用されます。チュートリアルは、Phunkieリポジトリと著者のパーサーコンビネーターリポジトリへのリンクで終了します。 著者は、Twitterで質問やコメントを奨励しています
[1] - Phunkie Repository:https://www.php.cn/link/630d790d0716246ca1aa250a6f86f755 [2] - Marcello Duarteのパーサーコンビネーターリポジトリ: https://www.php.cn/link/793aaa24e931c05d077f434e33485574
以上がPhunkieによる機能プログラミング:PHP JSONパーサーの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。