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.193 2000/08/27 12:57:06 grubba Exp $"); + RCSID("$Id: las.c,v 1.194 2000/08/27 14:29:09 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:1732:       case F_IDENTIFIER:    if(needlval) fputc('&', stderr);    if (Pike_compiler->new_program) {    fprintf(stderr, "%s",ID_FROM_INT(Pike_compiler->new_program, foo->u.id.number)->name->str);    } else {    fprintf(stderr, "unknown identifier");    }    break;    +  case F_EXTERNAL: +  if(needlval) fputc('&', stderr); +  { +  struct program_state *state = Pike_compiler; +  char *name = "external"; +  int program_id = foo->u.integer.a; +  while(state && (state->new_program->id != program_id)) { +  state = state->previous; +  } +  if (state) { +  int id_no = foo->u.integer.b; +  struct identifier *id = ID_FROM_INT(state->new_program, id_no); +  if (id && id->name) { +  name = id->name->str; +  } +  } +  fprintf(stderr, "%s", name); +  } +  break; +     case F_TRAMPOLINE:    if (Pike_compiler->new_program) {    fprintf(stderr, "trampoline<%s>",    ID_FROM_INT(Pike_compiler->new_program, foo->u.id.number)->name->str);    } else {    fprintf(stderr, "trampoline<unknown identifier>");    }    break;       case F_ASSIGN: