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
Branches
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. * Generates tree-transformation code from a specification.
* *
...@@ -236,7 +236,7 @@ constant header = ...@@ -236,7 +236,7 @@ constant header =
"/* Tree transformation code.\n" "/* Tree transformation code.\n"
" *\n" " *\n"
" * This file was generated from %O by\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" " *\n"
" * Do NOT edit!\n" " * Do NOT edit!\n"
" */\n" " */\n"
...@@ -1095,7 +1095,17 @@ string generate_match(array(object(node)) rule_set, string indent) ...@@ -1095,7 +1095,17 @@ string generate_match(array(object(node)) rule_set, string indent)
} else { } else {
res += indent; 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 += generate_match(exacts[expr], indent + " ");
res += indent + "}"; res += indent + "}";
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment