procedure SemanticError(Code: Scalar); extern; procedure StartList(var List: IdList); extern; procedure AppendId(var List: IdList; var Id: IdEntry); extern; procedure ForAll(List: IdList; procedure Action(Id: IdEntry)); extern; procedure DsposeList(List: IdList); extern; procedure StartSet(var s: IdSet); extern; function InSet(s: IdSet; Id: IdEntry): Boolean; extern; procedure Include(var s: IdSet; Id: IdEntry); extern; procedure Exclude(var s: IdSet; Id: IdEntry); extern; procedure DsposeSet(s: IdSet); extern; procedure InitScope; extern; procedure OpenScope(Kind: ScopeKind); extern; procedure SaveScope(var Scope: ScopeCopy); extern; procedure ReEnterScope(Scope: ScopeCopy); extern; procedure CheckScope(BlockId: IdEntry); extern; procedure CloseScope; extern; procedure CreateId(var Entry: IdEntry; ClassNeeded: IdClass); extern; procedure EnterId(NewEntry: IdEntry; var Scope: IdEntry); extern; procedure SeekLocalId(Scope: IdEntry; var Entry: IdEntry); extern; procedure SearchScopes(Inner, Outer: DispRange; var Entry: IdEntry); extern; procedure SearchGlobals(ClassNeeded: IdClass; var IdFound: IdEntry); extern; procedure BindDomain(Domain: IdEntry); extern; procedure SearchDomain(var Entry: IdEntry); extern; procedure NewId(var Entry: IdEntry; ClassNeeded: IdClass); extern; procedure SearchId(AllowableClasses: SetOfIdClass; var Entry: IdEntry); extern; procedure NewType(var Entry: TypEntry; FormNeeded: TypeForm); extern; procedure SeekLabel(FirstLabel: LabelEntry; var Entry: LabelEntry); extern; procedure CreateLabel(var Entry: LabelEntry); extern; procedure NewLabel; extern; procedure AllLabels(var Entry: LabelEntry); extern; procedure InitLabelDepth; extern; procedure OpenLabelDepth; extern; procedure DefineLabel; extern; procedure CheckLabel(var Entry: LabelEntry); extern; procedure CloseLabelDepth; extern; procedure DisposeScope; extern; procedure InitSemanticTables; extern; procedure StringType(var StringEntry: TypEntry); extern; function String(TheType: TypEntry): Boolean; extern; function StringFound: Boolean; extern; function Identical(Type1, Type2: TypEntry): Boolean; extern; function CAPString(TheType: TypEntry): Boolean; extern; function Compatible(Type1, Type2: TypEntry): Boolean; extern; function Ordinal(TheType: TypEntry): Boolean; extern; function EmbeddedFile(TheType: TypEntry): Boolean; extern; procedure EnsureOrdinal(var TheType: TypEntry); extern; procedure EnsureFormIs(FormRequired: TypeForm; var TheType: TypEntry); extern; procedure EnsureEnumerated(var TheType: TypEntry); extern; procedure DomainCheck(TheType: TypEntry); extern; procedure CheckAssignment(Type1, Type2: TypEntry); extern; procedure Threaten(v: IdEntry); extern; procedure GetBounds(OrdinalType: TypEntry; var Lower, Upper: ObjectValue); extern; function IsConformant(TheType: TypEntry): Boolean; extern; function ElementOf(Structure: TypEntry): TypEntry; extern; function IndexOf(Structure: TypEntry): TypEntry; extern; function PackingOf(Structure: TypEntry): Boolean; extern; function MultiLevel(Structure: TypEntry): Boolean; extern; function LastLevelOf(Structure: TypEntry): TypEntry; extern; procedure WithSchema(Schema: TypEntry; procedure Action(Packing, InnerMost: Boolean; LowBound, HighBound: CAPBound; ElemRep: TypeRepresentation)); extern; function TaggedVarPart(ThisVarPart: TypEntry; TagId: IdEntry): TypEntry; extern; function VariantField(VariantPart: TypEntry; FieldId: IdEntry): Boolean; extern; procedure SeekByValue(VariantPart: TypEntry; var Variant: TypEntry; TheValue: ObjectValue); extern; procedure SelectLocal(VariantPart: TypEntry; var Variant: TypEntry; Field: IdEntry); extern; procedure SeekByName(var VariantPart, Variant: TypEntry; Field: IdEntry); extern; function Congruent(Formals1, Formals2: FormalEntry): Boolean; extern;