pike.git / src / operators.c

version» Context lines:

pike.git/src/operators.c:1:   /*   || 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: operators.c,v 1.242 2008/08/26 20:33:14 nilsson Exp $ + || $Id: operators.c,v 1.243 2008/08/28 15:15:42 grubba Exp $   */      #include "global.h"   #include <math.h>   #include "interpret.h"   #include "svalue.h"   #include "multiset.h"   #include "mapping.h"   #include "array.h"   #include "stralloc.h"
pike.git/src/operators.c:1795:    else if(first_arg[0]->type && second_arg[0]->type &&    pike_types_le(first_arg[0]->type, int_type_string) &&    pike_types_le(second_arg[0]->type, int_type_string))    {    emit0(F_ADD_INTS);    }    else    {    emit0(F_ADD);    } +  modify_stack_depth(-1);    return 1;       case 3:    first_arg = my_get_arg(&_CDR(n), 0);    second_arg = my_get_arg(&_CDR(n), 1);    third_arg = my_get_arg(&_CDR(n), 2);       if(first_arg[0]->type == float_type_string &&    second_arg[0]->type == float_type_string)    {    do_docode(*first_arg, 0);    do_docode(*second_arg, 0);    emit0(F_ADD_FLOATS); -  +  modify_stack_depth(-1);    if (third_arg[0]->type == float_type_string) {    do_docode(*third_arg, 0);    emit0(F_ADD_FLOATS); -  +  modify_stack_depth(-1);    return 1;    }    }    else if(first_arg[0]->type && second_arg[0]->type &&    pike_types_le(first_arg[0]->type, int_type_string) &&    pike_types_le(second_arg[0]->type, int_type_string))    {    do_docode(*first_arg, 0);    do_docode(*second_arg, 0);    emit0(F_ADD_INTS); -  +  modify_stack_depth(-1);    if (third_arg[0]->type &&    pike_types_le(third_arg[0]->type, int_type_string)) {    do_docode(*third_arg, 0);    emit0(F_ADD_INTS); -  +  modify_stack_depth(-1);    return 1;    }    }    else    {    return 0;    }    do_docode(*third_arg, 0);    emit0(F_ADD); -  +  modify_stack_depth(-1);       return 1;       default:    return 0;    }   }      static node *optimize_eq(node *n)   {