Annotation of 43BSD/contrib/B/src/bint/b2nod.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.