From e04aa35847baaf64517ad82b9fac7885f702ccd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Fri, 12 Nov 1999 19:51:04 +0100 Subject: [PATCH] Now uses ADD_NOED_REF2(). Rev: bin/mktreeopt.pike:1.22 --- bin/mktreeopt.pike | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/bin/mktreeopt.pike b/bin/mktreeopt.pike index dc1d8f5840..2c120d8524 100644 --- a/bin/mktreeopt.pike +++ b/bin/mktreeopt.pike @@ -1,5 +1,5 @@ /* - * $Id: mktreeopt.pike,v 1.21 1999/11/12 14:32:53 grubba Exp $ + * $Id: mktreeopt.pike,v 1.22 1999/11/12 18:51:04 grubba Exp $ * * Generates tree-transformation code from a specification. * @@ -125,7 +125,7 @@ constant header = "/* Tree transformation code.\n" " *\n" " * This file was generated from %O by\n" -" * $Id: mktreeopt.pike,v 1.21 1999/11/12 14:32:53 grubba Exp $\n" +" * $Id: mktreeopt.pike,v 1.22 1999/11/12 18:51:04 grubba Exp $\n" " *\n" " * Do NOT edit!\n" " */\n" @@ -523,13 +523,18 @@ string fix_action(string s) new_node = b * ""; - string clean_up = "\n"; + string pre_cleanup = "\n"; + string post_cleanup = "\n"; if (sizeof(used_nodes)) { - clean_up = "\nADD_NODE_REF(" + - (indices(used_nodes) * ");\nADD_NODE_REF(") + ");\n"; + pre_cleanup = "\n ADD_NODE_REF2(" + + (indices(used_nodes) * ",\n ADD_NODE_REF2(") + ",\n "; + post_cleanup = "\n " + (")" * sizeof(used_nodes)) + ";\n"; } - a[i] = "tmp1" + new_node + clean_up + "goto use_tmp1;" + rest; + a[i] = pre_cleanup + + " tmp1" + new_node + + post_cleanup + + " goto use_tmp1;" + rest; } s = a * ""; @@ -696,19 +701,23 @@ void parse_data() action = "goto use_cdr;"; break; default: - string fix_refs = ""; + string pre_fix_refs = ""; + string post_fix_refs = ""; if (sizeof(t)) { - fix_refs = " ADD_NODE_REF(" + - t * ");\n ADD_NODE_REF(" + - ");\n"; + pre_fix_refs = " ADD_NODE_REF2(" + + t * ",\n ADD_NODE_REF2(" + + ",\n "; + post_fix_refs = " " + (")" * sizeof(t)) + ";\n"; } action = sprintf("{\n" + "%s" " tmp1 = %s;\n" "%s" " goto use_tmp1;\n" "}", + pre_fix_refs, expr, - fix_refs); + post_fix_refs); break; } } else { -- GitLab