|
|
1.1 ! root 1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ ! 2: ! 3: /* ! 4: $Header: b2nod.h,v 1.4 85/08/22 16:42:43 timo Exp $ ! 5: */ ! 6: ! 7: /* Units */ ! 8: ! 9: typedef intlet typenode; ! 10: ! 11: #define _Nodetype(len) ((len) & 0377) ! 12: #define _Nbranches(len) ((len) >> 8) ! 13: #define Nodetype(v) _Nodetype((v)->len) ! 14: #define Nbranches(v) _Nbranches((v)->len) ! 15: #define Branch(v, n) ((Ats(v)+(n))) ! 16: ! 17: #define Unit(n) (n>=HOW_TO && n<=REFINEMENT) ! 18: #define Command(n) (n>=SUITE && n<=EXTENDED_COMMAND) ! 19: #define Expression(n) ((n>=TAG && n<=TAB_DIS)||(n>=TAGformal && n<=TAGzerprd)) ! 20: #define Comparison(n) (n>=LESS_THAN && n<=UNEQUAL) ! 21: ! 22: #define HOW_TO 0 ! 23: #define YIELD 1 ! 24: #define TEST 2 ! 25: #define REFINEMENT 3 ! 26: ! 27: /* Commands */ ! 28: ! 29: #define SUITE 4 ! 30: #define PUT 5 ! 31: #define INSERT 6 ! 32: #define REMOVE 7 ! 33: #define CHOOSE 8 ! 34: #define DRAW 9 ! 35: #define SET_RANDOM 10 ! 36: #define DELETE 11 ! 37: #define CHECK 12 ! 38: #define SHARE 13 ! 39: ! 40: #define WRITE 14 ! 41: #define READ 15 ! 42: #define READ_RAW 16 ! 43: ! 44: #define IF 17 ! 45: #define WHILE 18 ! 46: #define FOR 19 ! 47: ! 48: #define SELECT 20 ! 49: #define TEST_SUITE 21 ! 50: #define ELSE 22 ! 51: ! 52: #define QUIT 23 ! 53: #define RETURN 24 ! 54: #define REPORT 25 ! 55: #define SUCCEED 26 ! 56: #define FAIL 27 ! 57: ! 58: #define USER_COMMAND 28 ! 59: #define EXTENDED_COMMAND 29 ! 60: ! 61: /* Expressions, targets, tests */ ! 62: ! 63: #define TAG 30 ! 64: #define COMPOUND 31 ! 65: ! 66: /* Expressions, targets */ ! 67: ! 68: #define COLLATERAL 32 ! 69: #define SELECTION 33 ! 70: #define BEHEAD 34 ! 71: #define CURTAIL 35 ! 72: ! 73: /* Expressions, tests */ ! 74: ! 75: #define UNPARSED 36 ! 76: ! 77: /* Expressions */ ! 78: ! 79: #define MONF 37 ! 80: #define DYAF 38 ! 81: #define NUMBER 39 ! 82: #define TEXT_DIS 40 ! 83: #define TEXT_LIT 41 ! 84: #define TEXT_CONV 42 ! 85: #define ELT_DIS 43 ! 86: #define LIST_DIS 44 ! 87: #define RANGE_DIS 45 ! 88: #define TAB_DIS 46 ! 89: ! 90: /* Tests */ ! 91: ! 92: #define AND 47 ! 93: #define OR 48 ! 94: #define NOT 49 ! 95: #define SOME_IN 50 ! 96: #define EACH_IN 51 ! 97: #define NO_IN 52 ! 98: #define SOME_PARSING 53 ! 99: #define EACH_PARSING 54 ! 100: #define NO_PARSING 55 ! 101: #define MONPRD 56 ! 102: #define DYAPRD 57 ! 103: #define LESS_THAN 58 ! 104: #define AT_MOST 59 ! 105: #define GREATER_THAN 60 ! 106: #define AT_LEAST 61 ! 107: #define EQUAL 62 ! 108: #define UNEQUAL 63 ! 109: #define Nonode 64 ! 110: ! 111: #define TAGformal 65 ! 112: #define TAGlocal 66 ! 113: #define TAGglobal 67 ! 114: #define TAGmystery 68 ! 115: #define TAGrefinement 69 ! 116: #define TAGzerfun 70 ! 117: #define TAGzerprd 71 ! 118: ! 119: #define ACTUAL 72 ! 120: #define FORMAL 73 ! 121: ! 122: value node1(); ! 123: value node2(); ! 124: value node3(); ! 125: value node4(); ! 126: value node5(); ! 127: value node6(); ! 128: value node8(); ! 129: value node9(); ! 130: typenode nodetype(); ! 131: /* Procedure display(); */ ! 132: /* Procedure fix_nodes(); */ ! 133: ! 134: #define First_fieldnr 0 ! 135: ! 136: #define UNIT_NAME First_fieldnr ! 137: #define HOW_FORMALS First_fieldnr + 1 /* HOW'TO */ ! 138: #define HOW_COMMENT First_fieldnr + 2 ! 139: #define HOW_SUITE First_fieldnr + 3 ! 140: #define HOW_REFINEMENT First_fieldnr + 4 ! 141: #define HOW_R_NAMES First_fieldnr + 5 ! 142: #define HOW_NLOCALS First_fieldnr + 6 ! 143: #define FPR_ADICITY First_fieldnr + 1 /* YIELD, TEST */ ! 144: #define FPR_FORMALS First_fieldnr + 2 ! 145: #define FPR_COMMENT First_fieldnr + 3 ! 146: #define FPR_SUITE First_fieldnr + 4 ! 147: #define FPR_REFINEMENT First_fieldnr + 5 ! 148: #define FPR_R_NAMES First_fieldnr + 6 ! 149: #define FPR_NLOCALS First_fieldnr + 7 ! 150: ! 151: #define FML_KEYW First_fieldnr /* FORMALS HOW'TO */ ! 152: #define FML_TAG First_fieldnr + 1 ! 153: #define FML_NEXT First_fieldnr + 2 ! 154: ! 155: #define SUI_LINO First_fieldnr /* SUITE */ ! 156: #define SUI_CMD First_fieldnr + 1 ! 157: #define SUI_COMMENT First_fieldnr + 2 ! 158: #define SUI_NEXT First_fieldnr + 3 ! 159: #define REF_NAME First_fieldnr /* REFINEMENT */ ! 160: #define REF_COMMENT First_fieldnr + 1 ! 161: #define REF_SUITE First_fieldnr + 2 ! 162: #define REF_NEXT First_fieldnr + 3 ! 163: #define REF_START First_fieldnr + 4 ! 164: ! 165: #define PUT_EXPR First_fieldnr /* PUT */ ! 166: #define PUT_TARGET First_fieldnr + 1 ! 167: #define INS_EXPR First_fieldnr /* INSERT */ ! 168: #define INS_TARGET First_fieldnr + 1 ! 169: #define RMV_EXPR First_fieldnr /* REMOVE */ ! 170: #define RMV_TARGET First_fieldnr + 1 ! 171: #define CHS_TARGET First_fieldnr /* CHOOSE */ ! 172: #define CHS_EXPR First_fieldnr + 1 ! 173: #define DRW_TARGET First_fieldnr /* DRAW */ ! 174: #define SET_EXPR First_fieldnr /* SET'RANDOM */ ! 175: #define DEL_TARGET First_fieldnr /* DELETE */ ! 176: #define CHK_TEST First_fieldnr /* CHECK */ ! 177: #define SHR_TARGET First_fieldnr /* SHARE */ ! 178: ! 179: #define WRT_L_LINES First_fieldnr /* WRITE */ ! 180: #define WRT_EXPR First_fieldnr + 1 ! 181: #define WRT_R_LINES First_fieldnr + 2 ! 182: #define RD_TARGET First_fieldnr /* READ */ ! 183: #define RD_EXPR First_fieldnr + 1 ! 184: #define RDW_TARGET First_fieldnr /* READ'RAW */ ! 185: ! 186: #define IF_TEST First_fieldnr /* IF */ ! 187: #define IF_COMMENT First_fieldnr + 1 ! 188: #define IF_SUITE First_fieldnr + 2 ! 189: #define WHL_TEST First_fieldnr /* WHILE */ ! 190: #define WHL_COMMENT First_fieldnr + 1 ! 191: #define WHL_SUITE First_fieldnr + 2 ! 192: #define FOR_TARGET First_fieldnr /* FOR */ ! 193: #define FOR_EXPR First_fieldnr + 1 ! 194: #define FOR_COMMENT First_fieldnr + 2 ! 195: #define FOR_SUITE First_fieldnr + 3 ! 196: ! 197: #define SLT_COMMENT First_fieldnr /* SELECT */ ! 198: #define SLT_TSUITE First_fieldnr + 1 ! 199: #define TSUI_LINO First_fieldnr /* TEST SUITE */ ! 200: #define TSUI_TEST First_fieldnr + 1 ! 201: #define TSUI_COMMENT First_fieldnr + 2 ! 202: #define TSUI_SUITE First_fieldnr + 3 ! 203: #define TSUI_NEXT First_fieldnr + 4 ! 204: #define ELSE_LINO First_fieldnr /* ELSE */ ! 205: #define ELSE_COMMENT First_fieldnr + 1 ! 206: #define ELSE_SUITE First_fieldnr + 2 ! 207: ! 208: #define RTN_EXPR First_fieldnr /* RETURN */ ! 209: #define RPT_TEST First_fieldnr /* REPORT */ ! 210: ! 211: #define UCMD_NAME First_fieldnr /* USER COMMAND */ ! 212: #define UCMD_ACTUALS First_fieldnr + 1 ! 213: #define UCMD_DEF First_fieldnr + 2 ! 214: #define ACT_KEYW First_fieldnr /* ACTUALS USER COMMAND */ ! 215: #define ACT_EXPR First_fieldnr + 1 ! 216: #define ACT_NEXT First_fieldnr + 2 ! 217: #define ACT_START First_fieldnr + 3 ! 218: ! 219: #define ECMD_NAME First_fieldnr /* EXTENDED COMMAND */ ! 220: #define ECMD_ACTUALS First_fieldnr + 1 ! 221: ! 222: #define COMP_FIELD First_fieldnr /* COMPOUND */ ! 223: #define COLL_SEQ First_fieldnr /* COLLATERAL */ ! 224: #define MON_NAME First_fieldnr /* MONADIC FUNCTION */ ! 225: #define MON_RIGHT First_fieldnr + 1 ! 226: #define MON_FCT First_fieldnr + 2 ! 227: #define DYA_NAME First_fieldnr + 1 /* DYADIC FUNCTION */ ! 228: #define DYA_LEFT First_fieldnr ! 229: #define DYA_RIGHT First_fieldnr + 2 ! 230: #define DYA_FCT First_fieldnr + 3 ! 231: #define TAG_NAME First_fieldnr /* TAG */ ! 232: #define TAG_ID First_fieldnr + 1 ! 233: #define NUM_VALUE First_fieldnr /* NUMBER */ ! 234: #define NUM_TEXT First_fieldnr + 1 ! 235: #define XDIS_QUOTE First_fieldnr /* TEXT DIS */ ! 236: #define XDIS_NEXT First_fieldnr + 1 ! 237: #define XLIT_TEXT First_fieldnr /* TEXT LIT */ ! 238: #define XLIT_NEXT First_fieldnr + 1 ! 239: #define XCON_EXPR First_fieldnr /* TEXT CONV */ ! 240: #define XCON_NEXT First_fieldnr + 1 ! 241: #define LDIS_SEQ First_fieldnr /* LIST DIS */ ! 242: #define RDIS_LWB First_fieldnr /* RANGE DIS */ ! 243: #define RDIS_UPB First_fieldnr + 1 ! 244: #define TDIS_SEQ First_fieldnr /* TAB_DIS */ ! 245: #define SEL_TABLE First_fieldnr /* SELECTION */ ! 246: #define SEL_KEY First_fieldnr + 1 ! 247: #define TRIM_LEFT First_fieldnr /* BEHEAD, CURTAIL */ ! 248: #define TRIM_RIGHT First_fieldnr + 1 ! 249: #define UNP_SEQ First_fieldnr /* UNPARSED */ ! 250: #define UNP_TEXT First_fieldnr + 1 ! 251: ! 252: #define AND_LEFT First_fieldnr /* AND */ ! 253: #define AND_RIGHT First_fieldnr + 1 ! 254: #define OR_LEFT First_fieldnr /* OR */ ! 255: #define OR_RIGHT First_fieldnr + 1 ! 256: #define NOT_RIGHT First_fieldnr /* NOT */ ! 257: #define QUA_TARGET First_fieldnr /* QUANTIFICATION */ ! 258: #define QUA_EXPR First_fieldnr + 1 ! 259: #define QUA_TEST First_fieldnr + 2 ! 260: #define REL_LEFT First_fieldnr /* ORDER TEST */ ! 261: #define REL_RIGHT First_fieldnr + 1
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.