home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume26
/
pico
/
part01
/
pico.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-12-14
|
1KB
|
72 lines
#include <stdio.h>
#include <stdlib.h>
enum tree {
Num, Id, Bang, Not, Neg, Add, Sub, Mult, Div,
Mod, Or, Xor, And, Eq, Ne, Andalso, Orelse, Cond,
Gt, Lt, Ge, Le, Ll, Rr, Xcoord, Ycoord, Coordpair,
Write, Read, Files, Undo, Quit
};
typedef struct Tree Tree;
typedef struct Buf Buf;
struct Tree {
enum tree t;
int i;
void *kids[3];
};
struct Buf {
char *name;
unsigned char *data;
};
#define DEF_X 512
#define DEF_Y 512
#define NFILES 128
#define DUMPFILE "pico.out"
/* main.c */
extern int main(int, char *[]);
extern void syntax_error(int);
extern void error(char *);
extern unsigned char data[];
extern int debug, saw_eof;
extern Tree *tree;
/* expr.c */
extern Tree *expr(void);
/* mk.c */
extern Tree *mk(enum tree,Tree *,Tree *);
extern Tree *mkCond(Tree *,Tree *,Tree *);
extern Tree *mkCoord(int,Tree *);
extern Tree *mkun(enum tree,void *);
extern Tree *mkNum(int);
extern Tree *mkempty(enum tree);
/* gen.c */
extern int calc(Tree *);
extern void compile(Tree *);
/* dpy.c */
extern void display(unsigned char *);
/* alloc.c */
extern void *ealloc(size_t);
extern void *alloc(size_t);
extern void afree(void);
#ifndef offsetof
#define offsetof(t, m) ((size_t) &((t *)0)->m)
#endif
#define treealloc(x) alloc(offsetof(Tree,kids[x]));
/* file.c */
extern int findfile(char *);
extern void showfiles(void);
extern int readfile(char *);
extern void writefile(char *);
extern Buf buf[];
extern int nfiles;