home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / sp_sheet / viscalc / sc.h < prev    next >
C/C++ Source or Header  |  1985-11-19  |  2KB  |  85 lines

  1. /*    VC    A Table Calculator
  2.  *        Common definitions
  3.  *
  4.  *        original by James Gosling, September 1982
  5.  *        modified by Mark Weiser and Bruce Israel,
  6.  *            University of Maryland
  7.  *
  8.  */
  9.  
  10. #include<stdio.h>
  11.  
  12. #ifdef MCH_AMIGA
  13. #define ROWS    23
  14. #define COLS    79
  15. #else
  16. #define ROWS    24
  17. #define COLS    80
  18. #endif
  19.  
  20. #ifdef DECLARE
  21. #define dec
  22. #else
  23. #define dec extern
  24. #endif
  25.  
  26. #define MAXROWS 200
  27. #define MAXCOLS 40
  28.  
  29. struct ent {
  30.     double v;
  31.     char *label;
  32.     struct enode *expr;
  33.     short flags;
  34.     short row, col;
  35.     struct ent *next;
  36. };
  37.  
  38.  
  39. struct enode {
  40.     int op;
  41.     union {
  42.     double k;
  43.     struct ent *v;
  44.     struct {
  45.         struct enode *left, *right;
  46.     } o;
  47.     } e;
  48. };
  49.  
  50. /* op values */
  51. #define O_VAR 'v'
  52. #define O_CONST 'k'
  53. #define O_REDUCE(c) (c+0200)
  54.  
  55. /* flag values */
  56. #define is_valid     0001
  57. #define is_changed   0002
  58. #define is_lchanged  0004
  59. #define is_leftflush 0010
  60. #define is_deleted   0020
  61.  
  62. #define ctl(c) ('c'&037)
  63.  
  64. dec struct ent *tbl[MAXROWS][MAXCOLS];
  65.  
  66. dec int strow, stcol;
  67. dec int currow, curcol;
  68. dec int savedrow, savedcol;
  69. dec int FullUpdate;
  70. dec int maxrow, maxcol;
  71. dec int fwidth[MAXCOLS];
  72. dec int precision[MAXCOLS];
  73. dec char hidden_col[MAXCOLS];
  74. dec char hidden_row[MAXROWS];
  75. dec char line[1000];
  76. dec int linelim;
  77. dec int changed;
  78. dec struct ent *to_fix;
  79. dec struct enode *new();
  80. dec struct ent *lookat();
  81. dec struct enode *copye();
  82. dec char *coltoa();
  83.  
  84. dec int modflg;
  85.