view mc-parse.h @ 355:6188f66c0c0b arg_scope

cond op, and arg scope.
author kono
date Sun, 04 Jul 2004 19:08:42 +0900
parents 43099915f4c2
children 1057d6740a36
line wrap: on
line source

/* for mc-parse.c */

extern int sym,type,mode,stmode;
extern int labelno,gpc,disp;
extern int args,init_vars,heap[HEAPSIZE];
extern int cslabel,control;
extern NMTBL *nptr,*gnptr;
extern NMTBL *fnptr;
extern int gtypedefed;
extern int retlabel,retpending,retcont;
extern int chk;
#if BIT_FIELD_CODE
extern int bit_field_disp;
#endif
extern int fields;
extern int struct_return;
extern int lastexp;
extern int debug; 
extern int decl_str_init;

/*
          STRING         nptr
          MACRO          nptr
          FMACRO         nptr
          RESERVE        nptr
          TAG            nptr
          FIELD          nptr
          TYPE           nptr
 */

typedef struct cheap
{
    char *ptr;
    char *last;
    char *first;
    struct cheap *next;
} CHEAP;


/* used in mc-macro.c */

extern int asmf;
extern int ch;
extern int chptrsave; 
extern int chsave; 
extern char linebuf[LBUFSIZE],*chptr;
extern int glineno; 
extern int in_comment; 
extern int in_quote; 
extern int lfree; 
extern int lineno; 
extern int lsrc; 
extern char *include_path[MAX_INCLUDE_PATH_COUNT];

/* used in mc-code-* */

extern  NMTBL null_nptr;

extern char * make_filename_with_extension(char *filename,char *ext);

/* used in mc-switch */

extern void free_glist3(int e1);
extern int csvalue1;
extern int blabel,dlabel;

/* used in mc-tree.c */

extern int typedefed;

/* global variable end */

extern void free_glist2(int e1);

/* used in mc-codegen.c */

extern NMTBL * anonymous_nptr();;
extern int append4(int p,int a1,int a2,int a3);
extern void display_ntable(NMTBL *n, char *s);
extern NMTBL * lsearch(char *name,int sc);
#if FLOAT_CODE
extern int
dlist2(int e1, double d1);
#endif
extern void error(int n);
extern int glist2(int e1,int e2);
extern int glist3(int e1,int e2,int e3);

extern int insert_ascend(int p,int e,int eq());
extern int length(int list);
extern int list2(int e1, int e2);
extern int list3(int e1, int e2, int e3);
extern int list4(int e1, int e2, int e3, int e4);
extern void extern_define(char *s,int d,int type,int use);

#if LONGLONG_CODE
extern int llist2(int e1, long long d1);
#endif
extern int neqname(char *p,char *q);
extern NMTBL *new_static_name(char *name,int delimit);
extern int reverse0(int t1);
extern int size(int t);
extern int typespec(void);

/* used in mc-macro.c */

extern struct cheap *cheap;

extern NMTBL *get_name(char *name,int *i,int mode);
#define DEF 1
#define NONDEF 2

extern NMTBL * get_name_from_chptr();
extern NMTBL *name_space_search(NMTBL *ns,int sc);

extern int getsym(int sc);
extern int getch(void);
extern int skipspc(void);
extern void copy_current_file_dir(char *name);
extern int expr(int noconv);

extern NMTBL *msearch0(char *name);
extern int alpha(int c);
extern int digit(int c);

extern struct cheap * increment_cheap(struct cheap *cheap,char **save);
extern void save_cheap(struct cheap *scheap,struct cheap *cheap);
extern struct cheap * reset_cheap(struct cheap *scheap);

/* end */