pike.git / src / modules / Parser / parser.c

version» Context lines:

pike.git/src/modules/Parser/parser.c:1:   #include "global.h"   #include "stralloc.h"   #include "global.h" - RCSID("$Id: parser.c,v 1.4 1999/06/19 20:25:22 hubbe Exp $"); + RCSID("$Id: parser.c,v 1.5 1999/12/30 20:42:03 mast Exp $");   #include "pike_macros.h"   #include "interpret.h"   #include "program.h" -  + #include "program_id.h"   #include "object.h"   #include "operators.h"      #include "parser.h"      #define PARSER_INITER      /*#define DEBUG*/    - #define PARSER_CLASS(name,init,exit,prog) \ + #define PARSER_CLASS(name,init,exit,prog,id) \    void init(void); void exit(void); struct program *prog;   #define PARSER_SUBMODULE(name,init,exit) \    void init(void); void exit(void);   #define PARSER_SUBMODMAG(name,init,exit) \    void init(void); void exit(void);   #define PARSER_FUNCTION(name,func,def0,def1) \    void func(INT32 args);   #include "initstuff.h"      static struct   {    char *name;    void (*init)(void);    void (*exit)(void);    struct program **dest; -  +  int id;   } initclass[]=   {   #undef PARSER_CLASS   #undef PARSER_SUBMODULE   #undef PARSER_FUNCTION   #undef PARSER_SUBMODMAG   #define PARSER_SUBMODMAG(a,b,c)   #define PARSER_FUNCTION(a,b,c,d) - #define PARSER_CLASS(name,init,exit,prog) { name,init,exit,&prog }, + #define PARSER_CLASS(name,init,exit,prog,id) { name,init,exit,&prog,id },   #define PARSER_SUBMODULE(a,b,c)   #include "initstuff.h"   };      static struct   {    char *name;    void (*init)(void);    void (*exit)(void);   } initsubmodule[]=   {   #undef PARSER_CLASS   #undef PARSER_SUBMODULE - #define PARSER_CLASS(name,init,exit,prog) + #define PARSER_CLASS(name,init,exit,prog,id)   #define PARSER_SUBMODULE(name,init,exit) { name,init,exit },   #include "initstuff.h"    {0,0,0 }   };      static struct   {    char *name;    void (*init)(void);    void (*exit)(void);
pike.git/src/modules/Parser/parser.c:151:   void pike_module_init(void)   {   #ifdef PIKE_DEBUG    struct svalue *save_sp = sp;   #endif       int i;    for (i=0; i<(int)NELEM(initclass); i++)    {    start_new_program(); +  if (initclass[i].id) new_program->id = initclass[i].id;      #ifdef DEBUG    fprintf(stderr,"Parser: initiating class \"Parser.%s\"...\n",    initclass[i].name);   #endif       (initclass[i].init)();    PARSER_CHECK_STACK(initclass[i].name);    initclass[i].dest[0]=end_program();    add_program_constant(initclass[i].name,initclass[i].dest[0],0);