pike.git
/
src
/
modules
/
Parser
/
parser.c
version
»
Context lines:
10
20
40
80
file
none
3
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);