Select Git revision
__builtin.pmod
-
Fredrik Hübinette (Hubbe) authored
Rev: lib/modules/Thread.pmod:1.2 Rev: lib/modules/__builtin.pmod:1.1
Fredrik Hübinette (Hubbe) authoredRev: lib/modules/Thread.pmod:1.2 Rev: lib/modules/__builtin.pmod:1.1
las.c 128.45 KiB
/*
|| This file is part of Pike. For copyright information see COPYRIGHT.
|| Pike is distributed under GPL, LGPL and MPL. See the file COPYING
|| for more information.
|| $Id: las.c,v 1.434 2008/08/17 16:22:41 mast Exp $
*/
#include "global.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"
#include "constants.h"
#include "mapping.h"
#include "multiset.h"
#include "pike_error.h"
#include "docode.h"
#include "main.h"
#include "pike_memory.h"
#include "operators.h"
#include "callback.h"
#include "pike_macros.h"
#include "peep.h"
#include "builtin_functions.h"
#include "cyclic.h"
#include "opcodes.h"
#include "pikecode.h"
#include "gc.h"
#include "pike_compiler.h"
#include "block_alloc.h"
/* Define this if you want the optimizer to be paranoid about aliasing
* effects to to indexing.
*/
/* #define PARANOID_INDEXING */
/* #define NEW_ARG_CHECK */
static node *eval(node *);
static void optimize(node *n);
static node *localopt(node *n);
int cumulative_parse_error=0;
extern char *get_type_name(int);
#define MAX_GLOBAL 2048
/* #define yywarning my_yyerror */
int car_is_node(node *n)
{
if (!_CAR(n)) return 0;
switch(n->token)
{
case F_EXTERNAL:
case F_GET_SET:
case F_IDENTIFIER:
case F_TRAMPOLINE:
case F_CONSTANT:
case F_LOCAL:
case F_THIS:
case F_VERSION:
return 0;
default:
return 1;