トークンの簡単なリストを含むASTがあります...
バランスの取れたパラメーターのペアをネストされたツリーにグループ化するだけです。
いろいろなルールを試してきましたが、なかなかうまくいきません...
bottomup : findParams;
findParams
: ^(LIST left+=expression* LPARAM inner? RPARAM right+=expression*)
-> ^(LIST $left* ^(PARAMS inner?) $right*);
inner : (left+=expression* LPARAM inner? RPARAM right+=expression*)
-> $left* ^(PARAMS inner?) $right*) | (a+=expression* -> $a*);
fragment expression = INT;
これはディック言語のようなものですが、ソースではなくツリー上にあります。また、リモートデバッグを使用してパターンマッチングツリーの文法をデバッグすることはできません。これは障害です。