/* /% C %/ */ /*********************************************************************** * cint (C/C++ interpreter) ************************************************************************ * Source file global.h ************************************************************************ * Description: * Cint parser global variables. ************************************************************************ * Copyright(c) 1995~1999 Masaharu Goto (MXJ02154@niftyserve.or.jp) * * Permission to use, copy, modify and distribute this software and its * documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. The author makes no * representations about the suitability of this software for any * purpose. It is provided "as is" without express or implied warranty. ************************************************************************/ #ifndef G__GLOBAL_H #define G__GLOBAL_H #ifndef __MAKECINT__ #ifndef __CINT__ #ifdef __cplusplus extern "C" { #endif #endif /*********************************************************************** * EH_env and err_env are only variable name which isn't escaped by 'G__' ***********************************************************************/ #ifdef G__HSTD extern jmp_buf EH_env; /* jmp_buf err_env; */ /* old nucleus */ #endif /* G__HSTD */ /************************************************************************** * get CINTSYSDIR environment variable here **************************************************************************/ extern char G__cintsysdir[G__MAXFILENAME] ; /************************************************************************** * make sutpi file **************************************************************************/ extern FILE *G__sutpi; /* sutpi file pointer */ extern int G__typepdecl; /* to be commented */ /************************************************************************** * Loop compilation instruction, stack and temporaly variables **************************************************************************/ #ifdef G__ASM /******************************************************** * whole function bytecode compilation flag *********************************************************/ #ifndef G__OLDIMPLEMENTATION599 extern int G__asm_cond_cp; /* avoid wrong bytecode optimization */ #endif #ifdef G__ASM_WHOLEFUNC extern int G__asm_wholefunction; #endif #ifndef G__OLDIMPLEMENTATION517 extern int G__asm_wholefunc_default_cp; #endif #ifdef G__ASM_IFUNC extern long *G__asm_inst; /* p-code instruction buffer */ extern G__value *G__asm_stack; /* data stack */ extern char *G__asm_name; extern long G__asm_inst_g[G__MAXINST]; /* p-code instruction buffer */ extern G__value G__asm_stack_g[G__MAXSTACK]; /* data stack */ extern char G__asm_name_g[]; /* buffer to store function names which * is called within the compiled loop */ extern int G__asm_name_p; /* pointer to the function name buffer */ #else extern long G__asm_inst[G__MAXINST]; /* p-code instruction buffer */ extern G__value G__asm_stack[G__MAXSTACK]; /* data stack */ extern char G__asm_name[]; /* buffer to store function names which * is called within the compiled loop */ extern int G__asm_name_p; /* pointer to the function name buffer */ #endif extern struct G__param *G__asm_param; /* pointer of parameter buffer to * bring function parameter */ extern int G__asm_exec; /* p-code execution flag */ extern int G__asm_loopcompile; /* loop compilation mode. default on(1). * This is set to 0 by -O0 */ #ifndef G__OLDIMPLEMENTATION1155 extern int G__asm_loopcompile_mode; #endif extern int G__asm_noverflow; /* When this is set to 1, compilation starts. * If any error found, reset */ extern int G__asm_dbg; /* p-code debugging flag, only valid when compiled with * G__ASM_DBG */ #ifdef G__ASM_DBG extern char *G__LOOPCOMPILEABORT; #endif extern int G__asm_cp; /* compile time program counter */ extern int G__asm_dt; /* compile time stack pointer */ extern int G__asm_index; /* variable index */ #endif /************************************************************************** * signal handling **************************************************************************/ #ifdef G__SIGNAL extern char *G__SIGINT; extern char *G__SIGILL; extern char *G__SIGFPE; extern char *G__SIGABRT; extern char *G__SIGSEGV; extern char *G__SIGTERM; #ifdef SIGHUP extern char *G__SIGHUP; #endif #ifdef SIGQUIT extern char *G__SIGQUIT; #endif #ifdef SIGTSTP extern char *G__SIGTSTP; #endif #ifdef SIGTTIN extern char *G__SIGTTIN; #endif #ifdef SIGTTOU extern char *G__SIGTTOU; #endif #ifdef SIGALRM extern char *G__SIGALRM; #endif #ifdef SIGUSR1 extern char *G__SIGUSR1; #endif #ifdef SIGUSR2 extern char *G__SIGUSR2; #endif #endif /************************************************************************** * class template **************************************************************************/ #ifdef G__TEMPLATECLASS extern struct G__Definedtemplateclass G__definedtemplateclass; #endif extern int G__macroORtemplateINfile; #ifdef G__TEMPLATEFUNC extern struct G__Definetemplatefunc G__definedtemplatefunc; #endif /************************************************************************** * Macro statement support **************************************************************************/ extern FILE *G__mfp; extern fpos_t G__nextmacro; extern int G__mline; extern char *G__macro; extern struct G__Deffuncmacro G__deffuncmacro; extern char G__macros[G__LONGLINE]; extern char G__ppopt[G__ONELINE]; #ifndef G__OLDIMPLEMENTATION928 extern char *G__allincludepath; #else extern char G__allincludepath[G__LONGLINE]; #endif extern char *G__undeflist; #ifndef G__OLDIMPLEMENTATION941 struct G__funcmacro_stackelt; extern struct G__funcmacro_stackelt* G__funcmacro_stack; #endif /************************************************************************** * Macro constant **************************************************************************/ extern int G__macro_defining; /************************************************************************** * Array type typedef support, 'typedef int a[10];' **************************************************************************/ extern int G__typedefnindex; extern int *G__typedefindex; /************************************************************************** * Text processing capability * * fp=fopen("xxx","r"); * while($read(fp)) { * printf("%d %s %s\n",$#,$1,$2); * } **************************************************************************/ extern char G__oline[G__LONGLINE*2],G__argb[G__LONGLINE*2],*G__arg[G__ONELINE]; extern int G__argn; /************************************************************************** * structure for global and local variables * **************************************************************************/ extern struct G__var_array G__global ; extern struct G__var_array *G__p_local; #ifndef G__OLDIMPLEMENTATION686 extern struct G__inheritance G__globalusingnamespace; #endif /************************************************************************** * structure for struct,union tag information * structure for typedef information **************************************************************************/ extern struct G__tagtable G__struct; extern struct G__typedef G__newtype; /************************************************************************** * structure for input file **************************************************************************/ extern struct G__input_file G__ifile; #ifdef G__NONANSI extern char *G__psep; #else /* contains path sequencer UNIX / , Windows \ , Mac : */ extern const char *G__psep; #endif /************************************************************************** * structure for ifunc (Interpreted FUNCtion) table **************************************************************************/ extern struct G__ifunc_table G__ifunc ; extern struct G__ifunc_table *G__p_ifunc; /************************************************************************** * cint G__value constants **************************************************************************/ extern G__value G__null,G__start,G__default,G__one; extern G__value G__block_break,G__block_continue; extern G__value G__block_goto; extern char G__gotolabel[G__MAXNAME]; /************************************************************************** * allocation of array by new operator ? **************************************************************************/ extern struct G__newarylist G__newarray; /************************************************************************** * flags **************************************************************************/ /* int G__error_flag; */ /* syntax error flag */ extern int G__debug; /* trace input file */ extern int G__breakdisp; /* display input file at break point */ /* int G__cont ; */ /* continue G__cont lines */ extern int G__break; /* break flab */ extern int G__step; /* step execution flag */ extern int G__charstep; /* char step flag */ extern int G__break_exit_func; /* break at function exit */ /* int G__no_exec_stack ; */ /* stack for G__no_exec */ extern int G__eof; /* end of file flag */ extern int G__no_exec; /* no execution(ignore) flag */ extern int G__no_exec_compile; extern char G__var_type; /* variable decralation type */ extern char G__var_typeB; /* variable decralation type for function return*/ extern int G__prerun; /* pre-run flag */ extern int G__funcheader; /* function header mode */ extern int G__return; /* 0:normal,1:return,2:exit()or'q',3:'qq'(not used)*/ /* int G__extern_global; number of globals defined in c function */ extern int G__disp_mask; /* temporary read count */ extern int G__temp_read; /* temporary read count */ extern int G__switch; /* switch case control flag */ extern int G__mparen; /* switch case break nesting control */ extern int G__eof_count; /* end of file error flag */ extern int G__ismain; /* is there a main function */ extern int G__globalcomp; /* make compiled func's global table */ extern int G__store_globalcomp; extern long G__globalvarpointer; /* make compiled func's global table */ extern struct G__filetable G__srcfile[G__MAXFILE]; extern int G__nfile; extern int G__nobreak; extern char G__breakline[G__MAXNAME]; extern char G__breakfile[G__MAXFILENAME]; extern int G__key; /* user function key on/off */ extern FILE *G__dumpreadline[6]; extern short G__Xdumpreadline[6]; extern char G__xfile[]; extern char G__tempc[]; extern int G__doingconstruction; #ifdef G__DUMPFILE extern FILE *G__dumpfile; extern short G__dumpspace; #endif extern int G__def_struct_member; #ifdef G__FRIEND extern int G__friendtagnum; #endif #ifndef G__OLDIMPLEMENTATION440 extern int G__tmplt_def_tagnum; #endif extern int G__def_tagnum; extern int G__tagdefining; extern int G__tagnum ; /* -1 */ extern int G__typenum ; extern short G__iscpp ; extern short G__cpplock ; extern short G__clock ; extern short G__constvar ; #ifndef G__OLDIMPLEMENTATION1250 extern short G__isexplicit ; #endif extern short G__unsigned ; extern short G__ansiheader ; extern G__value G__ansipara; extern short G__enumdef; extern char G__tagname[G__MAXNAME]; extern long G__store_struct_offset; /* used to be int */ extern FILE *G__header,*G__temp1,*G__temp3,*G__temp5,*G__temp7,*G__temp8; extern FILE *G__header2; extern int G__decl; #ifndef G__OLDIMPLEMENTATION1259 extern G__SIGNEDCHAR_T G__isconst; #endif #ifdef G__OLDIMPLEMENTATION435 extern char *G__conststring[G__MAXSTRING]; extern int G__conststringhash[G__MAXSTRING]; extern short G__allstring; #endif extern char G__nam[G__MAXFILENAME]; extern char G__assertion[G__ONELINE]; extern short G__longjump; extern short G__coredump; extern short G__definemacro; extern short G__noerr_defined; extern short G__static_alloc; extern int G__func_now ; extern int G__func_page; extern char *G__varname_now; extern short G__twice; extern short G__othermain; extern int G__cpp; extern int G__include_cpp; extern char G__ccom[G__MAXFILENAME]; extern char G__cppsrcpost[G__LENPOST]; extern char G__csrcpost[G__LENPOST]; extern char G__cpphdrpost[G__LENPOST]; extern char G__chdrpost[G__LENPOST]; extern short G__dispsource; extern short G__breaksignal; extern short G__bitfield; extern char *G__atexit ; extern int G__cpp_aryconstruct; extern int G__cppconstruct; extern int G__access; extern int G__steptrace,G__debugtrace; extern int G__in_pause; extern int G__stepover; /* This must be set everytime before G__interpret_func() is called */ extern int G__fixedscope; extern int G__isfuncreturnp2f; extern int G__virtual; /* #define G__OLDIMPLEMENTATION78 */ extern int G__oprovld; extern int G__p2arylabel[G__MAXVARDIM]; /************************************************************************** * If G__exec_memberfunc==1, G__getfunction will search memberfunction * in addition to global functions. **************************************************************************/ extern int G__exec_memberfunc; extern int G__memberfunc_tagnum; extern long G__memberfunc_struct_offset; /************************************************************************** * buffer to store default parameter value **************************************************************************/ extern G__value G__default_parameter; extern char G__def_parameter[]; /************************************************************************** * temporary object buffer **************************************************************************/ extern struct G__tempobject_list *G__p_tempbuf,G__tempbuf; extern int G__templevel; /************************************************************************** * reference type buffer **************************************************************************/ extern int G__reftype; extern char *G__refansipara; /******************************************************************** * include path list ********************************************************************/ extern struct G__includepath G__ipathentry; /********************************************************************* * dynamic link library(shared library) enhancement *********************************************************************/ #ifdef G__SHAREDLIB extern short G__allsl; #endif /********************************************************************* * #pragma compile feature utilizing DLL *********************************************************************/ #ifdef G__AUTOCOMPILE extern FILE *G__fpautocc; #ifndef G__OLDIMPLEMENTATION486 extern char G__autocc_c[]; extern char G__autocc_h[]; extern char G__autocc_sl[]; extern char G__autocc_mak[]; extern int G__autoccfilenum; #else extern char *G__autocc_c; extern char *G__autocc_h; extern char *G__autocc_sl; #endif extern int G__compilemode; #endif /************************************************************************** * Interactive debugging mode support and error recover **************************************************************************/ extern int G__interactive; extern G__value G__interactivereturnvalue; /************************************************************************** * Old style compiled function name/pointer table **************************************************************************/ extern G__COMPLETIONLIST G__completionlist[]; #ifdef G__MEMTEST /************************************************************************** * memory leak test **************************************************************************/ extern FILE *G__memhist; #endif /************************************************************************** * Having K&R function in new linking **************************************************************************/ extern int G__nonansi_func; /************************************************************************** * pointer to member function **************************************************************************/ extern int G__sizep2memfunc; /************************************************************************** * flag to parse extern variables '-e' command line option **************************************************************************/ extern int G__parseextern; /************************************************************************** * class specific debugging **************************************************************************/ extern int G__istrace; /************************************************************************** * break, continue compilation **************************************************************************/ extern struct G__breakcontinue_list *G__pbreakcontinue; extern FILE *G__stderr; extern FILE *G__stdout; extern FILE *G__stdin; extern FILE *G__serr; extern FILE *G__sout; extern FILE *G__sin; #ifndef G__OLDIMPLEMENTATION713 extern FILE *G__intp_serr; extern FILE *G__intp_sout; extern FILE *G__intp_sin; #endif #ifndef G__OLDIMPLEMENTATION411 extern FILE* G__fpundeftype; #endif #ifdef G__FONS_COMMENT /************************************************************************** * Class/struct comment title enhancement **************************************************************************/ extern int G__fons_comment; extern char *G__setcomment; #endif extern int G__precomp_private; /********************************************************************* * const string list *********************************************************************/ extern struct G__ConstStringList G__conststringlist ; extern struct G__ConstStringList *G__plastconststring ; #ifdef G__SECURITY /************************************************************************** * Secure C++ mode **************************************************************************/ /* extern G__UINT32 G__security; declared in security.h */ extern int G__castcheckoff; extern int G__security_error; extern int G__max_stack_depth; extern char G__commandline[]; #endif /************************************************************************** * Preprocessed file keystring list **************************************************************************/ extern struct G__Preprocessfilekey G__preprocessfilekey; /************************************************************************** * Flag to check global operator new/delete() **************************************************************************/ extern int G__is_operator_newdelete ; /************************************************************************** * Path separator **************************************************************************/ #if defined(G__NONANSI) extern char *G__psep; #else extern const char *G__psep; #endif #ifndef G__OLDIMPLEMENtATION451 /************************************************************************** * add user defined pragma statement **************************************************************************/ extern struct G__AppPragma *G__paddpragma; #endif #ifdef G__MULTIBYTE /************************************************************************** * multi-byte coding system selection **************************************************************************/ extern short G__lang; #endif #ifndef G__OLDIMPLEMENTATION563 /************************************************************************** * A flag no notify cint ready status to embedding program * This flag is set by cint internal only, and read by G__getcintready() API **************************************************************************/ extern int G__cintready; #endif #ifndef G__OLDIMPLEMENTATION630 /************************************************************************** * interactive return for undefined symbol and G__pause **************************************************************************/ extern int G__interactive_undefined; #endif #ifndef G__OLDIMPLEMENTATION734 /************************************************************************** * STL Allocator workaround data **************************************************************************/ extern char G__Allocator[]; #endif #ifndef G__OLDIMPLEMENTATION754 /************************************************************************** * Exception object buffer **************************************************************************/ extern G__value G__exceptionbuffer; #endif #ifndef G__OLDIMPLEMENTATION782 /************************************************************************** * Exception object buffer **************************************************************************/ extern int G__ispragmainclude; #endif #ifndef G__OLDIMPLEMENTATION1097 /************************************************************************** * automatic variable on/off **************************************************************************/ extern int G__automaticvar; #endif #ifndef G__OLDIMPLEMENTATION1164 /************************************************************************** * Local variable , bytecode compiler workaround **************************************************************************/ extern int G__xrefflag; #endif #ifndef G__OLDIMPLEMENTATION1273 /************************************************************************** * Local variable , bytecode compiler workaround **************************************************************************/ extern int G__do_smart_unload; #endif #ifndef G__OLDIMPLEMENTATION1278 extern int G__autoload_stdheader; #endif #ifndef G__OLDIMPLEMENTATION1285 extern int G__ignore_stdnamespace; #endif #ifndef G__OLDIMPLEMENTATION1349 extern int G__decl_obj; #endif #ifndef G__OLDIMPLEMENTATION1451 extern struct G__ConstStringList* G__SystemIncludeDir; #endif #ifndef G__OLDIMPLEMENTATION1476 extern int G__command_eval ; #endif #ifndef G__OLDIMPLEMENTATION1525 extern int G__multithreadlibcint ; #endif #ifndef G__OLDIMPLEMENTATION1548 extern void (*G__emergencycallback)(); #endif #ifndef G__OLDIMPLEMENTATION1570 extern int G__asm_clear_mask; #endif #ifndef G__OLDIMPLEMENTATION1593 extern int G__boolflag; #endif #ifndef G__OLDIMPLEMENTATION1599 extern int G__init; #endif #ifndef G__OLDIMPLEMENTATION1600 extern int G__last_error; #endif #ifndef __CINT__ #ifdef __cplusplus } #endif #endif #endif /* __MAKECINT__ */ #endif /* G__GLOBAL_H */ /* * Local Variables: * c-tab-always-indent:nil * c-indent-level:2 * c-continued-statement-offset:2 * c-brace-offset:-2 * c-brace-imaginary-offset:0 * c-argdecl-indent:0 * c-label-offset:-2 * compile-command:"make -k" * End: */