# SymTab + Errors (`symtab.txt` 2365 lines, `errors.txt` 1421 lines) ## SymTab (`SYMTAB.DEF` + disasm; no `.MOD` decompiled yet) ```modula2 Symbol = RECORD name: ARRAY [0..7] OF CHAR; word: CARDINAL END; T1 = POINTER TO R1; R1 = RECORD link0:T1; link1:POINTER TO ARRAY [0..128] OF CHAR; link2:T1; word3:BITSET; word4:CARDINAL END; ``` | old | proposed | |---|---| | global3 | `modCount` | | global4/5 | `symFile/strPoolPtr` | | global6[0..99] | `moduleTab` (`Find/EnterModule proc9/10`) | | global7/8 | `scopeStack/rollbackStack[0..16]` | | global9 | `curScope` (`{w0,link1}`) | | global15/16/17 | `symTop/scopeTop/strTop` | | proc8 | `Assert` | | proc9/10 | `FindModule/EnterModule` | | proc11/12 | `LookupChain/MatchSym` | | proc14/13 | `AllocSym/EnterChained` | | proc17/21/22/18/20/19 | `NewString/GetName/GetAttr/PutAttr/EnterIdent/Unlink` | | proc23 | `InitHeaps` (slices `CODEGEN` memory) | | proc25/24 | `InsertBuiltin/EnterStandards` (14 builtins) | | proc27/26 | `LibRead/LoadSymFile` | | proc29/30/31/28 | `FindExport/ListExports/ImportOne/ImportAll` | | proc32/2/3/4 | `SkipQualident/DoDefinition/DoProgram/InitCompile` | | proc34/33/35/36 | `NoteImported/DoImportList/CompileBody/CheckForwards` | | proc1 | `Compile` dispatch; proc6/38/7 `SaveSym/Checksum/Unlock` | ## Errors | old | proposed | |---|---| | global2 | `savedEditPos` | | global3 | `opCharTab` (2-char tokens) | | global4 | `doSymtabRollback` | | global5/6/7 | `errNo/curDrive/firstInit` | | proc1/2 | `Error(n)/ErrorMsg(n,msg)` | | proc4/12 | `WriteString/Fatal(HALT+Delete output)` | | proc5 | `FindFile(ext)` (drive cycle, `ERRMSGS.OVR` special case) | | DoError | `EditQuit('E'/'Q')` (`CBACKUP.$$$`, `Editor.Edit`, `usererror`/`DISK FULL`) | | proc11/19 | `RollbackScope/TruncScope` (`global8[0..16]`) | | proc6/27/28/26 | `KindName/TypeName/WriteType/NthSlash` | | proc24/25 | `NextBit/DerefAlias` | | proc29/7/8 | `WriteToken/WriteFound/WritePos` | | proc9/3/10 | `AskEditQuit/OvrError/PrintOvr` | | proc16/30 | `Expected(set)/Required` | | proc14/15/13 | `TypeMismatch/IncompatTypes/AssignMismatch` |