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.29 1998/01/30 20:04:31 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.30 1998/02/01 04:01:32 hubbe 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:242:       if(flags & DO_LVALUE)    {    switch(n->token)    {    default:    yyerror("Illegal lvalue.");    emit(F_NUMBER,0);    return 1;    +  case F_ARRAY_LVALUE:    case F_LVALUE_LIST:    case F_LOCAL:    case F_GLOBAL:    case F_IDENTIFIER:    case F_INDEX:    case F_ARROW:    case F_ARG_LIST:    case F_EXTERNAL:    break;    }
pike.git/src/docode.c:966:       current_break=break_save;    current_continue=continue_save;    current_switch_jumptable = prev_switch_jumptable;    return 1;    }       case F_LVALUE_LIST:    return do_docode(CAR(n),DO_LVALUE)+do_docode(CDR(n),DO_LVALUE);    +  case F_ARRAY_LVALUE: +  tmp1=do_docode(CAR(n),DO_LVALUE); + #ifdef DEBUG +  if(tmp1 & 1) +  fatal("Very internal compiler error.\n"); + #endif +  emit(F_ARRAY_LVALUE, tmp1>>1); +  return 2; +     case F_ARROW:    if(CDR(n)->token != F_CONSTANT || CDR(n)->u.sval.type!=T_STRING)    fatal("Bugg in F_ARROW, index not string.");    if(flags & DO_LVALUE)    {    /* FIXME!!!! */    tmp1=do_docode(CAR(n), 0);    emit(F_ARROW_STRING, store_prog_string(CDR(n)->u.sval.u.string));    return 2;    }else{