ドキュメント関数とそのパラメーター、クラスとそのメソッド、変数などに関する情報を取得するために、PHP と JavaScript のドキュメント構造を解析する必要があります...それを行うための解決策があるかどうか疑問に思っています (正規表現はありません) ...「レクシング」と呼ばれるものについて聞いたことがありますが、これが私が探しているものであるかどうかを判断できる例でさえ、例を見つけることができませんでした...
前もって感謝します
字句解析を「字句解析」することで、LexとYaccという名前でほとんど機能する古代のツールがいくつかあります。Lexはトークナイザーを構築し、Yaccは「まだ別のコンパイラーコンパイラー」の略で、実際のパーサーです。
lex / Yaccの概念は、言語の文法を作成し、その文法をpaslexツールで実行して、ファイルの解析と特定のキーワードおよびトークンに対するアクションの実行に使用できるソースコード(通常はC)を生成することです。 。Martin Waldenburgは、PasLexという名前のlex / yaccのパスカルバージョンを作成しました。これは、10年以上前から動き回っており、Delphiに変換されています(ただし、マイナーな作業がないと最新バージョンでは機能しない可能性があります)。私の記憶が正しければ、lexと同じ.L文法入力ファイルを使用するため、出力としてpascalコードを取得することを除いて、lex/yaccで見つかったドキュメントをpaslexに適用することもできます。
現在のドキュメントの入手可能性についてはよくわかりません。インターネット(ガスプ)の前は本を使っていましたが、そのほとんどは長い間黄色に変わった紙に大量に記録されていました...しかし、噂では、Amazonから古本を手に入れることができるかもしれません。2006年に再出版されたように見える「ドラゴンブック」としても知られている本を使って、これに歯を食いしばりました。
編集:
私はツールと間違えられました、それはTPLYでした。PasLexはデルファイ文法の実装でした...TPLYは.Lファイルからパスカルソースを生成するLex/Yaccツールでした。
これが実現可能かどうかはわかりませんが、PHP の場合、Delphi から PHP CLI を呼び出して情報を取得できますか?
その場合は、token_get_all()を呼び出して、結果を Delphi で解析できるもの (おそらく xml、json など) で吐き出すことができます。これがレクシングです。これに関する問題は、問題の半分しか解決されていないことです。必要な結果を得るには、コンテキスト内の各トークンを理解する必要があります。