home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 6 / FreshFish_September1994.bin / new / dev / obero / oberon-a / texts / symbolfileformat.txt < prev    next >
Text File  |  1994-07-17  |  2KB  |  70 lines

  1.      $RCSfile: SymbolFileFormat.txt $
  2.   Description: Symbol file format used by Oberon-A
  3.  
  4.    Created by: fjc (Frank Copeland)
  5.     $Revision: 1.3 $
  6.       $Author: fjc $
  7.         $Date: 1994/06/14 00:51:35 $
  8.  
  9.   Copyright © 1994, Frank Copeland.
  10.   This file is part of Oberon-A.
  11.   See Oberon-A.doc for conditions of use and distribution.
  12.   ________________________________________________________________________
  13.  
  14.  
  15.   INTRODUCTION
  16.  
  17.   This document describes the symbol file format used by Oberon-A.
  18.  
  19.   SYMBOL FILE FORMAT
  20.  
  21.   SymTag = 53594D08H; (* "SYM" + version # *)
  22.  
  23.   (* structure forms *)
  24.   Undef * = 0H; Byte * = 1H; Bool * = 2H; Char * = 3H; SInt * = 4H;
  25.   Int * = 5H; LInt * = 6H; Real * = 7H; LReal * = 8H; BSet * = 9H;
  26.   WSet * = 0AH; Set * = 0BH; String * = 0CH; NilTyp * = 0DH;
  27.   NoTyp * = 0EH; PtrTyp * = 0FH; CPtrTyp * = 10H; BPtrTyp * = 11H;
  28.   Word * = 12H; Longword * = 13H; TypeTag * = 14H;
  29.  
  30.   (* terminal symbols for symbol file elements *)
  31.   eUndef = 0H; eCon = 1H; eTypE = 2H; eTyp = 3H; eVar = 4H; eXProc = 5H;
  32.   eLibCall = 6H; ePointer = 7H; eProcTyp = 8H; eArray = 9H;
  33.   eDynArr = 0AH; eRecord = 0BH; eParList = 0CH; eValPar = 0DH;
  34.   eVarPar = 0EH; eValRegPar = 0FH; eVarRegPar = 10H; eFldList = 11H;
  35.   eFld = 12H; eHPtr = 13H; eHProc = 14H; eFixup = 15H; eMod = 16H;
  36.   eBPointer = 17H; eCPointer = 18H; eMod0 = 19H; eTProcE = 1AH;
  37.   eTProc = 1BH; eVarArg = 1CH; eFProc = 1DH;
  38.  
  39.   SymbolFile = SymTag:4 modAnchor {element}.
  40.   modAnchor = (eMod | eMod0) key:4 name.
  41.  
  42.   element = eCon constant
  43.             | (eTypE | eTyp) ref mno name
  44.             | (eVar | eFld) ref offset visible name
  45.             | (eValPar | eVarPar) ref offset name
  46.             | eParList {element}
  47.                 ( eXProc ref
  48.                 | (eLibCall | eTProcE) ref ref offset
  49.                 | eFProc ref name )
  50.                 name
  51.             | (ePointer | eBPointer | eCPointer) ref mno
  52.             | eParList {element} ProcTyp ref mno
  53.             | eArray ref mno size bndadr nofel
  54.             | eDynArr ref mno size lenoff
  55.             | eFldList {element} (eRecord ref mno size dscadr
  56.                 | eUnion mno size)
  57.             | eHPtr offset
  58.             | eTProc ref offset
  59.             | eFixup ref ref
  60.             | modAnchor.
  61.  
  62.   constant = (Byte | Bool | Char | SInt | SSet) val name
  63.              | (Int | Set) val name
  64.              | (LInt | Real | LReal | LSet) val name
  65.              | String sadr len [char] name
  66.              | Nil name.
  67.  
  68.   name = {char} 0X
  69.  
  70.