static PT_Tree pTree(PT_Tree tree, int *i) { if (PT_isTreeAmb(tree)) { return pAmb(tree, i); } else if (PT_isTreeAppl(tree)) { return pAppl(tree, i); } else { return tree; } }
static PT_Tree flattenTreeAgain(PT_Tree tree) { if (PT_isTreeAppl(tree)) { PT_Production prod = PT_getTreeProd(tree); PT_Args args = PT_getTreeArgs(tree); args = flattenArgsAgain(args); if (PT_isProductionList(prod)) { args = flattenListAgain(prod, args); } return PT_setTreeArgs(tree, args); } else if (PT_isTreeAmb(tree)) { PT_Args ambs = PT_getTreeArgs(tree); ambs = flattenArgsAgain(ambs); return PT_setTreeArgs(tree, ambs); } return tree; }