#line 826 "nuweb.w" /* Include files */ #line 835 "nuweb.w" #include #include #include #include #include #include #line 826 "nuweb.w" /* Type declarations */ #line 854 "nuweb.w" #ifndef FALSE #define FALSE 0 #endif #ifndef TRUE #define TRUE 1 #endif #line 1815 "nuweb.w" typedef int *Parameters; #line 3784 "nuweb.w" #define MAX_INDENT 500 #line 5074 "nuweb.w" typedef struct scrap_node { struct scrap_node *next; int scrap; char quoted; } Scrap_Node; #line 5083 "nuweb.w" typedef struct name { char *spelling; struct name *llink; struct name *rlink; Scrap_Node *defs; Scrap_Node *uses; char * arg[9]; int mark; char tab_flag; char indent_flag; char debug_flag; unsigned char comment_flag; unsigned char sector; } Name; #line 5536 "nuweb.w" #define ARG_CHR '\001' #line 5596 "nuweb.w" typedef struct arglist {Name * name; struct arglist * args; struct arglist * next; } Arglist; #line 5760 "nuweb.w" typedef struct embed { Scrap_Node * defs; Arglist * args; } Embed_Node; #line 6240 "nuweb.w" typedef struct uses { struct uses *next; Name *defn; } Uses; #line 6482 "nuweb.w" typedef struct l_node { struct l_node * left, * right; int scrap, seq; char name[1]; } label_node; #line 827 "nuweb.w" /* Limits */ #line 864 "nuweb.w" #ifndef MAX_NAME_LEN #define MAX_NAME_LEN 1024 #endif #line 828 "nuweb.w" /* Global variable declarations */ #line 1036 "nuweb.w" extern int tex_flag; /* if FALSE, don't emit the documentation file */ extern int html_flag; /* if TRUE, emit HTML instead of LaTeX scraps. */ extern int output_flag; /* if FALSE, don't emit the output files */ extern int compare_flag; /* if FALSE, overwrite without comparison */ extern int verbose_flag; /* if TRUE, write progress information */ extern int number_flag; /* if TRUE, use a sequential numbering scheme */ extern int scrap_flag; /* if FALSE, don't print list of scraps */ extern int dangling_flag; /* if FALSE, don't print dangling identifiers */ extern int xref_flag; /* If TRUE, print cross-references in scrap comments */ extern int prepend_flag; /* If TRUE, prepend a path to the output file names */ extern char * dirpath; /* The prepended directory path */ extern char * path_sep; /* How to join path to filename */ extern int listings_flag; /* if TRUE, use listings package for scrap formatting */ extern int version_info_flag; /* If TRUE, set up version string */ extern char * version_string; /* What to print for @v */ extern int hyperref_flag; /* Are we preparing for hyperref package. */ extern int hyperopt_flag; /* Are we preparing for hyperref options */ extern char * hyperoptions; /* The options to pass to the hyperref package */ extern int includepath_flag; /* Do we have an include path? */ extern struct incl{char * name; struct incl * next;} * include_list; /* The list of include paths */ #line 1094 "nuweb.w" extern int nw_char; #line 1104 "nuweb.w" extern char *command_name; #line 1505 "nuweb.w" extern unsigned char current_sector; extern unsigned char prev_sector; #line 1703 "nuweb.w" extern char blockBuff[6400]; #line 2418 "nuweb.w" extern int extra_scraps; #line 3901 "nuweb.w" extern char *source_name; /* name of the current file */ extern int source_line; /* current line in the source file */ #line 4237 "nuweb.w" extern int already_warned; #line 5100 "nuweb.w" extern Name *file_names; extern Name *macro_names; extern Name *user_names; extern int scrap_name_has_parameters; extern int scrap_ended_with; #line 6491 "nuweb.w" extern label_node * label_tab; #line 829 "nuweb.w" /* Function prototypes */ #line 1400 "nuweb.w" extern void pass1(char *file_name); #line 2034 "nuweb.w" extern void write_tex(char *file_name, char *tex_name); #line 2582 "nuweb.w" void initialise_delimit_scrap_array(void); #line 2676 "nuweb.w" void update_delimit_scrap(); #line 3100 "nuweb.w" extern int has_sector(Name *, unsigned char); #line 3227 "nuweb.w" extern void write_html(char *file_name, char *html_name); #line 3764 "nuweb.w" extern void write_files(Name *files); #line 3889 "nuweb.w" extern void source_open(char *name); /* pass in the name of the source file */ extern int source_get(void); /* no args; returns the next char or EOF */ extern int source_last; /* what last source_get() returned. */ extern int source_peek; /* The next character to get */ #line 3964 "nuweb.w" extern void source_ungetc(int*); #line 4173 "nuweb.w" extern void init_scraps(void); extern int collect_scrap(void); extern int write_scraps(FILE *file, char *spelling, Scrap_Node *defs, int global_indent, char *indent_chars, char debug_flag, char tab_flag, char indent_flag, unsigned char comment_flag, Arglist *inArgs, char *inParams[9], Parameters parameters, char *title); extern void write_scrap_ref(FILE *file, int num, int first, int *page); extern void write_single_scrap_ref(FILE *file, int num); extern int num_scraps(void); #line 4501 "nuweb.w" extern void add_to_use(Name * name, int current_scrap); #line 4575 "nuweb.w" extern Arglist *instance(Arglist *a, Arglist *par, char *arg[9], int *ch); #line 4984 "nuweb.w" extern void collect_numbers(char *aux_name); #line 5116 "nuweb.w" extern Name *collect_file_name(void); extern Name *collect_macro_name(void); extern Arglist *collect_scrap_name(int current_scrap); extern Name *name_add(Name **rt, char *spelling, unsigned char sector); extern Name *prefix_add(Name **rt, char *spelling, unsigned char sector); extern char *save_string(char *); extern void reverse_lists(Name *names); #line 5260 "nuweb.w" extern int robs_strcmp(char*, char*); #line 5579 "nuweb.w" extern Name *install_args(Name * name, int argc, char *arg[0]); #line 6000 "nuweb.w" extern void search(void); #line 6247 "nuweb.w" extern void format_uses_refs(FILE *, int); #line 6302 "nuweb.w" extern void format_defs_refs(FILE *, int); #line 6413 "nuweb.w" void write_label(char label_name[], FILE * file); #line 6506 "nuweb.w" extern void *arena_getmem(size_t n); extern void arena_free(void); #line 830 "nuweb.w" /* Operating System Dependencies */ #line 972 "nuweb.w" #if defined(VMS) #define PATH_SEP(c) (c==']'||c==':') #define PATH_SEP_CHAR "" #define DEFAULT_PATH "" #elif defined(MSDOS) #define PATH_SEP(c) (c=='\\') #define PATH_SEP_CHAR "\\" #define DEFAULT_PATH "." #else #define PATH_SEP(c) (c=='/') #define PATH_SEP_CHAR "/" #define DEFAULT_PATH "." #endif #line 831 "nuweb.w"