diff --git a/src/las.c b/src/las.c index c627b12f0d5d7079f22060219f35f398cdab3ba0..edeb53acb632cb3816398e2355cd5a0df89cd081 100644 --- a/src/las.c +++ b/src/las.c @@ -2,7 +2,7 @@ || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information. -|| $Id: las.c,v 1.357 2005/02/15 18:17:35 grubba Exp $ +|| $Id: las.c,v 1.358 2005/02/18 13:49:33 grubba Exp $ */ #include "global.h" @@ -1775,102 +1775,6 @@ void resolv_program(node *n) } } -node *recursive_add_call_arg(node *n, node *arg) -{ - node *tmp; - - if (!n) { - /* Earlier parse error. */ - return NULL; - } - - switch(n->token) - { - case F_ASSIGN: - case F_INC: - case F_DEC: - case F_POP_VALUE: - tmp=recursive_add_call_arg(CAR(n), arg); -#ifdef SHARED_NODES - if(tmp != n) - { - n=defrost_node(n); - _CAR(n)=tmp; - n=freeze_node(n); - } -#else - _CAR(n)=tmp; -#endif - break; - - case F_AUTO_MAP: - case F_APPLY: - if(CAR(n) && CAR(n)->token == F_CONSTANT && - CAR(n)->u.sval.type == T_FUNCTION && - CAR(n)->u.sval.subtype == FUNCTION_BUILTIN && - CAR(n)->u.sval.u.efun->name && - CAR(n)->u.sval.u.efun->name->str[0]=='`') - { - /* FALL THROUGH */ - }else{ - tmp=mknode(F_ARG_LIST, CDR(n), arg); -#ifdef SHARED_NODES - n=defrost_node(n); - _CDR(n)=tmp; - n=freeze_node(n); -#else - _CDR(n)=tmp; -#endif - break; - } - - case F_OR_EQ: - case F_XOR_EQ: - case F_LSH_EQ: - case F_RSH_EQ: - case F_ADD_EQ: - case F_SUB_EQ: - case F_MULT_EQ: - case F_MOD_EQ: - case F_DIV_EQ: - case F_ARG_LIST: - case F_LOR: - case F_LAND: - tmp=recursive_add_call_arg(CDR(n), arg); -#ifdef SHARED_NODES - { - n=defrost_node(n); - _CDR(n)=tmp; - n=freeze_node(n); - } -#else - _CDR(n)=tmp; -#endif - break; - - case F_CAST: - case F_SOFT_CAST: - tmp=recursive_add_call_arg(CAR(n), arg); -#ifdef SHARED_NODES - { - n=defrost_node(n); - _CAR(n)=tmp; - n=freeze_node(n); - } -#else - _CAR(n)=tmp; -#endif - break; - - default: - yyerror("Syntax error in implicit lambda."); - free_node(arg); - break; - } - - return n; -} - node *index_node(node *n, char *node_name, struct pike_string *id) { node *ret; diff --git a/src/las.h b/src/las.h index c75c1ea0937d88d5e2e641b5fa22bbcf598e5bca..4448527b7a6b95fad817bd9d9d57d3bfcc742d05 100644 --- a/src/las.h +++ b/src/las.h @@ -2,7 +2,7 @@ || This file is part of Pike. For copyright information see COPYRIGHT. || Pike is distributed under GPL, LGPL and MPL. See the file COPYING || for more information. -|| $Id: las.h,v 1.70 2004/12/18 18:06:18 grubba Exp $ +|| $Id: las.h,v 1.71 2005/02/18 13:50:12 grubba Exp $ */ #ifndef LAS_H @@ -181,7 +181,7 @@ extern struct node_hash_table node_hash; #define SCOPE_SCOPED 2 #define SCOPE_SCOPE_USED 4 -BLOCK_ALLOC_FILL_PAGES(node_s, 2) +BLOCK_ALLOC_FILL_PAGES(node_s, 2); /* Prototypes begin here */ int car_is_node(node *n); @@ -213,7 +213,6 @@ node *debug_mksoftcastnode(struct pike_type *type, node *n); void resolv_constant(node *n); void resolv_class(node *n); void resolv_class(node *n); -node *recursive_add_call_arg(node *n, node *arg); node *index_node(node *n, char *node_name, struct pike_string *id); int node_is_eq(node *a,node *b); node *debug_mktypenode(struct pike_type *t);