RTSymbolDefs.mesa
Copyright © 1985 by Xerox Corporation. All rights reserved.
Rovner On January 4, 1983 1:11 pm
Russ Atkinson (RRA) February 1, 1985 12:35:59 pm PST
Beach, February 22, 1985 2:56:09 pm PST
Doug Wyatt, February 24, 1985 8:45:38 pm PST
concrete variant TYPE definitions for symbol tables and related elements.
DIRECTORY
BrandXSymbolDefs USING [SymbolTableHandle, SymbolTableBase, SymbolIndex, SymbolIdIndex, SymbolConstructorIndex, SymbolRecordIndex, SymbolContextIndex, StandardSymbolContextIndex, SymbolNameIndex, SymbolModuleIndex, BodyIndex, CallableBodyIndex, InnerCallableBodyIndex, BodyTableEntry, FineGrainTableEntry, FineGrainTableHeader, ExtensionClass, TreeIndex, TreeLink, BlockContextLevel, nullHandle, nullSymbolIndex, nullSymbolContextIndex, nullSymbolNameIndex, nullModuleIndex, nullBodyIndex, rootBodyIndex, symbolIndexForTYPE, symbolIndexForANY, thisModuleIndex, contextLevelZero, outerContextLevel, typeCodeForINT, typeCodeForCHAR],
BrandYSymbolDefs USING [SymbolTableHandle, SymbolTableBase, SymbolIndex, SymbolIdIndex, SymbolConstructorIndex, SymbolRecordIndex, SymbolContextIndex, StandardSymbolContextIndex, SymbolNameIndex, SymbolModuleIndex, BodyIndex, CallableBodyIndex, InnerCallableBodyIndex, BodyTableEntry, FineGrainTableEntry, FineGrainTableHeader, ExtensionClass, TreeIndex, TreeLink, BlockContextLevel, nullHandle, nullSymbolIndex, nullSymbolContextIndex, nullSymbolNameIndex, nullModuleIndex, nullBodyIndex, rootBodyIndex, symbolIndexForTYPE, symbolIndexForANY, thisModuleIndex, contextLevelZero, outerContextLevel];
RTSymbolDefs: DEFINITIONS
= BEGIN OPEN bx: BrandXSymbolDefs, by: BrandYSymbolDefs;
Types
Brand: TYPE = {x, y};
SymbolTableHandle: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolTableHandle],
y => [e: by.SymbolTableHandle]
ENDCASE];
SymbolTableBase: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolTableBase],
y => [e: by.SymbolTableBase]
ENDCASE];
SymbolIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolIndex],
y => [e: by.SymbolIndex]
ENDCASE];
SymbolIdIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolIdIndex],
y => [e: by.SymbolIdIndex]
ENDCASE];
SymbolConstructorIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolConstructorIndex],
y => [e: by.SymbolConstructorIndex]
ENDCASE];
SymbolRecordIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolRecordIndex],
y => [e: by.SymbolRecordIndex]
ENDCASE];
SymbolContextIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolContextIndex],
y => [e: by.SymbolContextIndex]
ENDCASE];
StandardSymbolContextIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.StandardSymbolContextIndex],
y => [e: by.StandardSymbolContextIndex]
ENDCASE];
SymbolNameIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolNameIndex],
y => [e: by.SymbolNameIndex]
ENDCASE];
SymbolModuleIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.SymbolModuleIndex],
y => [e: by.SymbolModuleIndex]
ENDCASE];
BodyIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.BodyIndex],
y => [e: by.BodyIndex]
ENDCASE];
CallableBodyIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.CallableBodyIndex],
y => [e: by.CallableBodyIndex]
ENDCASE];
InnerCallableBodyIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.InnerCallableBodyIndex],
y => [e: by.InnerCallableBodyIndex]
ENDCASE];
BodyTableEntry: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.BodyTableEntry],
y => [e: by.BodyTableEntry]
ENDCASE];
FineGrainTableEntry: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.FineGrainTableEntry],
y => [e: by.FineGrainTableEntry]
ENDCASE];
FineGrainTableHeader: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.FineGrainTableHeader],
y => [e: by.FineGrainTableHeader]
ENDCASE];
ExtensionClass: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.ExtensionClass],
y => [e: by.ExtensionClass]
ENDCASE];
TreeIndex: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.TreeIndex],
y => [e: by.TreeIndex]
ENDCASE];
TreeLink: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.TreeLink],
y => [e: by.TreeLink]
ENDCASE];
BlockContextLevel: TYPE = RECORD[
SELECT brand: Brand FROM
x => [e: bx.BlockContextLevel],
y => [e: by.BlockContextLevel]
ENDCASE];
Constants
nullBase: SymbolTableBase = [x[e: NIL]];
nullHandle: SymbolTableHandle = [x[e: nullXHandle]];
nullXHandle: bx.SymbolTableHandle = bx.nullHandle;
nullYHandle: by.SymbolTableHandle = by.nullHandle;
nullSymbolIndex: SymbolIndex = [x[e: nullXSymbolIndex]];
nullXSymbolIndex: bx.SymbolIndex = bx.nullSymbolIndex;
nullYSymbolIndex: by.SymbolIndex = by.nullSymbolIndex;
nullSymbolContextIndex: SymbolContextIndex = [x[e: nullXSymbolContextIndex]];
nullXSymbolContextIndex: bx.SymbolContextIndex = bx.nullSymbolContextIndex;
nullYSymbolContextIndex: by.SymbolContextIndex = by.nullSymbolContextIndex;
nullSymbolNameIndex: SymbolNameIndex = [x[e: nullXSymbolNameIndex]];
nullXSymbolNameIndex: bx.SymbolNameIndex = bx.nullSymbolNameIndex;
nullYSymbolNameIndex: by.SymbolNameIndex = by.nullSymbolNameIndex;
nullModuleIndex: SymbolModuleIndex = [x[e: nullXModuleIndex]];
nullXModuleIndex: bx.SymbolModuleIndex = bx.nullModuleIndex;
nullYModuleIndex: by.SymbolModuleIndex = by.nullModuleIndex;
nullBodyIndex: BodyIndex = [x[e: nullXBodyIndex]];
nullXBodyIndex: bx.BodyIndex = bx.nullBodyIndex;
nullYBodyIndex: by.BodyIndex = by.nullBodyIndex;
rootBodyIndex: BodyIndex = [x[e: rootXBodyIndex]];
rootXBodyIndex: bx.BodyIndex = bx.rootBodyIndex;
rootYBodyIndex: by.BodyIndex = by.rootBodyIndex;
symbolIndexForTYPE: SymbolConstructorIndex = [x[e: symbolXIndexForTYPE]];
symbolXIndexForTYPE: bx.SymbolConstructorIndex = bx.symbolIndexForTYPE;
symbolYIndexForTYPE: by.SymbolConstructorIndex = by.symbolIndexForTYPE;
symbolIndexForANY: SymbolConstructorIndex = [x[e: symbolXIndexForANY]];
symbolXIndexForANY: bx.SymbolConstructorIndex = bx.symbolIndexForANY;
symbolYIndexForANY: by.SymbolConstructorIndex = by.symbolIndexForANY;
thisModuleIndex: SymbolModuleIndex = [x[e: thisXModuleIndex]];
thisXModuleIndex: bx.SymbolModuleIndex = bx.thisModuleIndex;
thisYModuleIndex: by.SymbolModuleIndex = by.thisModuleIndex;
contextLevelZero: BlockContextLevel = [x[e: contextXLevelZero]];
contextXLevelZero: bx.BlockContextLevel = bx.contextLevelZero;
contextYLevelZero: by.BlockContextLevel = by.contextLevelZero;
outerContextLevel: BlockContextLevel = [x[e: outerXContextLevel]];
outerXContextLevel: bx.BlockContextLevel = bx.outerContextLevel;
outerYContextLevel: by.BlockContextLevel = by.outerContextLevel;
typeCodeForINT: CARDINAL = bx.typeCodeForINT; -- BEWARE
typeCodeForCHAR: CARDINAL = bx.typeCodeForCHAR; -- BEWARE
END.