home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
gdead.berkeley.edu
/
gdead.berkeley.edu.tar
/
gdead.berkeley.edu
/
pub
/
cad-tools
/
ciftomann.tar
/
edger_dir
/
parser.h
< prev
next >
Wrap
C/C++ Source or Header
|
1988-01-28
|
1KB
|
55 lines
#include <stdio.h>
#define ALLOC(type) (type *) malloc(sizeof(type))
#define FREE(ptr) free( (char *) (ptr) )
#define NIL(type) ((type *) 0)
typedef enum {FALSE = 0, TRUE} boolean;
typedef int type_type;
typedef struct point_tag {
int x;
int y;
struct point_tag *next;
} point;
typedef struct {
enum trans_type { ROTATE,TRANSLATE,MIRROR_X,MIRROR_Y } type;
point *point;
} transform;
/* the various classes of characters */
#define BLANK '\001'
#define UPPER_CHAR '\002'
#define DIGIT '\004'
#define SPECIAL '\010'
#define SEP (BLANK | UPPER_CHAR)
#define INFINITE 017777777777
#define MAX_INT 017777777776
#define IS(type,char) ( (type) & char_type[(int) (char)] )
extern type_type char_type[];
extern int line_number;
extern char current_char;
extern int current_int;
extern FILE *infile;
#define GET_CHAR ( ((current_int = getc(infile)) == EOF) ?\
error("Unexpected end of file"),(char) 0 :\
((current_char = (char) current_int) == '\n' ?\
line_number++, current_char : current_char))
int get_integer();
point *get_path();
point *get_point();
char *get_shortname();
int get_sinteger();
get_transform();
transform *get_transterm();