Category : Files from Magazines
Archive   : CUJ9201.ZIP
Filename : 1001116B

 
Output of file : 1001116B contained in archive : CUJ9201.ZIP

/************************************************************
* Program: CMENU Menu Compiler
* Module: ccmenu.h -- Compiler Module header file
* Written by: Leor Zolman, 11/90
************************************************************/

/********************* Misc. constants **********************/

#define TRUE 1
#define FALSE 0
#define OK 0

#define UNDEF_FWD (-1) /* undefined forward reference flag */


/********************** extern control **********************/

#ifndef MASTER
# define Extern extern /* external declarations */
#else
# define Extern /* one-time definitions */
#endif


/********************* Type Definitions *********************/

typedef struct {
char Name[MAX_NAME];
ITEM Item;
} IINFO;

typedef struct {
char Name[MAX_NAME];
BOOL Processed;
MENU Menu;
IINFO *Items[MAX_ITEMS];
} MINFO;

/*********************** Token codes: ************************/

#if __STDC__

enum {
T_NULL, /* special code */
T_MENU, T_TITLE, T_PATH,
T_SPACING, T_COLUMNS, T_ENDMENU,
T_ITEM, T_TEXT,
T_ALIGN, T_LEFT, T_CENTER, T_RIGHT,
T_NEXTITEM, T_FIRST, T_LAST, T_NEXT,
T_EMENU, T_LMENU, T_ACTION,
T_HELP,
T_PROMPT, T_PAUSE, /* synonyms */
T_NOPROMPT, T_NOPAUSE, /* synonyms */
T_PRECLEAR, T_NOPRECLEAR, T_POSTCLEAR, T_NOPOSTCLEAR,
T_EXIT,
T_ESCAPE, T_NOESCAPE,
T_STRING, T_VALUE, T_COLON, T_EOF /* special tokens */
};

#else /* __STDC__ */

#define T_NULL 0 /* special code */
#define T_MENU 1
#define T_TITLE 2
#define T_PATH 3
#define T_SPACING 4
#define T_COLUMNS 5
#define T_ENDMENU 6
#define T_ITEM 7
#define T_TEXT 8
#define T_ALIGN 9
#define T_LEFT 10
#define T_CENTER 11
#define T_RIGHT 12
#define T_NEXTITEM 13
#define T_FIRST 14
#define T_LAST 15
#define T_NEXT 16
#define T_EMENU 17
#define T_LMENU 18
#define T_ACTION 19
#define T_HELP 20
#define T_PROMPT 21 /* synonyms */
#define T_PAUSE 22
#define T_NOPROMPT 23 /* synonyms */
#define T_NOPAUSE 24
#define T_PRECLEAR 25
#define T_NOPRECLEAR 26
#define T_POSTCLEAR 27
#define T_NOPOSTCLEAR 28
#define T_EXIT 29
#define T_ESCAPE 30
#define T_NOESCAPE 31
#define T_STRING 32 /* special tokens */
#define T_VALUE 33
#define T_COLON 34
#define T_EOF 35

#endif /* __STDC__ */

/********************* Prototypes: **************************/

#if __STDC__ || XENIX /* ANSI Prototypes: */

int write_file(void);
int dofile(char *);

void itemcheck(void);
int gettok();

int error(char *, ...);
int fatalerr(char *, ...);

MINFO create_menu(char *);
IINFO *create_item(char *);
MINFO *find_menu(char *);
IINFO *find_item(char *);

int do_menu(void);
int do_title(void);
int do_path(void);
int do_spacing(void);
int do_columns(void);
int do_item(void);
int do_endmenu(void);
int do_align(void);
int do_text(void);
int do_text2(void);
int do_nextitem(void);
int do_action(void);
int do_help(void);
int do_prompt(void);
int do_clear(void);
int do_err(void);
int do_escape();
int do_opts(void);

#else /* K&R Prototypes: */

int write_file();
int dofile();

Void itemcheck();
int gettok();

int error();
int fatalerr();

MINFO create_menu();
IINFO *create_item();
MINFO *find_menu();
IINFO *find_item();

int do_menu();
int do_title();
int do_path();
int do_spacing();
int do_columns();
int do_item();
int do_endmenu();
int do_align();
int do_text();
int do_text2();
int do_nextitem();
int do_action();
int do_help();
int do_prompt();
int do_clear();
int do_err();
int do_escape();
int do_opts();

#endif

#ifdef NEEDSTR
char *strstr();
#endif


/************ Keyword / function dispatch table *************/

struct keywd {
char *keyword;
int (*t_func)();
};

extern struct keywd keywords[];

#ifdef MASTER
struct keywd keywords[] = {
"(null)", do_err, /* for db only */
"menu", do_menu,
"title", do_title,
"path", do_path,
"spacing", do_spacing,
"columns", do_columns,
"endmenu", do_endmenu,
"item", do_item,
"text", do_text,
"align", do_align,
"left", do_err,
"center", do_err,
"right", do_err,
"nextitem", do_nextitem,
"first", do_err,
"last", do_err,
"next", do_err,
"emenu", do_action,
"lmenu", do_action,
"action", do_action,
"help", do_help,
"prompt", do_opts,
"pause", do_opts,
"noprompt", do_opts,
"nopause", do_opts,
"preclear", do_opts,
"nopreclear", do_opts,
"postclear", do_opts,
"nopostclear", do_opts,
"exit", do_action,
"escape", do_escape,
"noescape", do_escape,
"(!string)", do_err, /* for db only */
"(!value)", do_err, /* for db only */
"(!colon)", do_err, /* for db only */
"(!EOF)", do_err /* for db only */
};
#endif

#define N_KEYWORDS (sizeof keywords / sizeof (struct keywd))


/*************** Other Data structures *********************/

Extern MINFO MInfo[MAX_MENUS], *MIp;
Extern IINFO *IIp;

Extern MENU *Mp, *CMp; /* General, Current Menu Pointers */
Extern ITEM *Ip, *CIp; /* General, Current Item Pointers */

Extern struct { /* Item Forward Reference Table */
char iname[MAX_NAME]; /* Item name */
int *refp; /* Pointer to reference location */
int lineno; /* source line number of reference */
} fwd_refs[MAX_ITEMS];

Extern int n_refs; /* Number of forward references */

/************** Miscellaneous data items ********************/

Extern FILE *fp;
Extern int token, token2; /* token codes */
Extern char tparam[MAX_CMD]; /* text parameter */
Extern int vparam; /* value parameter */
Extern int lineno; /* current line number */
Extern int n_menus,
n_items;
Extern BOOL in_menu,
in_item;
Extern BOOL err_flag,
fatal;
Extern int item_num,
menu_num;

Extern char src_name[MAX_PATH];
Extern char obj_name[MAX_PATH];


  3 Responses to “Category : Files from Magazines
Archive   : CUJ9201.ZIP
Filename : 1001116B

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/