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.94 1999/11/05 01:45:30 grubba Exp $"); + RCSID("$Id: las.c,v 1.95 1999/11/05 17:06:43 grubba 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:1960:    break;       case F_LOR:    /* !x || !y -> !(x && y) */    if(CAR(n)->token==F_NOT && CDR(n)->token==F_NOT)    {    tmp1=mknode(F_NOT,mknode(F_LAND,CAAR(n),CADR(n)),0);    CAAR(n)=CADR(n)=0;    goto use_tmp1;    } +  /* 0 || Y -> Y */ +  if (node_is_false(CAR(n))) goto use_cdr; +  /* 1 || Y -> 1 */ +  if (node_is_true(CAR(n))) goto use_car;    break;       case F_LAND:    /* !x && !y -> !(x || y) */    if(CAR(n)->token==F_NOT && CDR(n)->token==F_NOT)    {    tmp1=mknode(F_NOT,mknode(F_LOR,CAAR(n),CADR(n)),0);    CAAR(n)=CADR(n)=0;    goto use_tmp1;    } -  +  /* 0 && Y -> 0 */ +  if (node_is_false(CAR(n))) goto use_car; +  /* 1 && Y -> Y */ +  if (node_is_true(CAR(n))) goto use_cdr;    break;       case '?':    /* (! X) ? Y : Z -> X ? Z : Y */    if(CAR(n)->token == F_NOT)    {    tmp1=mknode('?',CAAR(n),mknode(':',CDDR(n),CADR(n)));    CAAR(n)=CDDR(n)=CADR(n)=0;    goto use_tmp1;    }