各要素の内容を直接ではなく、要素が表示される順序である配列の「ジオメトリ」にパターンマッチングする方法を探しています。
いくつかの例で私が何を意味するのかを概説しましょう。ターゲット配列が与えられた場合:
array('T_STRING','T_VARIABLE','ASSIGN','T_STRING','LPAREN','T_VARIABLE','COMMA','T_VARIABLE','RPAREN');
//as a matter of fact, these would be the tokens for the PHP code "foo $var = Foo($arg1,$arg2)'
次に、次の「パターン」が一致し、preg_match_all()が文字列に対して行うのと同じように、一致の0ベースのインデックスとグループ化のインデックスが返されます。
array('T_STRING', '?', '(', 'T_VARIABLE', 'ASSIGN' ')', '?',
'T_STRING', 'LPAREN', '(', 'T_VARIABLE', 'COMMA', '?', ')', '?', 'RPAREN');
これは単純化されたPoCにすぎず、私が使用する方法ははるかに複雑であり、PEAR(PHPへのレモンポート)からの完全なパーサジェネレーターを使用したくありません。
それを実行する関数(おそらく内部PHP関数ではない)またはプロジェクトを知っていますか?
ありがとうございました。