pike.git / src / docode.c

version» Context lines:

pike.git/src/docode.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: docode.c,v 1.112 2001/04/15 15:37:19 mast Exp $"); + RCSID("$Id: docode.c,v 1.113 2001/06/07 08:26:47 hubbe Exp $");   #include "las.h"   #include "program.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"   #include "pike_macros.h"   #include "pike_error.h"   #include "pike_memory.h"
pike.git/src/docode.c:707:    emit0(F_ASSIGN_AND_POP);    return 0;    }else{    emit0(F_ASSIGN);    return 1;    }       case F_ASSIGN:    switch(CAR(n)->token)    { +  case F_RANGE:    case F_AND:    case F_OR:    case F_XOR:    case F_LSH:    case F_RSH:    case F_ADD:    case F_MOD:    case F_SUBTRACT:    case F_DIVIDE:    case F_MULTIPLY:    if(node_is_eq(CDR(n),CAAR(n)))    {    tmp1=do_docode(CDR(n),DO_LVALUE);    if(match_types(CDR(n)->type, array_type_string) ||    match_types(CDR(n)->type, string_type_string))    { -  code_expression(CDAR(n), 0, "binary operand"); -  emit0(F_LTOSVAL2); +  switch(do_docode(check_node_hash(CDAR(n)), 0)) +  { +  case 1: emit0(F_LTOSVAL2); break; +  case 2: emit0(F_LTOSVAL3); break; + #ifdef PIKE_DEBUG +  default: +  fatal("Arglebargle glop-glyf?\n"); + #endif +  }    }else{    emit0(F_LTOSVAL); -  code_expression(CDAR(n), 0, "binary operand"); +  do_docode(check_node_hash(CDAR(n)), 0);    }       emit0(CAR(n)->token);       emit0(n->token);    return n->token==F_ASSIGN;    }       default:    switch(CDR(n)->token)