pike.git / src / pike_compiler.h

version» Context lines:

pike.git/src/pike_compiler.h:1: + /* + || 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: pike_compiler.h,v 1.1 2008/04/14 10:14:41 grubba Exp $ + */    -  + #ifndef PIKE_COMPILER_H + #define PIKE_COMPILER_H +  + #include "lex.h" + #include "program.h" +  + struct compilation + { +  struct Supporter supporter; +  struct pike_string *prog; /* String to compile. */ +  struct object *handler; /* error_handler */ +  struct object *compat_handler; /* compat_handler */ +  int major, minor; /* compat version */ +  struct program *target; /* Program being compiled. */ +  struct object *placeholder; +  +  struct program *p; /* Compiled program or NULL. */ +  struct lex lex; +  int compilation_inherit; /* Inherit in supporter->self containing +  * compilation_program. */ +  int save_depth; +  int saved_threads_disabled; +  dynamic_buffer used_modules_save; +  INT32 num_used_modules_save; +  struct mapping *resolve_cache_save; +  +  struct svalue default_module; + }; +  + #ifdef PIKE_DEBUG + #define CHECK_COMPILER() do { \ +  if (!Pike_fp || !compilation_program || \ +  Pike_fp->context->prog != compilation_program) { \ +  Pike_fatal("Invalid compilation context!\n"); \ +  } \ +  } while(0) + #else + #define CHECK_COMPILER() + #endif + #define THIS_COMPILATION ((struct compilation *)(Pike_fp->current_storage)) + #define MAYBE_THIS_COMPILATION ((Pike_fp && compilation_program && (Pike_fp->context->prog == compilation_program))?THIS_COMPILATION:NULL) +  + /* Function numbers. */ + #define CE_REPORT_FUN_NUM 0 + #define CE_PIKE_COMPILER_FUN_NUM 1 + #define CE_COMPILE_FUN_NUM 2 +  + #endif /* !PIKE_COMPILER_H */   Newline at end of file added.