Skip to content
Snippets Groups Projects
Commit 83b0750b authored by Henrik (Grubba) Grubbström's avatar Henrik (Grubba) Grubbström
Browse files

Improved support for SHARED_NODES_MK2.

Rev: bin/mktreeopt.pike:1.30
parent 8d1126fb
No related branches found
No related tags found
No related merge requests found
/*
* $Id: mktreeopt.pike,v 1.29 2000/05/15 21:24:39 grubba Exp $
* $Id: mktreeopt.pike,v 1.30 2000/05/15 21:26:40 grubba Exp $
*
* Generates tree-transformation code from a specification.
*
......@@ -236,7 +236,7 @@ constant header =
"/* Tree transformation code.\n"
" *\n"
" * This file was generated from %O by\n"
" * $Id: mktreeopt.pike,v 1.29 2000/05/15 21:24:39 grubba Exp $\n"
" * $Id: mktreeopt.pike,v 1.30 2000/05/15 21:26:40 grubba Exp $\n"
" *\n"
" * Do NOT edit!\n"
" */\n"
......@@ -1031,7 +1031,7 @@ string generate_match(array(object(node)) rule_set, string indent)
" ((CA%sR(n)->master?CA%sR(n)->master:CA%sR(n))==\n" +
indent + " (%s->master?%s->master:%s)))\n"
"#endif /* SHARED_NODES_MK2 */\n" +
indent + ") {\n",
indent + " ) {\n",
tpos, expr,
tpos, expr,
tpos, tpos, tpos,
......@@ -1095,7 +1095,17 @@ string generate_match(array(object(node)) rule_set, string indent)
} else {
res += indent;
}
res += sprintf("if (CD%sR(n) == %s) {\n", tpos, expr);
sprintf("if ((CD%sR(n) == %s)\n"
"#ifdef SHARED_NODES_MK2\n" + indent +
" || (CD%sR(n) && %s &&\n" + indent +
" ((CD%sR(n)->master?CD%sR(n)->master:CD%sR(n))==\n" +
indent + " (%s->master?%s->master:%s)))\n"
"#endif /* SHARED_NODES_MK2 */\n" +
indent + " ) {\n",
tpos, expr,
tpos, expr,
tpos, tpos, tpos,
expr, expr, expr);
res += generate_match(exacts[expr], indent + " ");
res += indent + "}";
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment