我有一个 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;
这有点像 dyck 语言,但在树上而不是源上。此外,我无法使用远程调试来调试模式匹配树语法,这是一个障碍。