pike.git / src / las.c

version» Context lines:

pike.git/src/las.c:1:   /*\   ||| This file a part of Pike, and is copyright by Fredrik Hubinette   ||| Pike is distributed as GPL (General Public License)   ||| See the files COPYING and DISCLAIMER for more information.   \*/   /**/   #include "global.h" - RCSID("$Id: las.c,v 1.86 1999/09/11 08:15:55 hubbe Exp $"); + RCSID("$Id: las.c,v 1.87 1999/09/16 23:56:10 hubbe Exp $");      #include "language.h"   #include "interpret.h"   #include "las.h"   #include "array.h"   #include "object.h"   #include "stralloc.h"   #include "dynamic_buffer.h"   #include "lex.h"   #include "pike_types.h"
pike.git/src/las.c:347:    check_tree(a,0);    check_tree(b,0);    res = mkemptynode();    CAR(res) = a;    CDR(res) = b;    res->node_info = 0;    res->tree_info = 0;    if(a) a->parent = res;    if(b) b->parent = res;    -  /* We try to optimize most things, but argument lists are hard... */ -  if(token != F_ARG_LIST && (a || b)) -  res->node_info |= OPT_TRY_OPTIMIZE; +        switch(token)    {    case F_CATCH:    res->node_info |= OPT_SIDE_EFFECT;    break;       case F_APPLY:    if(a && a->token == F_CONSTANT &&    a->u.sval.type == T_FUNCTION &&
pike.git/src/las.c:371:    {    res->node_info |= a->u.sval.u.efun->flags;    }else{    res->node_info |= OPT_SIDE_EFFECT | OPT_EXTERNAL_DEPEND; /* for now */    }    break;       case F_MAGIC_INDEX:    case F_MAGIC_SET_INDEX:    res->node_info |= OPT_EXTERNAL_DEPEND; +  break;       case F_UNDEFINED:    res->node_info |= OPT_EXTERNAL_DEPEND | OPT_SIDE_EFFECT;    break;       case F_RETURN:    res->node_info |= OPT_RETURN;    break;       case F_BREAK:
pike.git/src/las.c:406:       case F_ASSIGN:    case F_INC:    case F_DEC:    case F_POST_INC:    case F_POST_DEC:    res->node_info |= OPT_ASSIGNMENT;    break;       default: +  /* We try to optimize most things, but argument lists are hard... */ +  if(token != F_ARG_LIST && (a || b)) +  res->node_info |= OPT_TRY_OPTIMIZE; +     res->tree_info = res->node_info;    if(a) res->tree_info |= a->tree_info;    if(b) res->tree_info |= b->tree_info;    }    res->token = token;    res->type = 0;         #ifdef PIKE_DEBUG    if(d_flag > 3)