home *** CD-ROM | disk | FTP | other *** search
/ GRIPS 2: Government Rast…rocessing Software & Data / GRIPS_2.cdr / dos / imcomp / def.h < prev    next >
C/C++ Source or Header  |  1990-12-29  |  11KB  |  322 lines

  1. /* ====================================================================== *
  2.  *     def.h                                                                *
  3.  * ====================================================================== *
  4.  *    rt/1 #defines reside in this file                                      *
  5.  *                                                                          *
  6.  *  last changed for  #9 board on 2/14/87 by tad                          */
  7.  
  8. /*  debug aids*/
  9. /*#define TRACE(x) x;            /*trace of each function call*/
  10. #define TRACE(x)            /**/
  11. /*#define DEBUG    1            /*include extra debug code*/
  12. #define DBG1(x)                /*exclude debug code*/
  13. #define DBG2(x,y)            /**/
  14. #define DBG3(x,y,z)          /**/
  15. /*#define DBG1(x) x;        /*include debug code*/
  16. /*#define DBG2(x,y) x;y;    /**/
  17. /*#define DBG3(x,y,z) x;y;z;    /**/
  18.  
  19. /* to include/exclude groups of commands */
  20. #define IBMPC   1
  21. #define DEB        1
  22. #define MANUALCURSOR     1    /* use software cursor on the command line */
  23. #define NDEBUG        1        /* ^N print names, etc.*/
  24. #undef ALARMING                /* remove interrupts */
  25. /* #define HYPERBOL    1        /*include hyperbolic functions*/
  26. #define TEMPDEBUG    1        /*add temp list printer for debugging*/
  27. #define CPLDEBUG    1        /*add compiled printer for debugging*/
  28. #define ZWHILE    1            /* include smeet's whiles */
  29.  
  30. /* for use in interrupts */
  31. #define TICKS    1    /* number of 1/60 second ticks between interrupts */
  32. #define TIMEOUT 16    /* signal number for ticktim() timeout */
  33.  
  34. /* flags */
  35. #define NDEL 0x01
  36. #define DOLDEL 0x02
  37. #define DOLOOP 0x04
  38. #define RDONLY 0x08    /* for special names ($SC, etc) not to be changed */
  39. #define STICKY 0x10    /* for assignable specials, sticky type */
  40.  
  41. /* data types */
  42. #define BITS short          /*type for flags*/
  43. #define BOOL unsigned char    /*type for logical functions*/
  44. #define COORD float            /*type for coordinate data*/
  45. #define ITYPE long             /*type for IVALs*/
  46. #define FTYPE float            /*type for FVALs*/
  47. #define BTYPE unsigned char    /*type for BVALs*/
  48. #define TINY char            /*type for type structure member*/
  49. #define HTYPE short     /*type for HVALs (16 bit integer), by Dai 7/31/86*/
  50. #define NTYPE unsigned char   /* type for NVALs, by Dai 8/1/86 */
  51.  
  52.  
  53. /* types */
  54. #define EXPEND -1        /* end of expression*/
  55. #define EOARG 0            /* end of arguments*/
  56. #define CPLNULL 1        /* NULLTYPE for compiled */
  57. #define NULLTYPE 2
  58. #define LOCAL 3
  59. #define IVAL 4            /* integer */
  60. #define HVAL 5          /* 16 bit integer, by Dai 7/31/86 */
  61. #define FVAL 6
  62. #define BVAL 7
  63. #define STRADR 8        /* address of a temp structure for string*/
  64. #define NVAL 9          /* 4 bit integer, by Dai 8/1/86 */
  65. #define NAMADR 10        /* address of name block*/
  66. #define HADR 11         /* 16 bit integer address (for array reference),
  67.                            by Dai 7/31/86 */
  68. #define IADR 12            /* int address (for array reference)*/
  69. #define SADR 13            /* string address (for array reference)*/
  70. #define FADR 14            /* float address (array reference)*/
  71. #define BADR 15            /* byte address (array reference)*/
  72. #define AADR 16            /* array */
  73. #define NADR 17         /* 4 bit integer address (for array reference),
  74.                            by Dai 8/1/86 */
  75. #define CPLADR 18        /* compiled macro */
  76. #define CGR 19            /* c graphics type to go in ttype in a TEMP*/
  77. #define SWAPADR 20        /* swap command */
  78. #define CMDADR 24        /* command */
  79. #define MIBBLK 34        /* IS MIB */
  80. #define KEYBLK 38        /* is kbd mib */
  81. #define CZBLOK 40        /* is ^Z mib */
  82. #define CPLMIB 42        /* is a cpl mib */
  83. #define REPEAT 48        /* repeat last argument*/
  84. #define ANYVAL 50        /* any value*/
  85. #define ANYNAM 52        /* any address*/
  86. #define ANYTHING 54        /* any operand*/
  87. #define SWITCH 56        /* switches allowed in this operand list*/
  88. #define LINEND 60        /* end of line (compiled)*/
  89. #define LABEL 62        /* label (compiled)*/
  90. #define IGNORE 64        /* place holder (compiled) */
  91. #define BRANCH 66        /* branch (compiled)*/
  92. #define CPLEND 68        /* end (of compiled)*/
  93. #define UNARY 71        /* unary operator*/
  94. #define BINARY 72        /* binary operator*/
  95. #define LPAREN 73        /* left parenthesis*/
  96. #define RPAREN 74        /* right parenthesis*/
  97. #define CPLRPAREN 75        /* right parenthesis*/
  98.  
  99. /*  operand types*/
  100. #define NUMB 1
  101. #define STRING 2
  102. #define RELAT 3
  103. #define ASSIGN 4
  104.  
  105.  
  106. /*  size-dimension parameters*/
  107. #define VALSTKSIZ    100    /* operand stack size*/
  108. #define QUEUESIZE    80    /* parsing queue*/
  109. /*#define CPLSIZE    500    /* compiled region size*/ /*in comp.c*/
  110. #define CPLINES        200    /* compiled line table size*/
  111. #define NUMOPERS    28    /* number of operators*/
  112. #define BUFLIMIT    128    /* buffer size*/
  113. #define MAXCMDS        180    /* max number of commands */
  114. #define FREEMAX        20    /* number of mibs to initialize */
  115. #define CNTLMAX        32    /* number of cntl's allowed */
  116. #define NUMALPHA    28    /* number of valid alpha characters */
  117. #define NUMTRAN        10    /* number of characters to translate */
  118. #define NUMERR        10    /* number of errors buffered*/
  119. #define STRSIZE        10000    /* unknown-size allocation for strings*/
  120. #define WORKSIZE    130    /* character work area/buffer size*/
  121. #ifdef IBMPC
  122. #define BIGLONG        65535        /* 2**16 - 1*/
  123. #else
  124. #define BIGLONG        2147483647    /* 2**31 - 1*/
  125. #endif
  126. #define RANDRANGE    BIGLONG - 0    /* range of random function*/
  127. #define NDIGIT        6    /* number of digits to print*/
  128.  
  129.  
  130. /*  general constants*/
  131. #define ERROR        -1
  132. #define FAIL        -1
  133. #define FLUB        0
  134. #define SUCCEED        1
  135. #define FALSE        0
  136. #define TRUE        1
  137. #define PERMANENT    0    /* mib alloc type */
  138. #define TEMPORARY    1    /* mib alloc type */
  139.  
  140. /*  character typing constants*/
  141. #define ALPH        1    /*alphabetic*/
  142. #define DIG            2    /*digit*/
  143. #define LOW            4    /*lower case alpha*/
  144. #define OPR            8    /*operator*/
  145. #define STRD        16    /*initial string delimiter*/
  146. #define LEXD        32      /* , ; \n \0 for yylex*/
  147. #define DEL1        64      /* ; \n \0*/
  148. #define DEL2        128     /* \n \0*/
  149. #define DEL3        256     /* ; \n \0 ( for namadr*/
  150. #define WSP            512     /* blank \t white space*/
  151. #define LDIG        1024    /* 0-9 . for yylex*/
  152. #define CR            0x0d
  153. #define TILDE        0x7e
  154.  
  155. /* control characters  */
  156. #define CTLA    '\001'
  157. #define CTLB    '\002'
  158. #define CTLC    '\003'
  159. #define CTLD    '\004'
  160. #define CTLE    '\005'
  161. #define CTLF    '\006'
  162. #define CTLG    '\007'
  163. #define CTLH    '\010'
  164. #define CTLI    '\011'
  165. #define CTLJ    '\012'
  166. #define CTLK    '\013'
  167. #define CTLL    '\014'
  168. #define CTLM    '\015'
  169. #define CTLN    '\016'
  170. #define CTLO    '\017'
  171. #define CTLP    '\020'
  172. #define CTLQ    '\021'
  173. #define CTLR    '\022'
  174. #define CTLS    '\023'
  175. #define CTLT    '\024'
  176. #define CTLU    '\025'
  177. #define CTLV    '\026'
  178. #define CTLW    '\027'
  179. #define CTLX    '\030'
  180. #define CTLY    '\031'
  181. #define CTLZ    '\032'
  182.  
  183. #define CTLLEFTBRKT    '\033'
  184. #define CTLBACKSLASH    '\034'
  185. #define CTLRIGHTBRKT    '\035'
  186. #define CTLUPARROW    '\036'
  187.  
  188. #ifdef AMIGA
  189. #define RUB    0x7f
  190. #endif
  191.  
  192. #define CTL_    '\037'
  193.  
  194. #ifdef IBMPC
  195. #define RIGHTARROW    (0x1C)
  196. #define LEFTARROW    (0x1D)
  197. #define UPARROW        (0x1E)
  198. #define DOWNARROW    (0x1F)
  199. #define CTRL_BS        (0x7F)
  200. #define WINDOW        (0xBB)
  201. #define HOMEKEY        (0xC8)
  202. #define ENDKEY        (0xC9)
  203. #define PAGEUP        (0xCA)
  204. #define PAGEDOWN    (0xCB)
  205. #define CTRL_HOME    (0xCC)
  206. #define CTRL_END    (0xCD)
  207. #define INSERT        (0xCE)
  208. #define RUB            (0xCF)
  209. #define FUNCTION1    (0xD2)
  210. #define FUNCTION2    (0xD3)
  211. #define FUNCTION3    (0xD4)
  212. #define FUNCTION4    (0xD5)
  213. #define FUNCTION5    (0xD6)
  214. #define FUNCTION6    (0xD7)
  215. #define FUNCTION7    (0xD8)
  216. #define FUNCTION8    (0xD9)
  217. #define FUNCTION9    (0xDA)
  218. #define FUNCTION10    (0xDB)
  219. #define SFUNCTION1    (0xDC)
  220. #define SFUNCTION2    (0xDD)
  221. #define SFUNCTION3    (0xDE)
  222. #define SFUNCTION4    (0xDF)
  223. #define SFUNCTION5    (0xE0)
  224. #define SFUNCTION6    (0xE1)
  225. #define SFUNCTION7    (0xE2)
  226. #define SFUNCTION8    (0xE3)
  227. #define SFUNCTION9    (0xE4)
  228. #define HELP        (0xE5)
  229. #endif
  230.  
  231. #define OPAREN        5    /*( index in optab*/
  232. #define CPAREN        6    /*) index in optab*/
  233. #define UOPFIRST    0    /*first unary entry in op_tab*/ 
  234. #define UOPLAST        4    /*last unary entry in op_tab*/
  235. #define U2OPFIRST    26    /*first unary entry in op_tab*/ 
  236. #define U2OPLAST    27    /*last unary entry in op_tab*/
  237. #define SOPFIRST    7    /*single char binary*/
  238. #define SOPLAST        17
  239. #define DOPFIRST    18    /*double char binary*/
  240. #define DOPLAST        25
  241.  
  242.  
  243. /* error equates */
  244. #define ER_EXMPL 0    /* for example error */
  245. #define ER_SYS    3    /* internal error*/
  246. #define ER_CGR    4    /* not CGR type*/
  247. #define ER_NULL    5    /* null path name*/
  248. #define ER_TMOD    6    /* invalid transfer mode*/
  249. #define ER_FNAM    7    /* invalid file name*/
  250. #define ER_FCRT    8    /* cant create file*/
  251. #define ER_COLT    9    /* bad color type*/
  252. #define ER_LUTA    10    /* invalid lut array*/
  253. #define ER_FILL 11    /* agenda overflow in fill */
  254. #define ER_FILLS 12    /* fill seed out of window */
  255. #define ER_OPN1 19    /* operand error*/
  256. #define ER_OPN2 20    /* operand error*/
  257. #define ER_CON1 22    /* ANYVAL*/
  258. #define ER_CORE 27
  259. #define ER_128    28    /* OVER BUFFER LIMIT IN INPTTY */
  260. #define ER_LPAR 31    /* illegal (*/
  261. #define ER_DKCH 33    /* unknown character in expression */
  262. #define ER_CMD    34    /* not a command */
  263. #define ER_MAC    35    /* not a macro */
  264. #define ER_NOL    37    /* no such label */
  265. #define ER_LAB2    38    /* duplicate label */
  266. #define ER_ARG    39    /* incomplete argument list*/
  267. #define ER_RPAR 42    /* right paren*/
  268. #define ER_ARBND 47    /* array reference out of bounds */
  269. #define ER_ARA 48    /* can't convert to array */
  270. #define ER_DIM    50    /* too many dimensions for array*/
  271. #define ER_INVL 52    /* invalid argument for command*/
  272. #define ER_EDIT 53    /* can only edit STRADR and NULLTYPE */
  273. #define ER_COMP 59    /* can't compile*/
  274. #define ER_CPLN 60    /* too many lines for compile*/
  275. #define ER_CPLQ 61    /* compile ran out of queue space*/
  276. #define ER_INM    69    /* must be in macro */
  277. #define ER_READ 79    /* read error */
  278. #define ER_WRITE 80    /* write error */
  279. #define ER_SWAP 82    /* can't swap this */
  280. #define ER_TXT 83    /* text error */
  281. #define ER_STKU 87    /* stack underflow*/
  282. #define ER_STKF 88    /* stack full*/
  283. #define ER_OPEN 90    /* can't open file*/
  284. #define ER_DP 91    /* can't dput this*/
  285. #define ER_0DIM 96    /* 0 dimension for array*/
  286. #define ER_DIV0 97    /* divide or mod by 0*/
  287. #define ER_SW    98    /* no such switch*/
  288. #define ER_OPR    102    /* missing operator*/
  289. #define ER_QUF    103    /* queue full*/
  290. #define ER_BIN    104    /* missing binary*/
  291. #define ER_IND    105    /* name from string for @*/
  292. #define ER_ASN    122    /* assignment*/
  293. #define ER_CON2 123    /* ANYVAL from name*/
  294. #define ER_CON3 124    /* FVAL*/
  295. #define ER_CON4 125    /* NAMADR*/
  296. #define ER_CON5 126    /* STRADR*/
  297.  
  298.  
  299. /* value references for global special names (To facilitate change to ival */
  300. #define ABVAL _ab.nvalue.ival
  301. #define DAVAL _da.nvalue.ival
  302. #define ERVAL _er.nvalue.ival
  303. #define HRVAL _hr.nvalue.ival
  304. #define MNVAL _mn.nvalue.ival
  305. #define SCVAL _sc.nvalue.ival
  306. #define STVAL _st.nvalue.ival
  307. #define TKVAL _tk.nvalue.ival
  308. #define Z0VAL _z0.nvalue.ival
  309.  
  310.  
  311. /*include files*/
  312. /*these entries should be last!!*/
  313.  
  314. #include <stdio.h>        /*standard io*/
  315. #include "struct.h"        /*structure definitions*/
  316. #include "extern.h"        /*global variables*/
  317. #include "mac.h"        /*macro definitions*/
  318. /*#include <signal.h>
  319. */
  320.  
  321.  
  322.