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.63 2000/01/04 01:29:11 grubba Exp $"); + RCSID("$Id: docode.c,v 1.64 2000/01/04 01:32:04 grubba Exp $");   #include "las.h"   #include "program.h"   #include "language.h"   #include "pike_types.h"   #include "stralloc.h"   #include "interpret.h"   #include "constants.h"   #include "array.h"   #include "pike_macros.h"   #include "error.h"
pike.git/src/docode.c:866:    DO_CODE_BLOCK(CDR(n));      #ifdef PIKE_DEBUG    if(sp-save_sp != cases)    fatal("Count cases is wrong!\n");   #endif       f_aggregate(cases);    order=get_switch_order(sp[-1].u.array);    +  if (!num_parse_error) {    /* Check for cases inside a range */    for(e=0; e<cases-1; e++)    {    if(order[e] < cases-1)    {    int o1=order[e]*2+2;    if(current_switch_jumptable[o1]==current_switch_jumptable[o1+1] &&    current_switch_jumptable[o1]==current_switch_jumptable[o1+2])    {    if(order[e]+1 != order[e+1])    yyerror("Case inside range.");    e++;    }    }    } -  +  }       if(current_switch_default < 0)    current_switch_default = ins_label(-1);       for(e=1;e<cases*2+2;e++)    if(current_switch_jumptable[e]==-1)    current_switch_jumptable[e]=current_switch_default;       order_array(sp[-1].u.array,order);