home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 6
/
FreshFish_September1994.bin
/
new
/
dev
/
obero
/
oberon-a
/
texts
/
symbolfileformat.txt
< prev
next >
Wrap
Text File
|
1994-07-17
|
2KB
|
70 lines
$RCSfile: SymbolFileFormat.txt $
Description: Symbol file format used by Oberon-A
Created by: fjc (Frank Copeland)
$Revision: 1.3 $
$Author: fjc $
$Date: 1994/06/14 00:51:35 $
Copyright © 1994, Frank Copeland.
This file is part of Oberon-A.
See Oberon-A.doc for conditions of use and distribution.
________________________________________________________________________
INTRODUCTION
This document describes the symbol file format used by Oberon-A.
SYMBOL FILE FORMAT
SymTag = 53594D08H; (* "SYM" + version # *)
(* structure forms *)
Undef * = 0H; Byte * = 1H; Bool * = 2H; Char * = 3H; SInt * = 4H;
Int * = 5H; LInt * = 6H; Real * = 7H; LReal * = 8H; BSet * = 9H;
WSet * = 0AH; Set * = 0BH; String * = 0CH; NilTyp * = 0DH;
NoTyp * = 0EH; PtrTyp * = 0FH; CPtrTyp * = 10H; BPtrTyp * = 11H;
Word * = 12H; Longword * = 13H; TypeTag * = 14H;
(* terminal symbols for symbol file elements *)
eUndef = 0H; eCon = 1H; eTypE = 2H; eTyp = 3H; eVar = 4H; eXProc = 5H;
eLibCall = 6H; ePointer = 7H; eProcTyp = 8H; eArray = 9H;
eDynArr = 0AH; eRecord = 0BH; eParList = 0CH; eValPar = 0DH;
eVarPar = 0EH; eValRegPar = 0FH; eVarRegPar = 10H; eFldList = 11H;
eFld = 12H; eHPtr = 13H; eHProc = 14H; eFixup = 15H; eMod = 16H;
eBPointer = 17H; eCPointer = 18H; eMod0 = 19H; eTProcE = 1AH;
eTProc = 1BH; eVarArg = 1CH; eFProc = 1DH;
SymbolFile = SymTag:4 modAnchor {element}.
modAnchor = (eMod | eMod0) key:4 name.
element = eCon constant
| (eTypE | eTyp) ref mno name
| (eVar | eFld) ref offset visible name
| (eValPar | eVarPar) ref offset name
| eParList {element}
( eXProc ref
| (eLibCall | eTProcE) ref ref offset
| eFProc ref name )
name
| (ePointer | eBPointer | eCPointer) ref mno
| eParList {element} ProcTyp ref mno
| eArray ref mno size bndadr nofel
| eDynArr ref mno size lenoff
| eFldList {element} (eRecord ref mno size dscadr
| eUnion mno size)
| eHPtr offset
| eTProc ref offset
| eFixup ref ref
| modAnchor.
constant = (Byte | Bool | Char | SInt | SSet) val name
| (Int | Set) val name
| (LInt | Real | LReal | LSet) val name
| String sadr len [char] name
| Nil name.
name = {char} 0X