home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume26 / pico / part01 / pico.h < prev    next >
C/C++ Source or Header  |  1991-12-14  |  1KB  |  72 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. enum tree {
  5.     Num, Id, Bang, Not, Neg, Add, Sub, Mult, Div,
  6.     Mod, Or, Xor, And, Eq, Ne, Andalso, Orelse, Cond,
  7.     Gt, Lt, Ge, Le, Ll, Rr, Xcoord, Ycoord, Coordpair,
  8.     Write, Read, Files, Undo, Quit
  9. };
  10.  
  11. typedef struct Tree Tree;
  12. typedef struct Buf Buf;
  13.  
  14. struct Tree {
  15.     enum tree t;
  16.     int i;
  17.     void *kids[3];
  18. };
  19.  
  20. struct Buf {
  21.     char *name;
  22.     unsigned char *data;
  23. };
  24.  
  25. #define DEF_X 512
  26. #define DEF_Y 512
  27. #define NFILES 128
  28. #define DUMPFILE "pico.out"
  29.  
  30. /* main.c */
  31. extern int main(int, char *[]);
  32. extern void syntax_error(int);
  33. extern void error(char *);
  34. extern unsigned char data[];
  35. extern int debug, saw_eof;
  36. extern Tree *tree;
  37.  
  38. /* expr.c */
  39. extern Tree *expr(void);
  40.  
  41. /* mk.c */
  42. extern Tree *mk(enum tree,Tree *,Tree *);
  43. extern Tree *mkCond(Tree *,Tree *,Tree *);
  44. extern Tree *mkCoord(int,Tree *);
  45. extern Tree *mkun(enum tree,void *);
  46. extern Tree *mkNum(int);
  47. extern Tree *mkempty(enum tree);
  48.  
  49. /* gen.c */
  50. extern int calc(Tree *);
  51. extern void compile(Tree *);
  52.  
  53. /* dpy.c */
  54. extern void display(unsigned char *);
  55.  
  56. /* alloc.c */
  57. extern void *ealloc(size_t);
  58. extern void *alloc(size_t);
  59. extern void afree(void);
  60. #ifndef offsetof
  61. #define offsetof(t, m) ((size_t) &((t *)0)->m)
  62. #endif
  63. #define treealloc(x) alloc(offsetof(Tree,kids[x]));
  64.  
  65. /* file.c */
  66. extern int findfile(char *);
  67. extern void showfiles(void);
  68. extern int readfile(char *);
  69. extern void writefile(char *);
  70. extern Buf buf[];
  71. extern int nfiles;
  72.