この記事では、PC 側の WeChat スキャン QR コード登録とログインのサンプル コードを詳しく説明します
語彙部分を書いた後は、たくさんの雑用があり、週末にようやく時間ができて、素晴らしい文法解析部分を実装できます。
コードを完成させた後、ステータスマシンを除くとプログラムが短すぎることがわかり、(コメントを含む) は 186 行しかなく、キーコードは 100 行未満でした。 デバッグを実行した後、問題がないことがわかりました。 OneThink では実際に function.php を解析できます。このファイルは PHP プログラムのマスターとも言えます。このファイルにはさまざまな種類のモンスターや幽霊が含まれており、デバッグするときは非常に面倒です。もちろん言いません、笑
プログラムが短すぎるので、みんなが秘密を理解していない場合に備えて詳しく説明します:)
私たちはその文法を知っています解析には通常、LL (1)、LR(0)、SLR(1)、LALR(1)、LR(1) などの分析方法があります。より一般的なものは LL(1)、LR(0)
LL です。この分析方法は左から右にスキャンして左から推定します。LR は左から右にスキャンして右から推定します。 , LRは解析表を使用しており、LLよりLRの方が難易度が高く、解析能力もLLより高く、変化量もLRの方が多くなります。したがって、このような楽しいプロジェクトには、当然、LR を使用して、新しい (zhuang) (zhuang) (zhuang) (新しい (bi)) を着実に作成する必要があります。
LRアナライザーのモデルは以下の通りです。
2 つのスタックが含まれており、その最も重要なジョブは LR 分析テーブルを生成することです。もちろん、教科書に書かれている古典的な方法に素直に従うつもりはありません。新しい(lan)をどのように作成するか?これが鍵です。
SLR(1)、LALR(1)、LR(1) はすべて LR(0) の改良点であることがわかります。最も重要なのは (1) で、これは将来を見据えていることを表します。なぜ楽しみにしているのでしょうか?分析テーブルのサイズを削減します。将来的には無数の可能性があり、その可能性は減少し、分析の規模も大幅に縮小されます。解析の規模を小さくしたい場合は先を見据えなければならず、見れば見るほど解析テーブルは小さくなり、逆にプログラミングは難しくなります。では、難易度を上げたり分析テーブルを減らしたりせずに、前を見ずに立ったままお金を稼ぐ方法はありますか?
はい、これはシニアの怠け者にとっては問題ではありません。先を見据える必要性は、A → Abc などの文法表現から来ていることがわかっています。その 1 つの式の長さが長ければ長いほど、不確実性が大きくなります。したがって、メソッド式の最大長を制限すると、この長さ内で 100% の確実性が保証され、先読みする必要はまったくありません。このメソッドを長さ制限 LR、つまり LLLR(0,n), n>=3 と名付けました。 ということで、今回は解析方法として当然LLLR(0,3)を選択し、実装の都合上、状態保存をしないことにしましたので、解析テーブルを生成する必要もテーブルも生成する必要もありませんテーブル …
くそー!これでは怠けすぎます。状態を保存しないということは、毎回最初から検索する必要があることを意味します。効率はプログラマの命です。
式の最大長は 3 で、最大検索ステップは 3 ステップです。心配しないでください。 :)
これが 100 行の超シンプルな Php コンパイラーの秘密です。どうですか、新しいもの (bi) を作成するだけで十分です。ソースコードはここにあります: ConverterV0.4.
zipお楽しみください!
以上がPC側WeChatコードスキャン登録とログインサンプルコードの詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。