/*******************************************/ /* */ /* File: chtmldefs.h */ /* Purpose: c2html definition */ /* */ /* Author: Sfiligoi Igor */ /* */ /* Created : 30.01.1997 */ /* Last modified: 02.04.1997 */ /* */ /*******************************************/ #ifndef CHTMLDEFS_H #define CHTMLDEFS_H #include "chtmlidfs.h" #define strcatmem(dest,src1,src2) \ { /* concatena le due strighe (con malloc e free) */ \ dest = (char *) malloc(strlen(src1)+strlen(src2)+1); \ strcpy(dest,src1); \ strcat(dest,src2); \ \ free(src1); \ free(src2); \ } #define strcat3mem(dest,src1,src2,src3) \ { /* concatena le 3 strighe (con malloc e free) */ \ dest = (char *) malloc(strlen(src1)+strlen(src2)+strlen(src3)+1); \ strcpy(dest,src1); \ strcat(dest,src2); \ strcat(dest,src3); \ \ free(src1); \ free(src2); \ free(src3); \ } #define strcat4mem(dest,src1,src2,src3,src4) \ { /* concatena le 4 strighe (con malloc e free) */ \ dest = (char *) malloc(strlen(src1)+strlen(src2)+strlen(src3)+strlen(src4)+1); \ strcpy(dest,src1); \ strcat(dest,src2); \ strcat(dest,src3); \ strcat(dest,src4); \ \ free(src1); \ free(src2); \ free(src3); \ free(src4); \ } #define strcat5mem(dest,src1,src2,src3,src4,src5) \ { /* concatena le 5 strighe (con malloc e free) */ \ dest = (char *) malloc(strlen(src1)+strlen(src2)+strlen(src3)+ \ strlen(src4)+strlen(src5)+1); \ strcpy(dest,src1); \ strcat(dest,src2); \ strcat(dest,src3); \ strcat(dest,src4); \ strcat(dest,src5); \ \ free(src1); \ free(src2); \ free(src3); \ free(src4); \ free(src5); \ } #define strcat6mem(dest,src1,src2,src3,src4,src5,src6) \ { /* concatena le 5 strighe (con malloc e free) */ \ dest = (char *) malloc(strlen(src1)+strlen(src2)+strlen(src3)+ \ strlen(src4)+strlen(src5)+strlen(src6)+1); \ strcpy(dest,src1); \ strcat(dest,src2); \ strcat(dest,src3); \ strcat(dest,src4); \ strcat(dest,src5); \ strcat(dest,src6); \ \ free(src1); \ free(src2); \ free(src3); \ free(src4); \ free(src5); \ free(src6); \ } #define strcat9mem(dest,src1,src2,src3,src4,src5,src6,src7,src8,src9) \ { /* concatena le 5 strighe (con malloc e free) */ \ dest = (char *) malloc(strlen(src1)+strlen(src2)+strlen(src3)+ \ strlen(src4)+strlen(src5)+strlen(src6)+ \ strlen(src7)+strlen(src8)+strlen(src9)+1); \ strcpy(dest,src1); \ strcat(dest,src2); \ strcat(dest,src3); \ strcat(dest,src4); \ strcat(dest,src5); \ strcat(dest,src6); \ strcat(dest,src7); \ strcat(dest,src8); \ strcat(dest,src9); \ \ free(src1); \ free(src2); \ free(src3); \ free(src4); \ free(src5); \ free(src6); \ free(src7); \ free(src8); \ free(src9); \ } #define char2str(str,chr) \ { /* transform char to string */ \ str = (char *) malloc(2); \ str[0] = chr; \ str[1] = 0; \ } #define stremptymem(dest) \ { \ dest = (char *) malloc(1); \ dest[0] = 0; \ } /* report yacc errors */ void yyerror(char *str); typedef struct { char *idf; /* identifier */ char *succ; /* string after the identifier */ } IDFSTR; extern int Curr_Line; /* Current Line */ extern int ininclude; /* 1 iff in an include */ extern int inprecomp; /* 1 iff in a precompiler */ extern int atbegin; /* 1 only at the beggining */ extern int doprint; /* if 1 print in stderr all the input */ extern char *macrourl; /* file name in which macros are described */ /* if NULL, no link is established */ extern char *funcurl; /* file name in which functions without prototype have description*/ /* if NULL, no link is established */ extern char *protourl; /* file name in which the prototypes have the implementation or the description */ /* if NULL, no link is established */ extern void *mainSTable; /* All the symbols */ extern void *thisSTable; /* Symbols defined inside the file */ extern char *path; /* path where to search for includes */ extern char *outdir; /* directory where to save the html file */ extern char *chidir; /* directory where to save the chi file */ extern char *finalprog; /* result of the parse */ #endif /* CHTMLDEFS_H */