// BSAEX - Declarations for the BCPL Compiler -- SAE.
// Copyright Xerox Corporation 1980
//  Last modified on Sun 29 Oct 72 0251.27 by  jec.
//  Swinehart, 5-10-77: docase exp
//  Paxton, 9-14-78: unsigned compares

// last modified by Butterfield, May 9, 1979  12:25 PM
// - DvecMax, discovered that it was increased to 1024 - 5/9/79

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
    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
 [  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 [ DvecN = 2
	   DvecMax = 1024
	   DvecT = DvecMax * DvecN

	   UvecN = 2
	   UvecMax = 50
	   UvecT = UvecMax * UvecN
	  ]

manifest [	FieldMax = 64
		QualMax = 8
	    ]

external
 [
//  scalars 
    ERRORNAME; ERRORNODE
    TRUENODE; FALSENODE; NILNODE; ZERONODE
    NULLQUALNODE
    DVec; DvecS; DvecE; DvecP; DvecLoc
    Uvec; UvecP
    TempV
    Curname
//  functions
    SAEreport
    Declvars; Decllabels
    DeclareLet; DeclLocal; DeclStatic; DeclExt; DeclStruct
    OutputStatic
    NewName; CellWithName; NewStructName; StructWithName; CheckDistinct
    Lookat; EvalConst
    LookatQual; TraceStructName; StructSize; CheckStruct
  ]

get "bcplx"