Ejemplo n.º 1
0
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;
  }
}
Ejemplo n.º 2
0
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;
}