// BCAEX - Declarations for the BCPL Compiler -- CAE.
// Copyright Xerox Corporation 1980
//  Swinehart, 5-10-77: docase exp
//  Paxton, 9-14-78: unsigned compares

manifest   //  Declarations for Canonic Symbols and AE-Tree Nodes.
 [  //  Fri 07 Apr 72 0301.45 for tx2
    GET = 1
   NAMEBRA = 5
    NAMEKET = 6
    NUMBER = 8
    NAME = 9
    STRINGCONST = 10
    CHARCONST = 11
    TRUE = 12
    FALSE = 13
    NIL = 14
    LV = 15
    RV = 16
    NEG = 17
    NOT = 18
    HEFALUMP = 19
    ULS = 20
    ULE = 21
    UGE = 22
    UGR = 23
    SIZE = 25
    OFFSET = 26
    PLUS = 35
    MINUS = 36
    MULT = 37
    DIV = 38
    REM = 39
    LOGAND = 40
    LOGOR = 41
    EQ = 42
    NE = 43
    LS = 44
    LE = 45
    GE = 46
    GR = 47
    EQV = 48
    NEQV = 49
    LSHIFT = 52
    RSHIFT = 53
    VECAP = 54
    RIGHTLUMP = 55
    LEFTLUMP = 56
    COMMA = 58
    COND = 59
    ASS = 60
    NUMARGS = 61
    DOT = 62
    RBRA = 63
    RKET = 64
    TABLE = 65
    VALOF = 67
    RESULTIS = 68
    SELECTON = 71
    STATIC = 72
    EXT = 73
    MANIFEST = 74
    ENDSTATIC = 75
    STRUCTURE = 77
    LET = 78
    AND = 79
    VALDEF = 80
    CONSTDEF = 81
    FNDEF = 82
    RTDEF = 83
    BE = 84
    VEC = 85
    FNAP = 86
    RTAP = 87
    SEMICOLON = 88
    END = 89
    SEQ = 90
    GOTO = 91
    COLON = 92
    TEST = 93
    IFSO = 94
    IFNOT = 95
    DO = 96
    OR = 97
    IF = 98
    UNLESS = 99
    UNTIL = 100
    WHILE = 101
    REPEAT = 102
    REPEATUNTIL = 103
    REPEATWHILE = 104
    FOR = 105
    TO = 106
    BY = 107
    SWITCHON = 108
    INTO = 110
    CASE = 111
    CASETO = 112
    DEFAULT = 113
    ENDCASE = 114
    LINE = 115
    BREAK = 116
    LOOP = 117
    RETURN = 118
    FINISH = 119
    ABORT = 120
    SECTBRA = 121
    SECTKET = 122
    BLANK = 123
    FIELDLIST = 124
    OVERLAYLIST = 125
    UPLUMP = 126
    BIT = 127
    BYTE = 128
    WORD = 129

///*DCS* Conditional Compilation
    COMPILEIF = 130
    COMPILETEST = 131
    DOCASE = 132

    ZEXT = 143
    ZINT = 144
    LENTRY = 165
    ZLOC = 171
    LOC = 185
    INT = 187
    ENTRY = 188
  ]

manifest   [ Vmax = 256]	//  Size of the output vector for Nextsymb--also defined in LEX

manifest
 [  NameBit = #100000
    NameMask = #7777
    TypeMask = #170000
    PtrMask = #77777
    LOCAL = #010000
    CONSTANT = #020000
    LABEL = #030000
    ZLABEL = #040000
    EXTLABEL = #050000
    ZEXTLABEL = #060000
    INTLABEL = #070000
    ZINTLABEL = #100000
  ]

manifest [
	   FieldMax = 64
	   QualMax = 8
	   ]
manifest [ 
	   TableMax = 512

	   TempN = 2
	   TempMax = 250
	   TempT = TempMax * TempN
	  ]

external
 [
//  scalars 
    ERRORNAME; ERRORNODE
    TRUENODE; FALSENODE; NILNODE; ZERONODE
    NULLQUALNODE
    V; Symb   //  Output of Nextsymb--also used in LEX
    TempV
//  functions
    Nextsymb; CAEskip;  LinePtr; CAEreport
    Readblockbody; Rblock; Rnamelist; EqVec	
    Rtable
    Rexp
    Rdef; Rcom; Rselect					
    Rstruct; Rqualname					
///*DCS* conditional compilation
    Rcompileif					
  ]

get "bcplx"