// BLEXX - BCPL Compiler -- Declarations for the Lexical Analyzer.// Copyright Xerox Corporation 1980//  Paxton, 9-14-78: unsigned compares//  Swinehart, 5-10-77: docase exp// last modified by Butterfield, May 8, 1979  7:13 PM// - incorporate Paxton's unsigned compares  5/8// - GetP no longer needed as external  1/24// - add from for use in get a, b, ... from "file"  1/23/79get "bcplx"external	//stuff exp throughout LEX [	OpenSource	//  open a new source file	CloseSource	//  close a source file	Readsymb	//  the routine that does the work	Symb		//  Readsymb leaves the last lexeme here	V		//    and any extra information here	Rch		//  read the next source char	Ch		//      into here	Chline		//  	and put its line pointer here	LEXreport	//  report errors detected in LEX	ReservedWord	//  look up a reserved word	DictionaryEntry	//  look up an identifier	LexOut; LexWrite	DoString; DoNumber; Kind	ReadAhead; ExtraItem; LastItem; NLPending; NewLineptr; Chkind///*DCS* Precompiled Declarations Functions  ReadDecl  ReadLex  WriteDecl  LexLength ///* # bytes in Lex File///*DCS* manifests in command lineFirstNameUpperCase // need to be cleared by enterparams in lex0 ]manifest [ BRACKETLENGTH = 24 ]manifest [	Vmax = 256	//length of the V vector ]manifest [ Empty=0; Simple=1; Ignorable=2; BravoTail=3; Digit=4; Capital=5; Small=6; ]manifest   //  Declarations for lexemes. [ b1 = #000400		//field values for th lexemes   b2 = #001000   e1 = #002000   e2 = #004000    GET          = 1		//    1   get    FROM         = 2		//    2   from    NAMEBRA	 = 5+b1		//    5    NAMEKET	 = 6   +e1	//    6    NUMBER       = 8+b1+e1   	//    8    NAME         = 9+b1+e1   	//    9    STRINGCONST  = 10+b1+e1   	//   10    CHARCONST    = 11+b1+e1   	//   11    TRUE         = 12   +e1   	//   12   true    FALSE        = 13   +e1   	//   13   false    NIL          = 14+b1+e1   	//   14   nil    LV           = 15         	//   15   lv    RV           = 16+b1      	//   16   rv    NEG          = 17         	//   17   neg    NOT          = 18+b1      	//   18   not    HEFALUMP     = 19+b1        //   19   hefalump    ULS          = 20		//   20   uls    ULE          = 21		//   21   ule    UGE          = 22		//   22   uge    UGR          = 23		//   23   ugr    SIZE         = 25+b1      	//   25   size    OFFSET       = 26+b1      	//   26   offset    PLUS         = 35+b1	//   35    MINUS        = 36+b1	//   36    MULT         = 37		//   37    DIV          = 38		//   38    REM          = 39		//   39   rem    LOGAND       = 40		//   40   logand    LOGOR        = 41		//   41   logor    EQ           = 42		//   42   eq    NE           = 43		//   43   ne    LS           = 44		//   44   ls    LE           = 45		//   45   le    GE           = 46		//   46   ge    GR           = 47		//   47   gr    EQV          = 48		//   48   eqv logeqv    NEQV         = 49		//   49   neqv xor logxor    LSHIFT       = 52		//   52   lshift    RSHIFT       = 53		//   53   rshift    VECAP        = 54		//   54    RIGHTLUMP    = 55		//   55    LEFTLUMP     = 56		//   56    COMMA        = 58		//   58    COND         = 59		//   59    ASS          = 60		//   60    NUMARGS	 = 61+b1	//   61   numargs    DOT          = 62		//   62    RBRA         = 63+b1      	//   63    RKET         = 64   +e1   	//   64    TABLE	 = 65		//   65   table    VALOF        = 67+b1      	//   67   valof    RESULTIS     = 68+b2      	//   68   resultis    SELECTON     = 71+b1      	//   71   selecton    STATIC       = 72+b1      	//   72   static    EXT          = 73+b1	//   73   external    MANIFEST     = 74+b1	//   74   manifest    STRUCTURE    = 77+b1	//   77   structure    LET          = 78+b1	//   78   let    AND          = 79		//   79   and    BE           = 84		//   84   be    VEC          = 85		//   85   vec    SEMICOLON    = 88		//   88    END          = 89		//   89    GOTO         = 91+b2	//   91   goto    COLON        = 92		//   92    TEST         = 93+b2	//   93   test    IFSO         = 94		//   94   ifso    IFNOT        = 95		//   95   ifnot    DO           = 96		//   96   do then    OR           = 97		//   97   or    IF           = 98+b2	//   98   if    UNLESS       = 99+b2	//   99   unless    UNTIL        = 100+b2	//  100   until    WHILE        = 101+b2	//  101   while    REPEAT       = 102   +e2    //  102   repeat    REPEATUNTIL  = 103		//  103   repeatuntil    REPEATWHILE  = 104		//  104   repeatwhile    FOR          = 105+b2	//  105   for    TO           = 106		//  106   to    BY           = 107		//  107   by step    SWITCHON     = 108+b2	//  108   switchon    INTO         = 110		//  110   into    CASE         = 111+b2	//  111   case    DEFAULT      = 113+b2	//  113   default    ENDCASE      = 114+b2+e2	//  114   endcase    LINE         = 115         //  115    BREAK        = 116+b2+e2	//  116   break    LOOP         = 117+b2+e2	//  117   loop    RETURN       = 118+b2+e2	//  118   return    FINISH       = 119+b2+e2	//  119   finish    ABORT        = 120+b2+e2	//  120   abort    SECTBRA      = 121+b1       //  121    SECTKET      = 122   +e1    //  122    BLANK        = 123+b1	//  123   blank    FIELDLIST    = 124    OVERLAYLIST  = 125    UPLUMP       = 126    BIT          = 127   +e1	//  127   bit    BYTE         = 128   +e1	//  128   byte    WORD         = 129   +e1	//  129   word///*DCS* Conditional Compilation    COMPILEIF    = 130   +b2	//  129   compileif    COMPILETEST  = 131   +b2	//  129   compiletest    DOCASE	    = 132   +b2  //   132  docase///*DCS* Conditional Compilation    NEWNAME       = 134      	//  129   newname  ]///*DCS* Symbol Table Compaction, NCG Phasestructure SYMPTR:   [   Virgin bit 1  // on if symbol has been entered, not referenced   link   bit 15 // next symbol same initial letter, sorted Alph.   ]