Main Page | Class List | Directories | File List | Class Members | File Members

program.c File Reference

#include "global.h"
#include "program.h"
#include "object.h"
#include "dynamic_buffer.h"
#include "pike_types.h"
#include "stralloc.h"
#include "las.h"
#include "lex.h"
#include "pike_macros.h"
#include "fsort.h"
#include "pike_error.h"
#include "docode.h"
#include "interpret.h"
#include "hashtable.h"
#include "main.h"
#include "pike_memory.h"
#include "gc.h"
#include "threads.h"
#include "constants.h"
#include "operators.h"
#include "builtin_functions.h"
#include "stuff.h"
#include "mapping.h"
#include "cyclic.h"
#include "pike_security.h"
#include "opcodes.h"
#include "version.h"
#include "block_alloc.h"
#include "pikecode.h"
#include <errno.h>
#include <fcntl.h>
#include "compilation.h"
#include "program_areas.h"
#include "fsort_template.h"

Classes

struct  ff_hash
struct  compilation
struct  get_storage_cache
struct  find_child_cache_s
struct  implements_cache_s

Defines

#define sp   Pike_sp
#define ATTRIBUTE(X)
#define EXIT_BLOCK(P)   exit_program_struct( (P) )
#define COUNT_OTHER()
#define CDFPRINTF(X)
#define FIND_FUNCTION_HASHSIZE   15013
#define FIND_FUNCTION_HASH_TRESHOLD   9
#define DECLARE
#define CHECK_FILE_ENTRY(PROG, POS, LEN, SHIFT)   do {} while (0)
#define CHECK_FOO(NUMTYPE, TYPE, NAME)
#define RELOCATE_program(ORIG, NEW)
#define RELOCATE_linenumbers(ORIG, NEW)
#define RELOCATE_identifier_index(ORIG, NEW)
#define RELOCATE_variable_index(ORIG, NEW)
#define RELOCATE_identifier_references(ORIG, NEW)
#define RELOCATE_strings(ORIG, NEW)
#define RELOCATE_inherits(ORIG, NEW)
#define RELOCATE_identifiers(ORIG, NEW)
#define RELOCATE_constants(ORIG, NEW)
#define RELOCATE_relocations(ORIG, NEW)
#define MAXVARS(NUMTYPE)   (NUMTYPE)(sizeof(NUMTYPE)==1?254: (sizeof(NUMTYPE)==2?65534:4294967294U))
#define FOO(NUMTYPE, TYPE, ARGTYPE, NAME)
#define add_to_program(ARG)
#define debug_add_to_identifiers(ARG)   add_to_identifiers(ARG)
#define ID_TO_PROGRAM_CACHE_SIZE   512
#define FOO(NUMTYPE, TYPE, ARGTYPE, NAME)
#define FOO(NUMTYPE, TYPE, ARGTYPE, NAME)
#define CMP(X, Y)   program_identifier_index_compare(*(X), *(Y), prog)
#define EXTRA_ARGS   , struct program *prog
#define XARGS   , prog
#define ID   fsort_program_identifier_index
#define TYPE   unsigned short
#define PUSH
#define FOO(NUMTYPE, TYPE, ARGTYPE, NAME)
#define START_SIZE   64
#define FOO(NUMTYPE, TYPE, ARGTYPE, NAME)
#define FOO(NUMTYPE, TYPE, ARGTYPE, NAME)   p->NAME=0;
#define FOO(NUMTYPE, TYPE, ARGTYPE, NAME)   if(p->NAME) { dmfree((char *)p->NAME); p->NAME=0; }
#define POP
#define FIND_PROGRAM_LINE(prog, file, len, shift, line)
#define do_yyparse()   yyparse()
#define verify_supporters()   ;
#define THIS   ((struct pike_trampoline *)(CURRENT_STORAGE))
#define GET_STORAGE_CACHE_SIZE   1024
#define FIND_CHILD_HASHSIZE   5003
#define IMPLEMENTS_CACHE_SIZE   4711

Typedefs

typedef void(* oldhandlertype )(struct object *)

Functions

int get_small_number (char **q)
void ins_int (INT32 i, void(*func)(char tmp))
void ins_short (int i, void(*func)(char tmp))
void add_relocated_int_to_program (INT32 i)
void use_module (struct svalue *s)
void unuse_modules (INT32 howmany)
int low_find_shared_string_identifier (struct pike_string *name, struct program *prog)
node_sresolve_identifier (struct pike_string *ident)
node_sfind_module_identifier (struct pike_string *ident, int see_inherit)
node_sprogram_magic_identifier (struct program_state *state, int state_depth, int inherit_num, struct pike_string *ident, int colon_colon_ref)
programparent_compilation (int level)
programid_to_program (INT32 id)
void optimize_program (struct program *p)
int override_identifier (struct reference *ref, struct pike_string *name)
void fixate_program (void)
programlow_allocate_program (void)
void low_start_new_program (struct program *p, int pass, struct pike_string *name, int flags, int *idp)
PMOD_EXPORT void debug_start_new_program (int line, const char *file)
int sizeof_variable (int run_time_type)
programend_first_pass (int finish)
PMOD_EXPORT struct programdebug_end_program (void)
PMOD_EXPORT size_t low_add_storage (size_t size, size_t alignment, ptrdiff_t modulo_orig)
PMOD_EXPORT void set_init_callback (void(*init)(struct object *))
PMOD_EXPORT void set_exit_callback (void(*exit)(struct object *))
PMOD_EXPORT void set_gc_recurse_callback (void(*m)(struct object *))
PMOD_EXPORT void set_gc_check_callback (void(*m)(struct object *))
void pike_set_prog_event_callback (void(*cb)(int))
void pike_set_prog_optimize_callback (node *(*opt)(node *))
int really_low_reference_inherited_identifier (struct program_state *q, int e, int i)
int low_reference_inherited_identifier (struct program_state *q, int e, struct pike_string *name, int flags)
int find_inherit (struct program *p, struct pike_string *name)
nodereference_inherited_identifier (struct pike_string *super_name, struct pike_string *function_name)
void rename_last_inherit (struct pike_string *n)
void check_for_facet_inherit (struct program *p)
void low_inherit (struct program *p, struct object *parent, int parent_identifier, int parent_offset, INT32 flags, struct pike_string *name)
PMOD_EXPORT void do_inherit (struct svalue *s, INT32 flags, struct pike_string *name)
void compiler_do_inherit (node *n, INT32 flags, struct pike_string *name)
int call_handle_inherit (struct pike_string *s)
void simple_do_inherit (struct pike_string *s, INT32 flags, struct pike_string *name)
int isidentifier (struct pike_string *s)
int low_define_variable (struct pike_string *name, struct pike_type *type, INT32 flags, size_t offset, INT32 run_time_type)
PMOD_EXPORT int map_variable (const char *name, const char *type, INT32 flags, size_t offset, INT32 run_time_type)
PMOD_EXPORT int quick_map_variable (const char *name, int name_length, size_t offset, const char *type, int type_length, INT32 run_time_type, INT32 flags)
int define_variable (struct pike_string *name, struct pike_type *type, INT32 flags)
PMOD_EXPORT int simple_add_variable (const char *name, const char *type, INT32 flags)
PMOD_EXPORT int add_constant (struct pike_string *name, struct svalue *c, INT32 flags)
PMOD_EXPORT int simple_add_constant (const char *name, struct svalue *c, INT32 flags)
PMOD_EXPORT int add_integer_constant (const char *name, INT_ARG_TYPE i, INT32 flags)
PMOD_EXPORT int quick_add_integer_constant (const char *name, int name_length, INT_ARG_TYPE i, INT32 flags)
PMOD_EXPORT int add_float_constant (const char *name, FLOAT_ARG_TYPE f, INT32 flags)
PMOD_EXPORT int quick_add_float_constant (const char *name, int name_length, FLOAT_ARG_TYPE f, INT32 flags)
PMOD_EXPORT int add_string_constant (const char *name, const char *str, INT32 flags)
PMOD_EXPORT int add_program_constant (const char *name, struct program *p, INT32 flags)
PMOD_EXPORT int add_object_constant (const char *name, struct object *o, INT32 flags)
PMOD_EXPORT int add_function_constant (const char *name, void(*cfun)(INT32), const char *type, int flags)
PMOD_EXPORT int debug_end_class (const char *name, ptrdiff_t namelen, INT32 flags)
INT32 define_function (struct pike_string *name, struct pike_type *type, unsigned flags, unsigned function_flags, union idptr *func, unsigned opt_flags)
int really_low_find_shared_string_identifier (struct pike_string *name, struct program *prog, int flags)
int low_find_lfun (struct program *p, ptrdiff_t lfun)
int lfun_lookup_id (struct pike_string *lfun_name)
int find_shared_string_identifier (struct pike_string *name, struct program *prog)
PMOD_EXPORT int find_identifier (const char *name, struct program *prog)
int store_prog_string (struct pike_string *str)
int store_constant (struct svalue *foo, int equal, struct pike_string *constant_name)
arrayprogram_indices (struct program *p)
arrayprogram_values (struct program *p)
void program_index_no_free (struct svalue *to, struct program *p, struct svalue *ind)
void start_line_numbering (void)
void ext_store_program_line (struct program *prog, INT32 line, struct pike_string *file)
void store_linenumber (INT32 current_line, struct pike_string *current_file)
PMOD_EXPORT struct pike_stringlow_get_program_line (struct program *prog, INT32 *linep)
PMOD_EXPORT char * low_get_program_line_plain (struct program *prog, INT32 *linep, int malloced)
PMOD_EXPORT struct pike_stringget_program_line (struct program *prog, INT32 *linep)
PMOD_EXPORT struct pike_stringlow_get_line (PIKE_OPCODE_T *pc, struct program *prog, INT32 *linep)
PMOD_EXPORT char * low_get_line_plain (PIKE_OPCODE_T *pc, struct program *prog, INT32 *linep, int malloced)
PMOD_EXPORT struct pike_stringget_line (PIKE_OPCODE_T *pc, struct program *prog, INT32 *linep)
PMOD_EXPORT struct pike_stringlow_get_function_line (struct object *o, int fun, INT32 *linep)
void va_yyerror (const char *fmt, va_list args)
void my_yyerror (const char *fmt,...)
pike_stringformat_exception_for_error_msg (struct svalue *thrown)
void handle_compile_exception (const char *yyerror_fmt,...)
void yyparse (void)
void init_supporter (struct Supporter *s, supporter_callback *fun, void *data)
int unlink_current_supporter (struct Supporter *c)
void free_supporter (struct Supporter *c)
int call_dependants (struct Supporter *s, int finish)
int report_compiler_dependency (struct program *p)
void run_pass2 (struct compilation *c)
programcompile (struct pike_string *aprog, struct object *ahandler, int amajor, int aminor, struct program *atarget, struct object *aplaceholder)
PMOD_EXPORT int pike_add_function2 (const char *name, void(*cfun)(INT32), const char *type, unsigned flags, unsigned opt_flags)
PMOD_EXPORT int quick_add_function (const char *name, int name_length, void(*cfun)(INT32), const char *type, int type_length, unsigned flags, unsigned opt_flags)
void placeholder_index (INT32 args)
void init_program (void)
void cleanup_program (void)
void gc_mark_program_as_referenced (struct program *p)
void real_gc_cycle_check_program (struct program *p, int weak)
unsigned gc_touch_all_programs (void)
void gc_check_all_programs (void)
void gc_mark_all_programs (void)
void gc_cycle_check_all_programs (void)
void gc_zap_ext_weak_refs_in_programs (void)
size_t gc_free_all_unreferenced_programs (void)
void push_compiler_frame (int lexical_scope)
void low_pop_local_variables (int level)
void pop_local_variables (int level)
void pop_compiler_frame (void)
ptrdiff_t low_get_storage (struct program *o, struct program *p)
PMOD_EXPORT char * get_storage (struct object *o, struct program *p)
programlow_program_from_function (struct program *p, INT32 i)
PMOD_EXPORT struct programprogram_from_function (const struct svalue *f)
PMOD_EXPORT struct programprogram_from_svalue (const struct svalue *s)
int find_child (struct program *parent, struct program *child)
void yywarning (char *fmt,...)
PMOD_EXPORT int implements (struct program *a, struct program *b)
PMOD_EXPORT int is_compatible (struct program *a, struct program *b)
void yyexplain_not_compatible (struct program *a, struct program *b, int flags)
void yyexplain_not_implements (struct program *a, struct program *b, int flags)
PMOD_EXPORT void * parent_storage (int depth)
PMOD_EXPORT void change_compiler_compatibility (int major, int minor)

Variables

pike_stringthis_program_string
pike_stringthis_string
const char *const lfun_names []
pike_stringlfun_strings [NELEM(lfun_names)]
programfirst_program = 0
programnull_program = 0
objecterror_handler = 0
objectcompat_handler = 0
programgc_internal_program = 0
int compilation_depth = -1
dynamic_buffer used_modules
programid_to_program_cache [ID_TO_PROGRAM_CACHE_SIZE]
Supportercurrent_supporter = 0
programpike_trampoline_program = 0
programplaceholder_program
objectplaceholder_object

Define Documentation

#define add_to_program ARG   ) 
 

Value:

do {                            \
    debug_malloc_touch(Pike_compiler->new_program->program);    \
    add_to_program(ARG);                                        \
  } while(0)

#define ATTRIBUTE  ) 
 

#define CDFPRINTF  ) 
 

#define CHECK_FILE_ENTRY PROG,
POS,
LEN,
SHIFT   )     do {} while (0)
 

#define CHECK_FOO NUMTYPE,
TYPE,
NAME   ) 
 

#define CMP X,
 )     program_identifier_index_compare(*(X), *(Y), prog)
 

 
#define COUNT_OTHER  ) 
 

Value:

do{                     \
  struct program *p;                            \
  for(p=first_program;p;p=p->next)              \
  {                                             \
    size+=p->total_size;                        \
  }                                             \
}while(0)

#define debug_add_to_identifiers ARG   )     add_to_identifiers(ARG)
 

#define DECLARE
 

 
#define do_yyparse  )     yyparse()
 

#define EXIT_BLOCK  )     exit_program_struct( (P) )
 

#define EXTRA_ARGS   , struct program *prog
 

#define FIND_CHILD_HASHSIZE   5003
 

#define FIND_FUNCTION_HASH_TRESHOLD   9
 

#define FIND_FUNCTION_HASHSIZE   15013
 

#define FIND_PROGRAM_LINE prog,
file,
len,
shift,
line   ) 
 

Value:

do {            \
    char *pos = prog->linenumbers;                                      \
    len = 0;                                                            \
    shift = 0;                                                          \
    file = NULL;                                                        \
                                                                        \
    if (pos < prog->linenumbers + prog->num_linenumbers) {              \
      if (*pos == 127) {                                                \
        pos++;                                                          \
        len = get_small_number(&pos);                                   \
        shift = *pos;                                                   \
        file = ++pos;                                                   \
        CHECK_FILE_ENTRY (prog, pos, len, shift);                       \
        pos += len<<shift;                                              \
      }                                                                 \
      get_small_number(&pos);   /* Ignore the offset */                 \
      line = get_small_number(&pos);                                    \
    }                                                                   \
  } while (0)

#define FOO NUMTYPE,
TYPE,
ARGTYPE,
NAME   )     if(p->NAME) { dmfree((char *)p->NAME); p->NAME=0; }
 

#define FOO NUMTYPE,
TYPE,
ARGTYPE,
NAME   )     p->NAME=0;
 

#define FOO NUMTYPE,
TYPE,
ARGTYPE,
NAME   ) 
 

Value:

if (Pike_compiler->new_program->NAME) {                         \
      free (Pike_compiler->new_program->NAME);                          \
      Pike_compiler->new_program->PIKE_CONCAT(num_,NAME) = 0;           \
    }                                                                   \
    Pike_compiler->malloc_size_program->PIKE_CONCAT(num_,NAME) =        \
      START_SIZE;                                                       \
    Pike_compiler->new_program->NAME =                                  \
      (TYPE *)xalloc(sizeof(TYPE) * START_SIZE);

#define FOO NUMTYPE,
TYPE,
ARGTYPE,
NAME   ) 
 

Value:

Pike_compiler->malloc_size_program->PIKE_CONCAT(num_,NAME) =    \
      Pike_compiler->new_program->PIKE_CONCAT(num_,NAME);

#define FOO NUMTYPE,
TYPE,
ARGTYPE,
NAME   ) 
 

Value:

size=DO_ALIGN(size, ALIGNOF(TYPE)); \
  if (p->PIKE_CONCAT (num_, NAME))                                      \
    MEMCPY(data+size,p->NAME,p->PIKE_CONCAT(num_,NAME)*sizeof(p->NAME[0])); \
  PIKE_CONCAT(RELOCATE_,NAME)(p, (TYPE *)(data+size)); \
  dmfree(p->NAME); \
  p->NAME=(TYPE *)(data+size); \
  size+=p->PIKE_CONCAT(num_,NAME)*sizeof(p->NAME[0]);

#define FOO NUMTYPE,
TYPE,
ARGTYPE,
NAME   ) 
 

Value:

size=DO_ALIGN(size, ALIGNOF(TYPE)); \
  size+=p->PIKE_CONCAT(num_,NAME)*sizeof(p->NAME[0]);

#define FOO NUMTYPE,
TYPE,
ARGTYPE,
NAME   ) 
 

Value:

void PIKE_CONCAT(low_add_to_,NAME) (struct program_state *state,        \
                                    TYPE ARG) {                         \
  NUMTYPE m = state->malloc_size_program->PIKE_CONCAT(num_,NAME);       \
  CHECK_FOO(NUMTYPE,TYPE,NAME);                                         \
  if(m == state->new_program->PIKE_CONCAT(num_,NAME)) {                 \
    TYPE *tmp;                                                          \
    if(m==MAXVARS(NUMTYPE)) {                                           \
      yyerror("Too many " #NAME ".");                                   \
      return;                                                           \
    }                                                                   \
    m = MINIMUM(m*2+1,MAXVARS(NUMTYPE));                                \
    tmp = realloc((void *)state->new_program->NAME,                     \
                  sizeof(TYPE) * m);                                    \
    if(!tmp) Pike_fatal("Out of memory.\n");                            \
    PIKE_CONCAT(RELOCATE_,NAME)(state->new_program, tmp);               \
    state->malloc_size_program->PIKE_CONCAT(num_,NAME)=m;               \
    state->new_program->NAME=tmp;                                       \
  }                                                                     \
  state->new_program->                                                  \
    NAME[state->new_program->PIKE_CONCAT(num_,NAME)++]=(ARG);           \
}                                                                       \
void PIKE_CONCAT(add_to_,NAME) (ARGTYPE ARG) {                          \
  PIKE_CONCAT(low_add_to_,NAME) ( Pike_compiler, ARG );                 \
}

#define GET_STORAGE_CACHE_SIZE   1024
 

#define ID   fsort_program_identifier_index
 

#define ID_TO_PROGRAM_CACHE_SIZE   512
 

#define IMPLEMENTS_CACHE_SIZE   4711
 

#define MAXVARS NUMTYPE   )     (NUMTYPE)(sizeof(NUMTYPE)==1?254: (sizeof(NUMTYPE)==2?65534:4294967294U))
 

#define POP
 

#define PUSH
 

#define RELOCATE_constants ORIG,
NEW   ) 
 

#define RELOCATE_identifier_index ORIG,
NEW   ) 
 

#define RELOCATE_identifier_references ORIG,
NEW   ) 
 

#define RELOCATE_identifiers ORIG,
NEW   ) 
 

#define RELOCATE_inherits ORIG,
NEW   ) 
 

#define RELOCATE_linenumbers ORIG,
NEW   ) 
 

#define RELOCATE_program ORIG,
NEW   ) 
 

#define RELOCATE_relocations ORIG,
NEW   ) 
 

#define RELOCATE_strings ORIG,
NEW   ) 
 

#define RELOCATE_variable_index ORIG,
NEW   ) 
 

#define sp   Pike_sp
 

#define START_SIZE   64
 

#define THIS   ((struct pike_trampoline *)(CURRENT_STORAGE))
 

#define TYPE   unsigned short
 

#define verify_supporters void   )     ;
 

#define XARGS   , prog
 


Typedef Documentation

typedef void(* oldhandlertype)(struct object *)
 


Function Documentation

PMOD_EXPORT int add_constant struct pike_string name,
struct svalue c,
INT32  flags
 

PMOD_EXPORT int add_float_constant const char *  name,
FLOAT_ARG_TYPE  f,
INT32  flags
 

PMOD_EXPORT int add_function_constant const char *  name,
void(*)(INT32)  cfun,
const char *  type,
int  flags
 

PMOD_EXPORT int add_integer_constant const char *  name,
INT_ARG_TYPE  i,
INT32  flags
 

PMOD_EXPORT int add_object_constant const char *  name,
struct object o,
INT32  flags
 

PMOD_EXPORT int add_program_constant const char *  name,
struct program p,
INT32  flags
 

void add_relocated_int_to_program INT32  i  ) 
 

PMOD_EXPORT int add_string_constant const char *  name,
const char *  str,
INT32  flags
 

int call_dependants struct Supporter s,
int  finish
 

int call_handle_inherit struct pike_string s  ) 
 

PMOD_EXPORT void change_compiler_compatibility int  major,
int  minor
 

void check_for_facet_inherit struct program p  ) 
 

void cleanup_program void   ) 
 

struct program* compile struct pike_string aprog,
struct object ahandler,
int  amajor,
int  aminor,
struct program atarget,
struct object aplaceholder
 

void compiler_do_inherit node n,
INT32  flags,
struct pike_string name
 

PMOD_EXPORT int debug_end_class const char *  name,
ptrdiff_t  namelen,
INT32  flags
 

PMOD_EXPORT struct program* debug_end_program void   ) 
 

PMOD_EXPORT void debug_start_new_program int  line,
const char *  file
 

INT32 define_function struct pike_string name,
struct pike_type type,
unsigned  flags,
unsigned  function_flags,
union idptr func,
unsigned  opt_flags
 

int define_variable struct pike_string name,
struct pike_type type,
INT32  flags
 

PMOD_EXPORT void do_inherit struct svalue s,
INT32  flags,
struct pike_string name
 

struct program* end_first_pass int  finish  ) 
 

void ext_store_program_line struct program prog,
INT32  line,
struct pike_string file
 

int find_child struct program parent,
struct program child
 

PMOD_EXPORT int find_identifier const char *  name,
struct program prog
 

int find_inherit struct program p,
struct pike_string name
 

struct node_s* find_module_identifier struct pike_string ident,
int  see_inherit
 

int find_shared_string_identifier struct pike_string name,
struct program prog
 

void fixate_program void   ) 
 

struct pike_string* format_exception_for_error_msg struct svalue thrown  ) 
 

void free_supporter struct Supporter c  ) 
 

void gc_check_all_programs void   ) 
 

void gc_cycle_check_all_programs void   ) 
 

size_t gc_free_all_unreferenced_programs void   ) 
 

void gc_mark_all_programs void   ) 
 

void gc_mark_program_as_referenced struct program p  ) 
 

unsigned gc_touch_all_programs void   ) 
 

void gc_zap_ext_weak_refs_in_programs void   ) 
 

PMOD_EXPORT struct pike_string* get_line PIKE_OPCODE_T *  pc,
struct program prog,
INT32 *  linep
 

PMOD_EXPORT struct pike_string* get_program_line struct program prog,
INT32 *  linep
 

int get_small_number char **  q  ) 
 

PMOD_EXPORT char* get_storage struct object o,
struct program p
 

void handle_compile_exception const char *  yyerror_fmt,
  ...
 

struct program* id_to_program INT32  id  ) 
 

PMOD_EXPORT int implements struct program a,
struct program b
 

void init_program void   ) 
 

void init_supporter struct Supporter s,
supporter_callback fun,
void *  data
 

void ins_int INT32  i,
void(*)(char tmp)  func
 

void ins_short int  i,
void(*)(char tmp)  func
 

PMOD_EXPORT int is_compatible struct program a,
struct program b
 

int isidentifier struct pike_string s  ) 
 

int lfun_lookup_id struct pike_string lfun_name  ) 
 

PMOD_EXPORT size_t low_add_storage size_t  size,
size_t  alignment,
ptrdiff_t  modulo_orig
 

struct program* low_allocate_program void   ) 
 

int low_define_variable struct pike_string name,
struct pike_type type,
INT32  flags,
size_t  offset,
INT32  run_time_type
 

int low_find_lfun struct program p,
ptrdiff_t  lfun
 

int low_find_shared_string_identifier struct pike_string name,
struct program prog
 

PMOD_EXPORT struct pike_string* low_get_function_line struct object o,
int  fun,
INT32 *  linep
 

PMOD_EXPORT struct pike_string* low_get_line PIKE_OPCODE_T *  pc,
struct program prog,
INT32 *  linep
 

PMOD_EXPORT char* low_get_line_plain PIKE_OPCODE_T *  pc,
struct program prog,
INT32 *  linep,
int  malloced
 

PMOD_EXPORT struct pike_string* low_get_program_line struct program prog,
INT32 *  linep
 

PMOD_EXPORT char* low_get_program_line_plain struct program prog,
INT32 *  linep,
int  malloced
 

ptrdiff_t low_get_storage struct program o,
struct program p
 

void low_inherit struct program p,
struct object parent,
int  parent_identifier,
int  parent_offset,
INT32  flags,
struct pike_string name
 

void low_pop_local_variables int  level  ) 
 

struct program* low_program_from_function struct program p,
INT32  i
 

int low_reference_inherited_identifier struct program_state *  q,
int  e,
struct pike_string name,
int  flags
 

void low_start_new_program struct program p,
int  pass,
struct pike_string name,
int  flags,
int idp
 

PMOD_EXPORT int map_variable const char *  name,
const char *  type,
INT32  flags,
size_t  offset,
INT32  run_time_type
 

void my_yyerror const char *  fmt,
  ...
 

void optimize_program struct program p  ) 
 

int override_identifier struct reference ref,
struct pike_string name
 

struct program* parent_compilation int  level  ) 
 

PMOD_EXPORT void* parent_storage int  depth  ) 
 

PMOD_EXPORT int pike_add_function2 const char *  name,
void(*)(INT32)  cfun,
const char *  type,
unsigned  flags,
unsigned  opt_flags
 

void pike_set_prog_event_callback void(*)(int cb  ) 
 

void pike_set_prog_optimize_callback node *(*)(node *)  opt  ) 
 

void placeholder_index INT32  args  ) 
 

void pop_compiler_frame void   ) 
 

void pop_local_variables int  level  ) 
 

PMOD_EXPORT struct program* program_from_function const struct svalue f  ) 
 

PMOD_EXPORT struct program* program_from_svalue const struct svalue s  ) 
 

void program_index_no_free struct svalue to,
struct program p,
struct svalue ind
 

struct array* program_indices struct program p  ) 
 

struct node_s* program_magic_identifier struct program_state *  state,
int  state_depth,
int  inherit_num,
struct pike_string ident,
int  colon_colon_ref
 

struct array* program_values struct program p  ) 
 

void push_compiler_frame int  lexical_scope  ) 
 

PMOD_EXPORT int quick_add_float_constant const char *  name,
int  name_length,
FLOAT_ARG_TYPE  f,
INT32  flags
 

PMOD_EXPORT int quick_add_function const char *  name,
int  name_length,
void(*)(INT32)  cfun,
const char *  type,
int  type_length,
unsigned  flags,
unsigned  opt_flags
 

PMOD_EXPORT int quick_add_integer_constant const char *  name,
int  name_length,
INT_ARG_TYPE  i,
INT32  flags
 

PMOD_EXPORT int quick_map_variable const char *  name,
int  name_length,
size_t  offset,
const char *  type,
int  type_length,
INT32  run_time_type,
INT32  flags
 

void real_gc_cycle_check_program struct program p,
int  weak
 

int really_low_find_shared_string_identifier struct pike_string name,
struct program prog,
int  flags
 

int really_low_reference_inherited_identifier struct program_state *  q,
int  e,
int  i
 

node* reference_inherited_identifier struct pike_string super_name,
struct pike_string function_name
 

void rename_last_inherit struct pike_string n  ) 
 

int report_compiler_dependency struct program p  ) 
 

struct node_s * resolve_identifier struct pike_string ident  ) 
 

void run_pass2 struct compilation c  ) 
 

PMOD_EXPORT void set_exit_callback void(*)(struct object *)  exit  ) 
 

PMOD_EXPORT void set_gc_check_callback void(*)(struct object *)  m  ) 
 

PMOD_EXPORT void set_gc_recurse_callback void(*)(struct object *)  m  ) 
 

PMOD_EXPORT void set_init_callback void(*)(struct object *)  init  ) 
 

PMOD_EXPORT int simple_add_constant const char *  name,
struct svalue c,
INT32  flags
 

PMOD_EXPORT int simple_add_variable const char *  name,
const char *  type,
INT32  flags
 

void simple_do_inherit struct pike_string s,
INT32  flags,
struct pike_string name
 

int sizeof_variable int  run_time_type  ) 
 

void start_line_numbering void   ) 
 

int store_constant struct svalue foo,
int  equal,
struct pike_string constant_name
 

void store_linenumber INT32  current_line,
struct pike_string current_file
 

int store_prog_string struct pike_string str  ) 
 

int unlink_current_supporter struct Supporter c  ) 
 

void unuse_modules INT32  howmany  ) 
 

void use_module struct svalue s  ) 
 

void va_yyerror const char *  fmt,
va_list  args
 

void yyexplain_not_compatible struct program a,
struct program b,
int  flags
 

void yyexplain_not_implements struct program a,
struct program b,
int  flags
 

void yyparse void   ) 
 

void yywarning char *  fmt,
  ...
 


Variable Documentation

struct object* compat_handler = 0
 

int compilation_depth = -1
 

struct Supporter* current_supporter = 0
 

struct object* error_handler = 0
 

struct program* first_program = 0
 

struct program* gc_internal_program = 0
 

struct program* id_to_program_cache[ID_TO_PROGRAM_CACHE_SIZE]
 

const char* const lfun_names[]
 

struct pike_string* lfun_strings[NELEM(lfun_names)]
 

struct program* null_program = 0
 

struct program* pike_trampoline_program = 0
 

struct object* placeholder_object
 

struct program* placeholder_program
 

struct pike_string* this_program_string
 

struct pike_string * this_string
 

dynamic_buffer used_modules
 


Generated on Fri Jul 22 23:44:30 2005 for Pike by  doxygen 1.3.9.1