home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
GEMini Atari
/
GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso
/
files
/
program
/
kr2ansi
/
kr2ansi.h
< prev
next >
Wrap
Text File
|
1993-10-23
|
5KB
|
219 lines
/* ==========================
* K R 2 A N S I . H
*
* Date: 9/32/91
* Author: Harry Karayiannis
* =========================
*/
/* -------------------------------------------- */
/*
* The following constants (hopefully) improve the readability
* of large code which consists of more than one files.
*/
#define STD_CLIB extern /* for identifying funcs of the standard C-library */
#define GLOBAL extern /* for identifying symbols declared in the same file */
/* -------------------------------------------- */
/*
* Here are some values for identifying
* up to 8 command line options. They
* are meant to be ORed in a bit map.
*/
#define NONE 0x00
#define SHOW_PARA 0x01 /* show parameters */
#define RD_TYPES 0x02 /* read user-defined types from a file */
#define UNUSED4 0x04 /* unused slot */
#define UNUSED5 0x08 /* unused slot */
#define UNUSED6 0x10 /* unused slot */
#define UNUSED7 0x20 /* unused slot */
#define UNUSED8 0x40 /* unused slot */
/* -------------------------------------------- */
#define MAXNAME 80 /* max length for a filename */
#define MAXLINE 256 /* max length for a line */
#define MAXWORD 50 /* max length for a data_type */
/* -------------------------------------------- */
/*
* the following string constants must be
* _at_most_ (MAXWORD-1) characters long.
*/
#define W_TOO_LONG "* WORD'S_TOO_LONG *"
#define UNDEFINED_DATA_TYPE "U_N_D_E_F_I_N_E_D"
/* -------------------------------------------- */
typedef int BOOLEAN; /* possible values: TRUE, FALSE */
#undef FALSE
#undef TRUE
#define FALSE 0
#define TRUE !FALSE
/* -------------------------------------------- */
/*
* constants for standard C data-types
* (actually they are used for accessing
* standard data-types in the array: data_type[]
* (see in file KR2ANSI.C))
*/
#define DT_STD1 0
#define DT_STD2 1
#define DT_STD3 2
#define DT_STD4 3
#define DT_STD5 4
#define DT_STD6 5
#define DT_STD7 6
#define DT_STD8 7
#define DT_STD9 8
#define DT_STD10 9
#define LAST_DT_STD 9
/* -------------------------------------------- */
/*
* constants for DT_USR_N user-defined data types
*/
#define N_DT_USR 20 /* maximum number of user-defined data types */
#define DT_USR1 LAST_DT_STD+1
#define DT_USR2 LAST_DT_STD+2
#define DT_USR3 LAST_DT_STD+3
#define DT_USR4 LAST_DT_STD+4
#define DT_USR5 LAST_DT_STD+5
#define DT_USR6 LAST_DT_STD+6
#define DT_USR7 LAST_DT_STD+7
#define DT_USR8 LAST_DT_STD+8
#define DT_USR9 LAST_DT_STD+9
#define DT_USR10 LAST_DT_STD+10
#define DT_USR11 LAST_DT_STD+11
#define DT_USR12 LAST_DT_STD+12
#define DT_USR13 LAST_DT_STD+13
#define DT_USR14 LAST_DT_STD+14
#define DT_USR15 LAST_DT_STD+15
#define DT_USR16 LAST_DT_STD+16
#define DT_USR17 LAST_DT_STD+17
#define DT_USR18 LAST_DT_STD+18
#define DT_USR19 LAST_DT_STD+19
#define DT_USR20 LAST_DT_STD+20
/* -------------------------------------------- */
/*
* list of valid data-types accepted by the program
* (note: there's room for N_DT_USR user-defined types.
* if you alter N_DT_USR, the change should also
* show on the number of lines in this table)
*/
#define DATA_TYPES\
"void",\
"int",\
"short",\
"unsigned",\
"long",\
"register",\
"char",\
"float",\
"double",\
"FILE",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined ",\
" user_defined "
/*
* The following constant _must_ be equal to the length of
* the longest data-type defined in DATA_TYPES (see above)
* PLUS one (for the '\0' at the end of the string)
* Here this value is: strlen(" user_defined ")+1 = 19
*/
#define DT_MAXWORD 19
/* -------------------------------------------- */
/*
* This macro returns:
* TRUE if c is a white(BLANK) character,
* FALSE otherwise.
*/
#define IS_BLANK(c)\
( (c)==' ' || (c)=='\t' || (c)=='\n' )
/* -------------------------------------------- */
/*
* The following macro handles fatal errors.
* It "demands" that a condition is TRUE...if not,
* it prints an error-message and exits the program
* (via the function fatal(), declared in the file: ERROR.C)
* NOTE:
* If you don't want the depedancy on 'fatal()' (which
* pritns the name of the running program in front of
* the error message) you can rewrite it as following:
*
* #define demand(cond,mesg)\
* if ( !(cond) ) \
* {
* puts(mesg);\
* exit(1);\
* }
*/
#define demand(cond,mesg)\
if ( !(cond) )\
fatal(mesg)