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.28 1998/01/29 02:47:43 hubbe Exp $"); + RCSID("$Id: docode.c,v 1.29 1998/01/30 20:04:31 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:474:    case F_DIVIDE:    case F_MOD:    case F_LSH:    case F_RSH:    case F_XOR:    case F_OR:    case F_AND:    case F_NOT:    case F_COMPL:    case F_NEGATE: -  fatal("Optimizer errror.\n"); +  fatal("Optimizer error.\n");       case F_RANGE:    tmp1=do_docode(CAR(n),DO_NOT_COPY);    if(do_docode(CDR(n),DO_NOT_COPY)!=2)    fatal("Compiler internal error (at %ld).\n",(long)lex.current_line);    emit2(n->token);    return tmp1;       case F_INC:    case F_POST_INC:
pike.git/src/docode.c:705:    do_docode(CAR(n),0);    do_docode(CDR(n),0);       tmp=findstring("call_function");    if(!tmp) yyerror("No call_function efun.");    foo=find_module_identifier(tmp);    if(!foo || !foo->token==F_CONSTANT)    {    yyerror("No call_function efun.");    }else{ +  if(foo->u.sval.type == T_FUNCTION && +  foo->u.sval.subtype == FUNCTION_BUILTIN && +  foo->u.sval.u.efun->function == f_call_function) +  { +  emit2(F_CALL_FUNCTION); +  }else{    tmp1=store_constant(& foo->u.sval, 1);    emit(F_APPLY, tmp1);    } -  +  }    free_node(foo);    return 1;    }       case F_ARG_LIST:    tmp1=do_docode(CAR(n),flags & ~DO_LVALUE);    tmp1+=do_docode(CDR(n),flags);    return tmp1;