// BCPLX - Declarations for the BCPL Compiler, used throughout the Compiler. // Copyright Xerox Corporation 1980 // Swinehart, 5-9-77 -- /S switch // parameterize FileLength, etc. via statics -- Swinehart, 6 May 77 // increase FileNameLength to 40 - Edit by Boggs 2 Apr 77 // pull SWAltoc..ime BCPLX.;2 28-MAR-75 13:15:34 EDIT BY SWINEHART // last modified by Butterfield, January 8, 1980 11:12 AM // - add CounterJunta external - 1/8/80 // - SWUnsignedCompares, if true, enable uls, ule, uge, and ugt - 5/8 // - SWStackStrings, if true, put strings and tables on stack - 5/5 // - add Usc, MyFrame, GotoLabel, CloseCOMCM, RestartBCPL, // and CallSubsys externals - 5/5 // - SWNoExtExts, -E global switch, allow EXTERNAL & EXTERNAL - 2/12 // - SWGetLINEs, -G global switch, don'T "LINE" get files - 2/2/79 manifest [ H1=0; H2=1; H3=2; H4=3; H5=4; H6=5; H7=6 // Selectors for tree nodes. NAMELENGTH = 24 ///*DCS* remove FileNameLength, etc. -- See Externals, below GetnameN = 2 // Size of a GetnameV entry GetlineN = 3 // Size of a GetlineV entry MaxErrors = 64 ] external [ // MAIN1 Main; Overlay; BCPLreport; WriteLine; WriteLines; Help Abort Version SourceName; BinName; OutputName; Device; SourceDevice ///*DCS* Compiled Declarations DICTName ///* Name of File containing compiled dictionary DECLName ///* Name of file containing compiled decl. lexemes // switches in MAIN1 SWHelp; SWDebug; SWList; SWLexTrace; SWCaeTrace; SWSaeTrace; SWOcode; SWCode SWLexList; SWCaeList; SWSaeList; SWTrnList; SWPassOneList; SWPassTwoList SWListCode; SWPassOneCode; SWPassTwoCode; SWFastFrame SWTTOfile; SWTTOtype; SWOutput; SWWait; SWUpperCase; SWLowerCase; SWOneCase ///*DCS* File Name, # Get File parameters FileNameLength; GetFileMax; GetnameT; GetlineT; Dvec SWGetLINEs // "LINE" get files - Global /-G Switch sets this false SWNoExtExts // no EXTERNAL & EXTERNAL - Global /-E Switch sets this false SWStackStrings // if true, put strings and tables on stack SWUnsignedCompares // if true, enable ult, ule, uge, and ugt ///*DCS* Compiled Declarations SWPrepare ///* Global /G Switch -- compile Declarations this run SWUseDecl ///* Local/G -- these files contain compiled decls. SWAlto SWNoxios ///*DCS* Command line manifests SWParamset ///*DCS* Symbol Table Compaction NCG Pass RealSymCount; RealSymSize // functions and routines in MAIN2 Nextparam; Nextstatic; Nextentry Newvec; Zerovec; InitFree List1; List2; List3; List4; List5; List6; List7 IsFile OpenInput; OpenTemp; OpenOutput ResetStream; RenameTemp CloseInput; CloseTemp; CloseOutput Readword; Readaddr; Writeword; Writeaddr WW; Wait; WriteS; WriteO; WriteN InitBCPL;closechannel;syscallerror ///*DCS* precompiled declarations stuff ReadSequential; WriteSequential; ReadWord; WriteWord; Length; Char Position; Reposition Readch; Writech Packstring; Unpackstring; Movestring InitCOMCM; ReadCOMCM; BadSwitch; Error; FixFileName; filename; sw Usc; MyFrame; GotoLabel; CloseCOMCM; RestartBCPL; CallSubsys; CounterJunta DecValue; OctValue FreeMax; DictFreeMax; TreeFreeMax; CodeFreeMax; FreelistP Reportcount Istream; Ostream TTIstream; TTOstream; OutputStream; ErrorStream SourceStream; SourceLength LexStream Dictionary; DictStream; DictLength Tree; TreeOffset OcodeStream CodeStream Code; PC GetnameV; GetnameP GetlineV; GetlineP Curfile; Curline // Overlay limit values Freemax; DictFreeLimit; TreeFreeLimit; CodeFreeLimit // the routines that do the work ReadSource // in LEX ConstructTree // in CAE DeclareNames // in SAE TranslateTree // in TRN GenerateCode // in CG ] manifest // Specification of TX-2 -- machine on which the compiler runs. [ Bitsperbyte = 8 Bytesperword = 2 Bytesperaddr = 2 Bitsperaddr = 16 Bitsperword = 16 Bytemask = #377 StringLength = 250 StringMaxOb = 250 WordSizeOb = 16 ByteSizeOb = 8 Savespacesize = 4 ]