瀏覽代碼

Unified spelling

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8513 8c9fc860-2736-0410-a75d-ab315db34111
negelef 6 年之前
父節點
當前提交
bb1f91b67a

+ 1 - 1
source/Fox.Tool

@@ -15,7 +15,7 @@ Compiler.Compile --noInterfaceCheck
 
 
 	BitSets.Mod ObjectFile.Mod GenericLinker.Mod Linker.Mod
 	BitSets.Mod ObjectFile.Mod GenericLinker.Mod Linker.Mod
 	FoxBasic.Mod  FoxProgTools.Mod  FoxScanner.Mod FoxCSharpScanner.Mod FoxSyntaxTree.Mod FoxGlobal.Mod
 	FoxBasic.Mod  FoxProgTools.Mod  FoxScanner.Mod FoxCSharpScanner.Mod FoxSyntaxTree.Mod FoxGlobal.Mod
-	FoxFormats.Mod 	FoxFingerPrinter.Mod FoxPrintout.Mod
+	FoxFormats.Mod 	FoxFingerprinter.Mod FoxPrintout.Mod
 	FoxParser.Mod FoxCSharpParser.Mod  FoxSemanticChecker.Mod
 	FoxParser.Mod FoxCSharpParser.Mod  FoxSemanticChecker.Mod
 	FoxBackend.Mod FoxSections.Mod 
 	FoxBackend.Mod FoxSections.Mod 
 	FoxFrontend.Mod 
 	FoxFrontend.Mod 

+ 69 - 69
source/FoxFingerPrinter.Mod → source/FoxFingerprinter.Mod

@@ -1,10 +1,10 @@
-MODULE FoxFingerPrinter; (** AUTHOR "fof"; PURPOSE "FingerPrinting"; *)
+MODULE FoxFingerprinter; (** AUTHOR "fof"; PURPOSE "Fingerprinting"; *)
 (* literature for the fingerprinting: Dissertation Crelier *)
 (* literature for the fingerprinting: Dissertation Crelier *)
 
 
 IMPORT SyntaxTree := FoxSyntaxTree, Basic := FoxBasic, SYSTEM, Global := FoxGlobal,Scanner := FoxScanner,
 IMPORT SyntaxTree := FoxSyntaxTree, Basic := FoxBasic, SYSTEM, Global := FoxGlobal,Scanner := FoxScanner,
 		D := Debugging, Streams;
 		D := Debugging, Streams;
 
 
-(** FingerPrinting
+(** Fingerprinting
 	FP(TypeDeclaration)        = 0 <*> fpModeType -> Name -> Visibility <*> FP(Type).
 	FP(TypeDeclaration)        = 0 <*> fpModeType -> Name -> Visibility <*> FP(Type).
 	FP(ConstantDeclaration)    = 0 <*> fpModeConstant -> Name -> Visibility <*> FP(Type) -> Basic -> Value.
 	FP(ConstantDeclaration)    = 0 <*> fpModeConstant -> Name -> Visibility <*> FP(Type) -> Basic -> Value.
 	FP(VariableDeclaration)    = 0 <*> fpModePar -> Name -> Visibility <*> FP(Type).
 	FP(VariableDeclaration)    = 0 <*> fpModePar -> Name -> Visibility <*> FP(Type).
@@ -61,7 +61,7 @@ IMPORT SyntaxTree := FoxSyntaxTree, Basic := FoxBasic, SYSTEM, Global := FoxGlob
 
 
 
 
 CONST
 CONST
-	(*FingerPrints/Obj Modes*)
+	(*Fingerprints/Obj Modes*)
 	fpModeVar=1;
 	fpModeVar=1;
 	fpModePar=1;
 	fpModePar=1;
 	fpModeVarPar=2;
 	fpModeVarPar=2;
@@ -73,7 +73,7 @@ CONST
 	fpModeInlineProcedure=9;
 	fpModeInlineProcedure=9;
 	fpModeMethod=13;
 	fpModeMethod=13;
 
 
-	(*FingerPrints/Type Forms*)
+	(*Fingerprints/Type Forms*)
 	fpTypeByte = 1;
 	fpTypeByte = 1;
 	fpTypeBoolean=2;
 	fpTypeBoolean=2;
 	fpTypeChar8=3;
 	fpTypeChar8=3;
@@ -129,20 +129,20 @@ CONST
 	Trace=FALSE;
 	Trace=FALSE;
 
 
 TYPE
 TYPE
-	FingerPrint = SyntaxTree.FingerPrint;
+	Fingerprint = SyntaxTree.Fingerprint;
 
 
-	FingerPrinter*= OBJECT (SyntaxTree.Visitor)
+	Fingerprinter*= OBJECT (SyntaxTree.Visitor)
 	VAR
 	VAR
 		fp-: LONGINT; (* temporary fingerprint for values etc. *)
 		fp-: LONGINT; (* temporary fingerprint for values etc. *)
-		fingerprint: FingerPrint;
+		fingerprint: Fingerprint;
 		deep: BOOLEAN; (* public / private field of FP needed ? *)
 		deep: BOOLEAN; (* public / private field of FP needed ? *)
 		traceLevel: LONGINT;
 		traceLevel: LONGINT;
 
 
 		level: LONGINT;
 		level: LONGINT;
 
 
-		PROCEDURE & InitFingerPrinter*();
+		PROCEDURE & InitFingerprinter*();
 		BEGIN fp:= 0; deep := FALSE; traceLevel := 0;
 		BEGIN fp:= 0; deep := FALSE; traceLevel := 0;
-		END InitFingerPrinter;
+		END InitFingerprinter;
 		(** types *)
 		(** types *)
 
 
 		(*
 		(*
@@ -156,7 +156,7 @@ TYPE
 		END VisitBasicType;
 		END VisitBasicType;
 
 
 		PROCEDURE SetTypeFingerprint(x: SyntaxTree.Type; fp: LONGINT);
 		PROCEDURE SetTypeFingerprint(x: SyntaxTree.Type; fp: LONGINT);
-		VAR fingerprint: FingerPrint;
+		VAR fingerprint: Fingerprint;
 		BEGIN
 		BEGIN
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
 			IF ~fingerprint.shallowAvailable THEN
 			IF ~fingerprint.shallowAvailable THEN
@@ -165,7 +165,7 @@ TYPE
 				fingerprint.private := fp;
 				fingerprint.private := fp;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.deepAvailable := TRUE; (* no distinction between deep and shallow fp necessary *)
 				fingerprint.deepAvailable := TRUE; (* no distinction between deep and shallow fp necessary *)
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 			END;
 			END;
 			SELF.fingerprint := fingerprint;
 			SELF.fingerprint := fingerprint;
 		END SetTypeFingerprint;
 		END SetTypeFingerprint;
@@ -280,7 +280,7 @@ TYPE
 			fp enumeration type
 			fp enumeration type
 		**)
 		**)
 		PROCEDURE VisitEnumerationType*(x: SyntaxTree.EnumerationType);
 		PROCEDURE VisitEnumerationType*(x: SyntaxTree.EnumerationType);
-		VAR fingerprint: FingerPrint; enumerator: SyntaxTree.Constant; fp: LONGINT;
+		VAR fingerprint: Fingerprint; enumerator: SyntaxTree.Constant; fp: LONGINT;
 		BEGIN
 		BEGIN
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
 
 
@@ -302,7 +302,7 @@ TYPE
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.deepAvailable := TRUE; (* no distinction between deep and shallow fp necessary *)
 				fingerprint.deepAvailable := TRUE; (* no distinction between deep and shallow fp necessary *)
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 			END;
 			END;
 
 
 			SELF.fingerprint := fingerprint
 			SELF.fingerprint := fingerprint
@@ -334,7 +334,7 @@ TYPE
 		PrivateFP(ArrayType)       = FP(arrayType).
 		PrivateFP(ArrayType)       = FP(arrayType).
 		*)
 		*)
 		PROCEDURE VisitArrayType*(x: SyntaxTree.ArrayType);
 		PROCEDURE VisitArrayType*(x: SyntaxTree.ArrayType);
-		VAR fingerprint: FingerPrint; deep: BOOLEAN; fp: LONGINT;
+		VAR fingerprint: Fingerprint; deep: BOOLEAN; fp: LONGINT;
 		BEGIN
 		BEGIN
 			IF Trace THEN TraceEnter("ArrayType") END;
 			IF Trace THEN TraceEnter("ArrayType") END;
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
@@ -352,14 +352,14 @@ TYPE
 				END;
 				END;
 				TypeName(fp,x);
 				TypeName(fp,x);
 				fingerprint.shallow := fp;
 				fingerprint.shallow := fp;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				FPType(fp,x.arrayBase.resolved);
 				FPType(fp,x.arrayBase.resolved);
 
 
 				IF x.form = SyntaxTree.Static THEN FPNumber(fp,x.staticLength) END;
 				IF x.form = SyntaxTree.Static THEN FPNumber(fp,x.staticLength) END;
 				fingerprint.shallow := fp;
 				fingerprint.shallow := fp;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 			END;
 			END;
 
 
@@ -367,7 +367,7 @@ TYPE
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.deepAvailable := TRUE; (* to avoid circles during base finger printing *)
 				fingerprint.deepAvailable := TRUE; (* to avoid circles during base finger printing *)
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				VType(x.arrayBase); (* make sure that base pointer is also deeply fped *)
 				VType(x.arrayBase); (* make sure that base pointer is also deeply fped *)
 			END;
 			END;
 
 
@@ -383,7 +383,7 @@ TYPE
 		PrivateFP(MathArrayType)   = FP(arrayType).
 		PrivateFP(MathArrayType)   = FP(arrayType).
 		*)
 		*)
 		PROCEDURE VisitMathArrayType*(x: SyntaxTree.MathArrayType);
 		PROCEDURE VisitMathArrayType*(x: SyntaxTree.MathArrayType);
-		VAR fingerprint: FingerPrint; deep: BOOLEAN; fp: LONGINT;
+		VAR fingerprint: Fingerprint; deep: BOOLEAN; fp: LONGINT;
 		BEGIN
 		BEGIN
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
 			deep := SELF.deep;
 			deep := SELF.deep;
@@ -409,7 +409,7 @@ TYPE
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 			END;
 			END;
 
 
@@ -418,7 +418,7 @@ TYPE
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.deepAvailable := TRUE;
 				fingerprint.deepAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 			END;
 			END;
 
 
 			IF Trace THEN TraceExit("MathArrayType",fingerprint) END;
 			IF Trace THEN TraceExit("MathArrayType",fingerprint) END;
@@ -508,7 +508,7 @@ TYPE
 					fingerprint.deepAvailable := TRUE;
 					fingerprint.deepAvailable := TRUE;
 				END;
 				END;
 				*)
 				*)
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 			END;
 			END;
 			
 			
@@ -524,7 +524,7 @@ TYPE
 		PrivateFP(PortType)     = 0.
 		PrivateFP(PortType)     = 0.
 		*)
 		*)
 		PROCEDURE VisitPortType*(x: SyntaxTree.PortType);
 		PROCEDURE VisitPortType*(x: SyntaxTree.PortType);
-		VAR fingerprint: FingerPrint; fp: LONGINT; deep: BOOLEAN;
+		VAR fingerprint: Fingerprint; fp: LONGINT; deep: BOOLEAN;
 		BEGIN
 		BEGIN
 			IF Trace THEN TraceEnter("PortType");  END;
 			IF Trace THEN TraceEnter("PortType");  END;
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
@@ -553,7 +553,7 @@ TYPE
 		FP(Method)  = 0 <*> fpModeMethod -> Name(methodName) -> Signature(method).
 		FP(Method)  = 0 <*> fpModeMethod -> Name(methodName) -> Signature(method).
 		*)
 		*)
 		PROCEDURE FPrintMethod(VAR private,public: LONGINT; procedure,body: SyntaxTree.Procedure);
 		PROCEDURE FPrintMethod(VAR private,public: LONGINT; procedure,body: SyntaxTree.Procedure);
-		VAR fingerprint: FingerPrint; fp: LONGINT; name: ARRAY 256 OF CHAR;
+		VAR fingerprint: Fingerprint; fp: LONGINT; name: ARRAY 256 OF CHAR;
 		BEGIN
 		BEGIN
 			IF Trace THEN TraceEnter("Method");
 			IF Trace THEN TraceEnter("Method");
 				D.Address(SYSTEM.VAL(ADDRESS,procedure));
 				D.Address(SYSTEM.VAL(ADDRESS,procedure));
@@ -572,7 +572,7 @@ TYPE
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
-				procedure.SetFingerPrint(fingerprint)
+				procedure.SetFingerprint(fingerprint)
 			ELSE
 			ELSE
 				fp := fingerprint.shallow;
 				fp := fingerprint.shallow;
 			END;
 			END;
@@ -591,7 +591,7 @@ TYPE
 		END FPrintMethod;
 		END FPrintMethod;
 
 
 		PROCEDURE VisitCellType*(x: SyntaxTree.CellType);
 		PROCEDURE VisitCellType*(x: SyntaxTree.CellType);
-		VAR fingerprint: FingerPrint; fp:LONGINT;
+		VAR fingerprint: Fingerprint; fp:LONGINT;
 		BEGIN
 		BEGIN
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
 			deep := SELF.deep;
 			deep := SELF.deep;
@@ -603,7 +603,7 @@ TYPE
 				fingerprint.private := fp;
 				fingerprint.private := fp;
 				fingerprint.deepAvailable := TRUE;
 				fingerprint.deepAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 			END;
 			END;
 			SELF.fingerprint := fingerprint
 			SELF.fingerprint := fingerprint
 		END VisitCellType;
 		END VisitCellType;
@@ -618,7 +618,7 @@ TYPE
 		*)
 		*)
 		PROCEDURE VisitRecordType*(x: SyntaxTree.RecordType);
 		PROCEDURE VisitRecordType*(x: SyntaxTree.RecordType);
 		VAR scope: SyntaxTree.RecordScope; fp: LONGINT; variable: SyntaxTree.Variable;
 		VAR scope: SyntaxTree.RecordScope; fp: LONGINT; variable: SyntaxTree.Variable;
-			fingerprint,variableFingerPrint,variableTypeFingerPrint,baseFingerPrint: FingerPrint;flags: SET;
+			fingerprint,variableFingerprint,variableTypeFingerprint,baseFingerprint: Fingerprint;flags: SET;
 			symbol: SyntaxTree.Symbol; procedure: SyntaxTree.Procedure;  baseType: SyntaxTree.Type;
 			symbol: SyntaxTree.Symbol; procedure: SyntaxTree.Procedure;  baseType: SyntaxTree.Type;
 			body: SyntaxTree.Body; name: ARRAY 256 OF CHAR;
 			body: SyntaxTree.Body; name: ARRAY 256 OF CHAR;
 			deep: BOOLEAN;
 			deep: BOOLEAN;
@@ -663,7 +663,7 @@ TYPE
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
 
 
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 				IF Trace THEN TraceIndent; D.Str("RecordType Shallow Done "); TraceFP(fingerprint); D.Ln;  END;
 				IF Trace THEN TraceIndent; D.Str("RecordType Shallow Done "); TraceFP(fingerprint); D.Ln;  END;
 			END;
 			END;
@@ -679,9 +679,9 @@ TYPE
 				baseType := x.GetBaseRecord();
 				baseType := x.GetBaseRecord();
 				IF  (baseType # NIL) THEN
 				IF  (baseType # NIL) THEN
 					IF baseType IS SyntaxTree.PointerType THEN baseType := baseType(SyntaxTree.PointerType).pointerBase.resolved END;
 					IF baseType IS SyntaxTree.PointerType THEN baseType := baseType(SyntaxTree.PointerType).pointerBase.resolved END;
-					baseFingerPrint := TypeFP(baseType); (* deep finger print *)
-					FPNumber(fingerprint.private,baseFingerPrint.private);
-					FPNumber(fingerprint.public,baseFingerPrint.public);
+					baseFingerprint := TypeFP(baseType); (* deep finger print *)
+					FPNumber(fingerprint.private,baseFingerprint.private);
+					FPNumber(fingerprint.public,baseFingerprint.public);
 				END;
 				END;
 
 
 				scope := x.recordScope;
 				scope := x.recordScope;
@@ -701,7 +701,7 @@ TYPE
 
 
 				variable := scope.firstVariable;
 				variable := scope.firstVariable;
 				WHILE variable # NIL DO
 				WHILE variable # NIL DO
-					variableFingerPrint := variable.fingerprint;
+					variableFingerprint := variable.fingerprint;
 					IF variable.access * SyntaxTree.Public # {} THEN
 					IF variable.access * SyntaxTree.Public # {} THEN
 						(* variable fp =  & fpModeField & Name & Visibility [& fpUntraced] & Type *)
 						(* variable fp =  & fpModeField & Name & Visibility [& fpUntraced] & Type *)
 						fp := 0;
 						fp := 0;
@@ -710,13 +710,13 @@ TYPE
 
 
 						FPVisibility(fp,variable.access);
 						FPVisibility(fp,variable.access);
 						IF variable.untraced THEN FPNumber(fp,fpUntraced) END;
 						IF variable.untraced THEN FPNumber(fp,fpUntraced) END;
-						variableTypeFingerPrint := TypeFP(variable.type); (* deep finger print *)
-						FPNumber(fp,variableTypeFingerPrint.shallow);
-						variableFingerPrint.shallow := fp;
-						FPNumber(fingerprint.private,variableTypeFingerPrint.private);
+						variableTypeFingerprint := TypeFP(variable.type); (* deep finger print *)
+						FPNumber(fp,variableTypeFingerprint.shallow);
+						variableFingerprint.shallow := fp;
+						FPNumber(fingerprint.private,variableTypeFingerprint.private);
 						FPNumber(fingerprint.private,SHORT(variable.offsetInBits DIV 8));
 						FPNumber(fingerprint.private,SHORT(variable.offsetInBits DIV 8));
 						FPNumber(fingerprint.private,fp);
 						FPNumber(fingerprint.private,fp);
-						FPNumber(fingerprint.public,variableTypeFingerPrint.public);
+						FPNumber(fingerprint.public,variableTypeFingerprint.public);
 						FPNumber(fingerprint.public,SHORT(variable.offsetInBits DIV 8));
 						FPNumber(fingerprint.public,SHORT(variable.offsetInBits DIV 8));
 						FPNumber(fingerprint.public,fp);
 						FPNumber(fingerprint.public,fp);
 						IF Trace THEN TraceIndent; D.Str("RecordType Field "); D.Str0(variable.name); D.Str(" "); TraceFP(fingerprint); D.Ln; END;
 						IF Trace THEN TraceIndent; D.Str("RecordType Field "); D.Str0(variable.name); D.Str(" "); TraceFP(fingerprint); D.Ln; END;
@@ -750,7 +750,7 @@ TYPE
 				ASSERT(fingerprint.public # 0,101);
 				ASSERT(fingerprint.public # 0,101);
 				*)
 				*)
 				fingerprint.deepAvailable := TRUE;
 				fingerprint.deepAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 			END;
 			END;
 
 
 			SELF.fingerprint := fingerprint;
 			SELF.fingerprint := fingerprint;
@@ -765,7 +765,7 @@ TYPE
 		PrivateFP(ProcedureType)   = FP(arrayType)-> Signature(procedureType).
 		PrivateFP(ProcedureType)   = FP(arrayType)-> Signature(procedureType).
 		*)
 		*)
 		PROCEDURE VisitProcedureType*(x: SyntaxTree.ProcedureType);
 		PROCEDURE VisitProcedureType*(x: SyntaxTree.ProcedureType);
-		VAR fingerprint: FingerPrint; deep: BOOLEAN; fp: LONGINT;
+		VAR fingerprint: Fingerprint; deep: BOOLEAN; fp: LONGINT;
 		BEGIN
 		BEGIN
 			IF Trace THEN TraceEnter("ProcedureType") END;
 			IF Trace THEN TraceEnter("ProcedureType") END;
 
 
@@ -778,7 +778,7 @@ TYPE
 				FPNumber(fp,fpTypeProcedure);
 				FPNumber(fp,fpTypeProcedure);
 				FPNumber(fp,fpTypeBasic);
 				FPNumber(fp,fpTypeBasic);
 				IF x.isDelegate THEN FPNumber(fp,fpDelegate) END;
 				IF x.isDelegate THEN FPNumber(fp,fpDelegate) END;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				TypeName(fp,x);
 				TypeName(fp,x);
 
 
 				fingerprint.public := fp; fingerprint.private := fp;
 				fingerprint.public := fp; fingerprint.private := fp;
@@ -787,7 +787,7 @@ TYPE
 				fingerprint.public := fp; fingerprint.private := fp;
 				fingerprint.public := fp; fingerprint.private := fp;
 				fingerprint.shallow := fp;
 				fingerprint.shallow := fp;
 				fingerprint.deepAvailable := TRUE;
 				fingerprint.deepAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 			END;
 			END;
 
 
 			(*
 			(*
@@ -980,8 +980,8 @@ TYPE
 		*)
 		*)
 		PROCEDURE VisitTypeDeclaration*(x: SyntaxTree.TypeDeclaration);
 		PROCEDURE VisitTypeDeclaration*(x: SyntaxTree.TypeDeclaration);
 		VAR fp: LONGINT;
 		VAR fp: LONGINT;
-			fingerprint: FingerPrint; deep: BOOLEAN;
-			typeFP: FingerPrint;
+			fingerprint: Fingerprint; deep: BOOLEAN;
+			typeFP: Fingerprint;
 		BEGIN
 		BEGIN
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
 
 
@@ -1000,7 +1000,7 @@ TYPE
 				fingerprint.public := fp;
 				fingerprint.public := fp;
 				fingerprint.private := fp;
 				fingerprint.private := fp;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 				IF Trace THEN TraceExit("TypeDeclaration",fingerprint) END;
 				IF Trace THEN TraceExit("TypeDeclaration",fingerprint) END;
 			END;
 			END;
@@ -1014,7 +1014,7 @@ TYPE
 				FPNumber(fingerprint.public, typeFP.public);
 				FPNumber(fingerprint.public, typeFP.public);
 				FPNumber(fingerprint.private, typeFP.private);
 				FPNumber(fingerprint.private, typeFP.private);
 				fingerprint.deepAvailable := TRUE;
 				fingerprint.deepAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 			END;
 			END;
 
 
 			SELF.fingerprint := fingerprint
 			SELF.fingerprint := fingerprint
@@ -1025,7 +1025,7 @@ TYPE
 		*)
 		*)
 		PROCEDURE VisitConstant*(x: SyntaxTree.Constant);
 		PROCEDURE VisitConstant*(x: SyntaxTree.Constant);
 		VAR access: SET;
 		VAR access: SET;
-			fingerprint: FingerPrint;
+			fingerprint: Fingerprint;
 			fp: LONGINT;
 			fp: LONGINT;
 			deep: BOOLEAN;
 			deep: BOOLEAN;
 		BEGIN
 		BEGIN
@@ -1047,7 +1047,7 @@ TYPE
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 			END;
 			END;
 			SELF.fingerprint := fingerprint
 			SELF.fingerprint := fingerprint
@@ -1057,7 +1057,7 @@ TYPE
 			FP(VariableDeclaration)    = 0 <*> fpModePar -> Name -> Visibility <*> FP(Type).
 			FP(VariableDeclaration)    = 0 <*> fpModePar -> Name -> Visibility <*> FP(Type).
 		*)
 		*)
 		PROCEDURE VisitVariable*(x: SyntaxTree.Variable);
 		PROCEDURE VisitVariable*(x: SyntaxTree.Variable);
-		VAR fingerprint: FingerPrint; deep: BOOLEAN; name: SyntaxTree.IdentifierString;
+		VAR fingerprint: Fingerprint; deep: BOOLEAN; name: SyntaxTree.IdentifierString;
 		BEGIN
 		BEGIN
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
 
 
@@ -1075,7 +1075,7 @@ TYPE
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 			END;
 			END;
 			SELF.fingerprint := fingerprint
 			SELF.fingerprint := fingerprint
@@ -1091,7 +1091,7 @@ TYPE
 			FP(ParameterDeclaration)    = 0 <*> fpModePar -> Name -> Visibility <*> FP(Type).
 			FP(ParameterDeclaration)    = 0 <*> fpModePar -> Name -> Visibility <*> FP(Type).
 		*)
 		*)
 		PROCEDURE VisitParameter*(x: SyntaxTree.Parameter);
 		PROCEDURE VisitParameter*(x: SyntaxTree.Parameter);
-		VAR fingerprint: FingerPrint; deep: BOOLEAN; name: SyntaxTree.IdentifierString;
+		VAR fingerprint: Fingerprint; deep: BOOLEAN; name: SyntaxTree.IdentifierString;
 		BEGIN
 		BEGIN
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
 
 
@@ -1109,7 +1109,7 @@ TYPE
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 			END;
 			END;
 			SELF.fingerprint := fingerprint
 			SELF.fingerprint := fingerprint
@@ -1120,7 +1120,7 @@ TYPE
 		                            | 0 <*> fpModeExportedProcedure -> Name -> Visibility <*> FP(Type)
 		                            | 0 <*> fpModeExportedProcedure -> Name -> Visibility <*> FP(Type)
 		*)
 		*)
 		PROCEDURE VisitProcedure*(x: SyntaxTree.Procedure);
 		PROCEDURE VisitProcedure*(x: SyntaxTree.Procedure);
-		VAR fp: LONGINT; access: SET; fingerprint: FingerPrint; deep: BOOLEAN; code: SyntaxTree.Code; i: LONGINT;
+		VAR fp: LONGINT; access: SET; fingerprint: Fingerprint; deep: BOOLEAN; code: SyntaxTree.Code; i: LONGINT;
 			size,value: LONGINT; name: ARRAY 256 OF CHAR;
 			size,value: LONGINT; name: ARRAY 256 OF CHAR;
 		BEGIN
 		BEGIN
 			IF x.scope IS SyntaxTree.RecordScope THEN (* method *)
 			IF x.scope IS SyntaxTree.RecordScope THEN (* method *)
@@ -1163,7 +1163,7 @@ TYPE
 					fingerprint.public := fingerprint.shallow;
 					fingerprint.public := fingerprint.shallow;
 					fingerprint.private := fingerprint.shallow;
 					fingerprint.private := fingerprint.shallow;
 					fingerprint.shallowAvailable := TRUE;
 					fingerprint.shallowAvailable := TRUE;
-					x.SetFingerPrint(fingerprint);
+					x.SetFingerprint(fingerprint);
 					SELF.deep := deep;
 					SELF.deep := deep;
 				END;
 				END;
 			END;
 			END;
@@ -1177,7 +1177,7 @@ TYPE
 		END VisitOperator;
 		END VisitOperator;
 		
 		
 		PROCEDURE VisitModule*(x: SyntaxTree.Module);
 		PROCEDURE VisitModule*(x: SyntaxTree.Module);
-		VAR fingerprint, symbolFingerPrint: FingerPrint; deep: BOOLEAN; fp: LONGINT; symbol: SyntaxTree.Symbol; scope: SyntaxTree.ModuleScope;
+		VAR fingerprint, symbolFingerprint: Fingerprint; deep: BOOLEAN; fp: LONGINT; symbol: SyntaxTree.Symbol; scope: SyntaxTree.ModuleScope;
 		BEGIN
 		BEGIN
 			fingerprint := x.fingerprint;
 			fingerprint := x.fingerprint;
 			deep := SELF.deep;
 			deep := SELF.deep;
@@ -1197,7 +1197,7 @@ TYPE
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.public := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.private := fingerprint.shallow;
 				fingerprint.shallowAvailable := TRUE;
 				fingerprint.shallowAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 				SELF.deep := deep;
 				SELF.deep := deep;
 				IF Trace THEN TraceIndent; D.Str("Module Shallow Done "); TraceFP(fingerprint); D.Ln;  END;
 				IF Trace THEN TraceIndent; D.Str("Module Shallow Done "); TraceFP(fingerprint); D.Ln;  END;
 			END;
 			END;
@@ -1213,9 +1213,9 @@ TYPE
 				symbol := scope.firstSymbol;
 				symbol := scope.firstSymbol;
 				WHILE symbol # NIL DO
 				WHILE symbol # NIL DO
 					IF symbol.access * SyntaxTree.Public # {} THEN
 					IF symbol.access * SyntaxTree.Public # {} THEN
-						symbolFingerPrint := SymbolFP(symbol);
-						FPNumber(fingerprint.private,symbolFingerPrint.shallow);
-						FPNumber(fingerprint.public,symbolFingerPrint.shallow);
+						symbolFingerprint := SymbolFP(symbol);
+						FPNumber(fingerprint.private,symbolFingerprint.shallow);
+						FPNumber(fingerprint.public,symbolFingerprint.shallow);
 					END;
 					END;
 					symbol := symbol.nextSymbol;
 					symbol := symbol.nextSymbol;
 				END;
 				END;
@@ -1227,7 +1227,7 @@ TYPE
 				ASSERT(fingerprint.public # 0,101);
 				ASSERT(fingerprint.public # 0,101);
 				*)
 				*)
 				fingerprint.deepAvailable := TRUE;
 				fingerprint.deepAvailable := TRUE;
-				x.SetFingerPrint(fingerprint);
+				x.SetFingerprint(fingerprint);
 			END;
 			END;
 
 
 			SELF.fingerprint := fingerprint;
 			SELF.fingerprint := fingerprint;
@@ -1242,7 +1242,7 @@ TYPE
 			fingerprint.public := fingerprint.shallow;
 			fingerprint.public := fingerprint.shallow;
 			fingerprint.private := fingerprint.shallow;
 			fingerprint.private := fingerprint.shallow;
 			fingerprint.shallowAvailable := TRUE;
 			fingerprint.shallowAvailable := TRUE;
-			x.SetFingerPrint(fingerprint);
+			x.SetFingerprint(fingerprint);
 		END VisitSymbol;
 		END VisitSymbol;
 
 
 		PROCEDURE TraceIndent;
 		PROCEDURE TraceIndent;
@@ -1259,13 +1259,13 @@ TYPE
 			D.Ln;
 			D.Ln;
 		END TraceEnter;
 		END TraceEnter;
 
 
-		PROCEDURE TraceExit(CONST name: ARRAY OF CHAR; fingerprint: FingerPrint);
+		PROCEDURE TraceExit(CONST name: ARRAY OF CHAR; fingerprint: Fingerprint);
 		BEGIN
 		BEGIN
 			TraceIndent; DEC(traceLevel);
 			TraceIndent; DEC(traceLevel);
 			D.Str("Exit "); D.Str(name); D.Str(" "); TraceFP(fingerprint); D.Ln;
 			D.Str("Exit "); D.Str(name); D.Str(" "); TraceFP(fingerprint); D.Ln;
 		END TraceExit;
 		END TraceExit;
 
 
-		PROCEDURE TraceFP(fingerprint: FingerPrint);
+		PROCEDURE TraceFP(fingerprint: Fingerprint);
 		BEGIN
 		BEGIN
 			D.Hex(fingerprint.shallow,-8); D.Str(" "); D.Hex(fingerprint.private,-8);
 			D.Hex(fingerprint.shallow,-8); D.Str(" "); D.Hex(fingerprint.private,-8);
 			D.Str(" "); D.Hex(fingerprint.public,-8);
 			D.Str(" "); D.Hex(fingerprint.public,-8);
@@ -1273,7 +1273,7 @@ TYPE
 
 
 
 
 		(* returns the finger print (object) of a type *)
 		(* returns the finger print (object) of a type *)
-		PROCEDURE TypeFP*(this: SyntaxTree.Type): FingerPrint;
+		PROCEDURE TypeFP*(this: SyntaxTree.Type): Fingerprint;
 		VAR deep: BOOLEAN;
 		VAR deep: BOOLEAN;
 		BEGIN
 		BEGIN
 			IF Trace THEN TraceEnter("TypeFP");  END;
 			IF Trace THEN TraceEnter("TypeFP");  END;
@@ -1292,7 +1292,7 @@ TYPE
 		END TypeFP;
 		END TypeFP;
 
 
 		(* returns the finger print (object) of a symbol *)
 		(* returns the finger print (object) of a symbol *)
-		PROCEDURE SymbolFP*(this: SyntaxTree.Symbol): FingerPrint;
+		PROCEDURE SymbolFP*(this: SyntaxTree.Symbol): Fingerprint;
 		VAR deep: BOOLEAN;
 		VAR deep: BOOLEAN;
 		BEGIN
 		BEGIN
 			deep := SELF.deep;
 			deep := SELF.deep;
@@ -1308,10 +1308,10 @@ TYPE
 			RETURN fingerprint
 			RETURN fingerprint
 		END SymbolFP;
 		END SymbolFP;
 
 
-	END FingerPrinter;
+	END Fingerprinter;
 
 
 
 
-	(** ---------- FingerPrinting primitives -------------- *)
+	(** ---------- Fingerprinting primitives -------------- *)
 	PROCEDURE IsOberonProcedure(type: SyntaxTree.ProcedureType): BOOLEAN;
 	PROCEDURE IsOberonProcedure(type: SyntaxTree.ProcedureType): BOOLEAN;
 	BEGIN
 	BEGIN
 		RETURN type.callingConvention = SyntaxTree.OberonCallingConvention
 		RETURN type.callingConvention = SyntaxTree.OberonCallingConvention
@@ -1374,14 +1374,14 @@ TYPE
 		END
 		END
 	END FPVisibility;
 	END FPVisibility;
 
 
-	PROCEDURE DumpFingerPrint*(w: Streams.Writer; fp: FingerPrint);
+	PROCEDURE DumpFingerprint*(w: Streams.Writer; fp: Fingerprint);
 	BEGIN
 	BEGIN
 		w.String("fingerprint: ");
 		w.String("fingerprint: ");
 		w.String("shallow = "); w.Hex(fp.shallow,8);
 		w.String("shallow = "); w.Hex(fp.shallow,8);
 		w.String(", private = "); w.Hex(fp.private,8);
 		w.String(", private = "); w.Hex(fp.private,8);
 		w.String(", public = "); w.Hex(fp.public,8);
 		w.String(", public = "); w.Hex(fp.public,8);
 		w.Ln;
 		w.Ln;
-	END DumpFingerPrint;
+	END DumpFingerprint;
 
 
 
 
-END FoxFingerPrinter.
+END FoxFingerprinter.

+ 23 - 23
source/FoxGenericObjectFile.Mod

@@ -3,7 +3,7 @@ MODULE FoxGenericObjectFile; (** AUTHOR "negelef"; PURPOSE "Generic Object File
 IMPORT
 IMPORT
 	StringPool, Streams, Commands, Basic := FoxBasic, Formats := FoxFormats, Sections := FoxSections, IntermediateCode := FoxIntermediateCode,
 	StringPool, Streams, Commands, Basic := FoxBasic, Formats := FoxFormats, Sections := FoxSections, IntermediateCode := FoxIntermediateCode,
 	SyntaxTree := FoxSyntaxTree, BinaryCode := FoxBinaryCode,
 	SyntaxTree := FoxSyntaxTree, BinaryCode := FoxBinaryCode,
-	FingerPrinter := FoxFingerPrinter, Files, Options, ObjectFile, SymbolFileFormat := FoxTextualSymbolFile, Strings, KernelLog, D := Debugging;
+	Fingerprinter := FoxFingerprinter, Files, Options, ObjectFile, SymbolFileFormat := FoxTextualSymbolFile, Strings, KernelLog, D := Debugging;
 
 
 CONST
 CONST
 	Version = 5;
 	Version = 5;
@@ -40,7 +40,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 
 
 
 
 		PROCEDURE Export* (module: Formats.GeneratedModule; symbolFileFormat: Formats.SymbolFileFormat): BOOLEAN;
 		PROCEDURE Export* (module: Formats.GeneratedModule; symbolFileFormat: Formats.SymbolFileFormat): BOOLEAN;
-		VAR fileName: Files.FileName; file: Files.File; writer: Files.Writer; fingerPrinter: FingerPrinter.FingerPrinter; poolMap: ObjectFile.PoolMap;
+		VAR fileName: Files.FileName; file: Files.File; writer: Files.Writer; fingerprinter: Fingerprinter.Fingerprinter; poolMap: ObjectFile.PoolMap;
 
 
 			PROCEDURE ExportSection (section: IntermediateCode.Section): BOOLEAN;
 			PROCEDURE ExportSection (section: IntermediateCode.Section): BOOLEAN;
 			VAR name: ARRAY 256 OF CHAR; (* debugging *)
 			VAR name: ARRAY 256 OF CHAR; (* debugging *)
@@ -55,7 +55,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 						D.String('"section.resolved = NIL" for '); D.String(name); D.Ln;
 						D.String('"section.resolved = NIL" for '); D.String(name); D.Ln;
 						RETURN FALSE
 						RETURN FALSE
 					END;
 					END;
-					section.resolved.os.identifier.fingerprint := GetFingerPrint (section, fingerPrinter);
+					section.resolved.os.identifier.fingerprint := GetFingerprint (section, fingerprinter);
 					CopyFixups (NIL, section.resolved, section.resolved, 0);
 					CopyFixups (NIL, section.resolved, section.resolved, 0);
 					ObjectFile.WriteSection(writer,section.resolved.os,binary, poolMap);
 					ObjectFile.WriteSection(writer,section.resolved.os,binary, poolMap);
 				(*
 				(*
@@ -127,7 +127,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 							IF resolved.os.alignment # 0 THEN
 							IF resolved.os.alignment # 0 THEN
 							codeSection.Align(resolved.os.alignment);
 							codeSection.Align(resolved.os.alignment);
 							END;
 							END;
-							resolved.os.identifier.fingerprint := GetFingerPrint (section, fingerPrinter);
+							resolved.os.identifier.fingerprint := GetFingerprint (section, fingerprinter);
 
 
 							NEW(alias, resolved.os.identifier, codeSection.pc);
 							NEW(alias, resolved.os.identifier, codeSection.pc);
 							IF ~AliasOnlyExported OR exported THEN  codeSection.aliasList.AddAlias(alias) END;
 							IF ~AliasOnlyExported OR exported THEN  codeSection.aliasList.AddAlias(alias) END;
@@ -138,7 +138,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 							IF resolved.os.alignment # 0 THEN
 							IF resolved.os.alignment # 0 THEN
 							dataSection.Align(resolved.os.alignment);
 							dataSection.Align(resolved.os.alignment);
 							END;
 							END;
-							resolved.os.identifier.fingerprint := GetFingerPrint (section, fingerPrinter);
+							resolved.os.identifier.fingerprint := GetFingerprint (section, fingerprinter);
 							NEW(alias, resolved.os.identifier, dataSection.pc);
 							NEW(alias, resolved.os.identifier, dataSection.pc);
 							IF ~AliasOnlyExported OR exported THEN dataSection.aliasList.AddAlias(alias) END;
 							IF ~AliasOnlyExported OR exported THEN dataSection.aliasList.AddAlias(alias) END;
 							section(IntermediateCode.Section).SetAlias(dataSection, dataSection.pc);
 							section(IntermediateCode.Section).SetAlias(dataSection, dataSection.pc);
@@ -147,7 +147,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 							IF resolved.os.alignment # 0 THEN
 							IF resolved.os.alignment # 0 THEN
 							constSection.Align(resolved.os.alignment);
 							constSection.Align(resolved.os.alignment);
 							END;
 							END;
-							resolved.os.identifier.fingerprint := GetFingerPrint (section, fingerPrinter);
+							resolved.os.identifier.fingerprint := GetFingerprint (section, fingerprinter);
 							NEW(alias, resolved.os.identifier, constSection.pc);
 							NEW(alias, resolved.os.identifier, constSection.pc);
 							IF ~AliasOnlyExported OR exported THEN constSection.aliasList.AddAlias(alias) END;
 							IF ~AliasOnlyExported OR exported THEN constSection.aliasList.AddAlias(alias) END;
 							section(IntermediateCode.Section).SetAlias(constSection, constSection.pc);
 							section(IntermediateCode.Section).SetAlias(constSection, constSection.pc);
@@ -169,17 +169,17 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 
 
 
 
 				IF codeSection # NIL THEN
 				IF codeSection # NIL THEN
-					UpdateAliases (codeSection, fingerPrinter);
+					UpdateAliases (codeSection, fingerprinter);
 					irSection := IntermediateCode.NewSection(sections, SHORTINT(codeSection.os.type), codeSection.os.identifier.name, NIL, FALSE);
 					irSection := IntermediateCode.NewSection(sections, SHORTINT(codeSection.os.type), codeSection.os.identifier.name, NIL, FALSE);
 					irSection.SetResolved(codeSection);
 					irSection.SetResolved(codeSection);
 				END;
 				END;
 				IF dataSection # NIL THEN
 				IF dataSection # NIL THEN
-					UpdateAliases (dataSection, fingerPrinter);
+					UpdateAliases (dataSection, fingerprinter);
 					irSection := IntermediateCode.NewSection(sections, SHORTINT(dataSection.os.type), dataSection.os.identifier.name, NIL, FALSE);
 					irSection := IntermediateCode.NewSection(sections, SHORTINT(dataSection.os.type), dataSection.os.identifier.name, NIL, FALSE);
 					irSection.SetResolved(dataSection);
 					irSection.SetResolved(dataSection);
 				END;
 				END;
 				IF constSection # NIL THEN
 				IF constSection # NIL THEN
-					UpdateAliases (constSection, fingerPrinter);
+					UpdateAliases (constSection, fingerprinter);
 					irSection := IntermediateCode.NewSection(sections, SHORTINT(constSection.os.type), constSection.os.identifier.name, NIL, FALSE);
 					irSection := IntermediateCode.NewSection(sections, SHORTINT(constSection.os.type), constSection.os.identifier.name, NIL, FALSE);
 					irSection.SetResolved(constSection);
 					irSection.SetResolved(constSection);
 				END;
 				END;
@@ -203,7 +203,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 								test := sections.GetSection(j);
 								test := sections.GetSection(j);
 								IF (test(IntermediateCode.Section).resolved # NIL)
 								IF (test(IntermediateCode.Section).resolved # NIL)
 								&  (test(IntermediateCode.Section).resolved.os.identifier.fingerprint = section(IntermediateCode.Section).resolved.os.identifier.fingerprint) THEN
 								&  (test(IntermediateCode.Section).resolved.os.identifier.fingerprint = section(IntermediateCode.Section).resolved.os.identifier.fingerprint) THEN
-									msg := "duplicate fingerPrints: ";
+									msg := "duplicate fingerprints: ";
 									ObjectFile.SegmentedNameToString(section(IntermediateCode.Section).resolved.os.identifier.name,name);
 									ObjectFile.SegmentedNameToString(section(IntermediateCode.Section).resolved.os.identifier.name,name);
 									Strings.Append(msg, name);
 									Strings.Append(msg, name);
 									Strings.Append(msg, ", ");
 									Strings.Append(msg, ", ");
@@ -282,7 +282,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 						import := import.nextImport;
 						import := import.nextImport;
 					END;
 					END;
 				END;
 				END;
-				WriteHeader(writer,binary,module.allSections, poolMap, offers, requires, fingerPrinter);
+				WriteHeader(writer,binary,module.allSections, poolMap, offers, requires, fingerprinter);
 				INC(statHeaders); INC(statHeadersSize, writer.Pos()-pos);
 				INC(statHeaders); INC(statHeadersSize, writer.Pos()-pos);
 				result := ExportSections (module.allSections);
 				result := ExportSections (module.allSections);
 				INC(statModules); INC(statModulesSize, writer.Pos()-pos);
 				INC(statModules); INC(statModulesSize, writer.Pos()-pos);
@@ -308,7 +308,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 				RETURN FALSE;
 				RETURN FALSE;
 			END;
 			END;
 
 
-			NEW (fingerPrinter);
+			NEW (fingerprinter);
 			Files.OpenWriter (writer, file, 0);
 			Files.OpenWriter (writer, file, 0);
 			IF ExportModule (module(Sections.Module)) THEN
 			IF ExportModule (module(Sections.Module)) THEN
 				writer.Update;
 				writer.Update;
@@ -344,8 +344,8 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 
 
 	END ObjectFileFormat;
 	END ObjectFileFormat;
 
 
-	PROCEDURE GetFingerPrint (section: Sections.Section; fingerPrinter: FingerPrinter.FingerPrinter): LONGINT;
-	VAR fingerPrint: SyntaxTree.FingerPrint; fp: LONGINT; string: Basic.SectionName;
+	PROCEDURE GetFingerprint (section: Sections.Section; fingerprinter: Fingerprinter.Fingerprinter): LONGINT;
+	VAR fingerprint: SyntaxTree.Fingerprint; fp: LONGINT; string: Basic.SectionName;
 	BEGIN
 	BEGIN
 		IF section.fingerprint # 0 THEN
 		IF section.fingerprint # 0 THEN
 			fp := section.fingerprint
 			fp := section.fingerprint
@@ -353,14 +353,14 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 			fp := 0;
 			fp := 0;
 			IF (section(IntermediateCode.Section).resolved # NIL) THEN
 			IF (section(IntermediateCode.Section).resolved # NIL) THEN
 				Basic.SegmentedNameToString(section.name, string);
 				Basic.SegmentedNameToString(section.name, string);
-				FingerPrinter.FPString(fp, string)
+				Fingerprinter.FPString(fp, string)
 			END
 			END
-		ELSIF fingerPrinter # NIL THEN
-			fingerPrint := fingerPrinter.SymbolFP (section.symbol);
-			fp := fingerPrint.shallow;
+		ELSIF fingerprinter # NIL THEN
+			fingerprint := fingerprinter.SymbolFP (section.symbol);
+			fp := fingerprint.shallow;
 		END;
 		END;
 		RETURN fp
 		RETURN fp
-	END GetFingerPrint;
+	END GetFingerprint;
 
 
 	PROCEDURE CheckAlias(sections: Sections.SectionList; VAR identifier: ObjectFile.Identifier; VAR offset: LONGINT);
 	PROCEDURE CheckAlias(sections: Sections.SectionList; VAR identifier: ObjectFile.Identifier; VAR offset: LONGINT);
 	VAR section: Sections.Section; alias: BinaryCode.Section;
 	VAR section: Sections.Section; alias: BinaryCode.Section;
@@ -434,7 +434,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 	BEGIN
 	BEGIN
 		fixup := from.fixupList.firstFixup; i := 0; fixups := to.os.fixups; fixupList := to.os.fixup;
 		fixup := from.fixupList.firstFixup; i := 0; fixups := to.os.fixups; fixupList := to.os.fixup;
 		WHILE fixup # NIL DO
 		WHILE fixup # NIL DO
-			(*! fingerprint := GetFingerPrint(fixup.symbol, fingerPrinter);  *)
+			(*! fingerprint := GetFingerprint(fixup.symbol, fingerprinter);  *)
 			aliasSymbol := fixup.symbol;
 			aliasSymbol := fixup.symbol;
 			CheckAlias(sections, aliasSymbol, aliasOffset);
 			CheckAlias(sections, aliasSymbol, aliasOffset);
 			IF PatchFixups & (aliasSymbol.name = to.os.identifier.name) & (fixup.mode = BinaryCode.Relative) THEN
 			IF PatchFixups & (aliasSymbol.name = to.os.identifier.name) & (fixup.mode = BinaryCode.Relative) THEN
@@ -449,12 +449,12 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 		from.fixupList.InitFixupList; (* delete the source list *)
 		from.fixupList.InitFixupList; (* delete the source list *)
 	END CopyFixups;
 	END CopyFixups;
 
 
-	PROCEDURE UpdateAliases (section: BinaryCode.Section;  fingerPrinter: FingerPrinter.FingerPrinter);
+	PROCEDURE UpdateAliases (section: BinaryCode.Section;  fingerprinter: Fingerprinter.Fingerprinter);
 	VAR alias: BinaryCode.Alias; i: INTEGER; aliasList: ObjectFile.Aliases; aliases: LONGINT; index: LONGINT;
 	VAR alias: BinaryCode.Alias; i: INTEGER; aliasList: ObjectFile.Aliases; aliases: LONGINT; index: LONGINT;
 	BEGIN
 	BEGIN
 		alias := section.aliasList.firstAlias; i := 0; aliases := 0; aliasList := NIL;
 		alias := section.aliasList.firstAlias; i := 0; aliases := 0; aliasList := NIL;
 		WHILE alias # NIL DO
 		WHILE alias # NIL DO
-			(*! fingerprint := GetFingerPrint(alias.symbol, fingerPrinter);  *)
+			(*! fingerprint := GetFingerprint(alias.symbol, fingerprinter);  *)
 			index := ObjectFile.AddAlias(aliases, aliasList, alias.identifier.name, alias.identifier.fingerprint, alias.offset);
 			index := ObjectFile.AddAlias(aliases, aliasList, alias.identifier.name, alias.identifier.fingerprint, alias.offset);
 			alias := alias.nextAlias; INC (i);
 			alias := alias.nextAlias; INC (i);
 		END;
 		END;
@@ -500,7 +500,7 @@ TYPE ObjectFileFormat* = OBJECT (Formats.ObjectFileFormat)
 		RETURN version;
 		RETURN version;
 	END ReadHeader;
 	END ReadHeader;
 
 
-	PROCEDURE WriteHeader(writer: Streams.Writer; binary: BOOLEAN; sections: Sections.SectionList; VAR poolMap: ObjectFile.PoolMap; offers, requires: ObjectFile.NameList; fingerPrinter:FingerPrinter.FingerPrinter);
+	PROCEDURE WriteHeader(writer: Streams.Writer; binary: BOOLEAN; sections: Sections.SectionList; VAR poolMap: ObjectFile.PoolMap; offers, requires: ObjectFile.NameList; fingerprinter:Fingerprinter.Fingerprinter);
 	VAR i: LONGINT; section: Sections.Section;
 	VAR i: LONGINT; section: Sections.Section;
 
 
 		PROCEDURE ProcessSection(section: IntermediateCode.Section);
 		PROCEDURE ProcessSection(section: IntermediateCode.Section);

+ 1 - 1
source/FoxGlobal.Mod

@@ -39,7 +39,7 @@ CONST
 	StringRealtime* = "REALTIME";
 	StringRealtime* = "REALTIME";
 	StringDynamic* = "DYNAMIC";
 	StringDynamic* = "DYNAMIC";
 	
 	
-	StringFingerprint*="FingerPrint";
+	StringFingerprint*="Fingerprint";
 	
 	
 	StringInstructionWidth*="InstructionWidth";
 	StringInstructionWidth*="InstructionWidth";
 	StringDataMemorySize*= "DataMemorySize";
 	StringDataMemorySize*= "DataMemorySize";

+ 8 - 8
source/FoxInterfaceComparison.Mod

@@ -1,6 +1,6 @@
 MODULE FoxInterfaceComparison; (** AUTHOR "fof"; PURPOSE "compare interfaces / check symbol file compliances"; *)
 MODULE FoxInterfaceComparison; (** AUTHOR "fof"; PURPOSE "compare interfaces / check symbol file compliances"; *)
 
 
-IMPORT Basic := FoxBasic, SyntaxTree := FoxSyntaxTree, Formats := FoxFormats, FingerPrinter := FoxFingerPrinter, Global := FoxGlobal, SemanticChecker := FoxSemanticChecker, Diagnostics, Strings, D := Debugging;
+IMPORT Basic := FoxBasic, SyntaxTree := FoxSyntaxTree, Formats := FoxFormats, Fingerprinter := FoxFingerprinter, Global := FoxGlobal, SemanticChecker := FoxSemanticChecker, Diagnostics, Strings, D := Debugging;
 
 
 CONST
 CONST
 	Redefined*=0;
 	Redefined*=0;
@@ -8,10 +8,10 @@ CONST
 	Trace=FALSE;
 	Trace=FALSE;
 
 
 	PROCEDURE CompareThis*(module: SyntaxTree.Module; symbolFileFormat: Formats.SymbolFileFormat; diagnostics: Diagnostics.Diagnostics; importCache: SyntaxTree.ModuleScope;  VAR flags: SET);
 	PROCEDURE CompareThis*(module: SyntaxTree.Module; symbolFileFormat: Formats.SymbolFileFormat; diagnostics: Diagnostics.Diagnostics; importCache: SyntaxTree.ModuleScope;  VAR flags: SET);
-	VAR fname: Basic.FileName; importedModule: SyntaxTree.Module; fingerprinter: FingerPrinter.FingerPrinter;
+	VAR fname: Basic.FileName; importedModule: SyntaxTree.Module; fingerprinter: Fingerprinter.Fingerprinter;
 
 
 	PROCEDURE SameType(new,old: SyntaxTree.Type): BOOLEAN;
 	PROCEDURE SameType(new,old: SyntaxTree.Type): BOOLEAN;
-	VAR fpNew,fpOld: SyntaxTree.FingerPrint;
+	VAR fpNew,fpOld: SyntaxTree.Fingerprint;
 	BEGIN
 	BEGIN
 		old := old.resolved; new := new.resolved;
 		old := old.resolved; new := new.resolved;
 
 
@@ -25,14 +25,14 @@ CONST
 		fpOld := fingerprinter.TypeFP(old);
 		fpOld := fingerprinter.TypeFP(old);
 		IF Trace THEN
 		IF Trace THEN
 			D.String("-->"); D.Ln;
 			D.String("-->"); D.Ln;
-			D.String("fpOld "); FingerPrinter.DumpFingerPrint(D.Log,fpOld); D.Ln;
-			D.String("fpNew "); FingerPrinter.DumpFingerPrint(D.Log,fpNew); D.Ln;
+			D.String("fpOld "); Fingerprinter.DumpFingerprint(D.Log,fpOld); D.Ln;
+			D.String("fpNew "); Fingerprinter.DumpFingerprint(D.Log,fpNew); D.Ln;
 		END;
 		END;
 		RETURN (fpNew.private = fpOld.private) & (fpNew.public = fpOld.public) & (fpNew.shallow = fpOld.shallow);
 		RETURN (fpNew.private = fpOld.private) & (fpNew.public = fpOld.public) & (fpNew.shallow = fpOld.shallow);
 	END SameType;
 	END SameType;
 
 
 	PROCEDURE CompareSymbols(new,old: SyntaxTree.Symbol): BOOLEAN;
 	PROCEDURE CompareSymbols(new,old: SyntaxTree.Symbol): BOOLEAN;
-	VAR fpNew,fpOld: SyntaxTree.FingerPrint; oldType, newType: SyntaxTree.Type;
+	VAR fpNew,fpOld: SyntaxTree.Fingerprint; oldType, newType: SyntaxTree.Type;
 	BEGIN
 	BEGIN
 		fpNew := fingerprinter.SymbolFP(new);
 		fpNew := fingerprinter.SymbolFP(new);
 		fpOld := fingerprinter.SymbolFP(old);
 		fpOld := fingerprinter.SymbolFP(old);
@@ -42,8 +42,8 @@ CONST
 		IF (fpNew.shallow # fpOld.shallow) THEN
 		IF (fpNew.shallow # fpOld.shallow) THEN
 			IF Trace THEN
 			IF Trace THEN
 				D.String("fp of "); D.Str0(new.name); D.Ln;
 				D.String("fp of "); D.Str0(new.name); D.Ln;
-				D.String("fpOld "); FingerPrinter.DumpFingerPrint(D.Log,fpOld); D.Ln;
-				D.String("fpNew "); FingerPrinter.DumpFingerPrint(D.Log,fpNew); D.Ln;
+				D.String("fpOld "); Fingerprinter.DumpFingerprint(D.Log,fpOld); D.Ln;
+				D.String("fpNew "); Fingerprinter.DumpFingerprint(D.Log,fpNew); D.Ln;
 			END;
 			END;
 			RETURN FALSE
 			RETURN FALSE
 		ELSIF (new IS SyntaxTree.TypeDeclaration) & (old IS SyntaxTree.TypeDeclaration) THEN
 		ELSIF (new IS SyntaxTree.TypeDeclaration) & (old IS SyntaxTree.TypeDeclaration) THEN

+ 24 - 24
source/FoxIntermediateBackend.Mod

@@ -3,7 +3,7 @@ MODULE FoxIntermediateBackend; (** AUTHOR ""; PURPOSE ""; *)
 IMPORT Basic := FoxBasic, SyntaxTree := FoxSyntaxTree, SemanticChecker := FoxSemanticChecker, Backend := FoxBackend, Global := FoxGlobal,
 IMPORT Basic := FoxBasic, SyntaxTree := FoxSyntaxTree, SemanticChecker := FoxSemanticChecker, Backend := FoxBackend, Global := FoxGlobal,
 	Scanner := FoxScanner, IntermediateCode := FoxIntermediateCode, Sections := FoxSections, BinaryCode := FoxBinaryCode,  Printout := FoxPrintout,
 	Scanner := FoxScanner, IntermediateCode := FoxIntermediateCode, Sections := FoxSections, BinaryCode := FoxBinaryCode,  Printout := FoxPrintout,
 	SYSTEM, Strings, Options, Streams, Compiler, Formats := FoxFormats, SymbolFileFormat := FoxTextualSymbolFile, D := Debugging,
 	SYSTEM, Strings, Options, Streams, Compiler, Formats := FoxFormats, SymbolFileFormat := FoxTextualSymbolFile, D := Debugging,
-	FingerPrinter := FoxFingerPrinter, StringPool, CRC;
+	Fingerprinter := FoxFingerprinter, StringPool, CRC;
 
 
 CONST
 CONST
 		(* operand modes *)
 		(* operand modes *)
@@ -1327,7 +1327,7 @@ TYPE
 		numberProcedures: LONGINT;
 		numberProcedures: LONGINT;
 		procedureResultDesignator : SyntaxTree.Designator;
 		procedureResultDesignator : SyntaxTree.Designator;
 		operatorInitializationCodeSection: IntermediateCode.Section;
 		operatorInitializationCodeSection: IntermediateCode.Section;
-		fingerPrinter: FingerPrinter.FingerPrinter;
+		fingerprinter: Fingerprinter.Fingerprinter;
 
 
 		temporaries: Variables;
 		temporaries: Variables;
 		canBeLoaded : BOOLEAN;
 		canBeLoaded : BOOLEAN;
@@ -1399,7 +1399,7 @@ TYPE
 			NEW(registerUsageCount);
 			NEW(registerUsageCount);
 			usedRegisters := NIL;
 			usedRegisters := NIL;
 			procedureResultDesignator := NIL;
 			procedureResultDesignator := NIL;
-			NEW(fingerPrinter);
+			NEW(fingerprinter);
 			NEW(temporaries);
 			NEW(temporaries);
 			currentIsInline := FALSE;
 			currentIsInline := FALSE;
 			NeedDescriptor := FALSE;
 			NeedDescriptor := FALSE;
@@ -1436,10 +1436,10 @@ TYPE
 		END ReturnToContext;
 		END ReturnToContext;
 
 
 		PROCEDURE NewSection(list: Sections.SectionList; type: SHORTINT; CONST name: Basic.SegmentedName; syntaxTreeSymbol: SyntaxTree.Symbol; dump: BOOLEAN): IntermediateCode.Section;
 		PROCEDURE NewSection(list: Sections.SectionList; type: SHORTINT; CONST name: Basic.SegmentedName; syntaxTreeSymbol: SyntaxTree.Symbol; dump: BOOLEAN): IntermediateCode.Section;
-		VAR fp: SyntaxTree.FingerPrint; section: IntermediateCode.Section;
+		VAR fp: SyntaxTree.Fingerprint; section: IntermediateCode.Section;
 		BEGIN
 		BEGIN
 			IF (syntaxTreeSymbol # NIL) & ~((syntaxTreeSymbol IS SyntaxTree.Procedure) & (syntaxTreeSymbol(SyntaxTree.Procedure).isInline)) THEN
 			IF (syntaxTreeSymbol # NIL) & ~((syntaxTreeSymbol IS SyntaxTree.Procedure) & (syntaxTreeSymbol(SyntaxTree.Procedure).isInline)) THEN
-				fp := fingerPrinter.SymbolFP(syntaxTreeSymbol)
+				fp := fingerprinter.SymbolFP(syntaxTreeSymbol)
 			END;
 			END;
 			section := IntermediateCode.NewSection(list, type, name, syntaxTreeSymbol, dump);
 			section := IntermediateCode.NewSection(list, type, name, syntaxTreeSymbol, dump);
 			section.SetExported(IsExported(syntaxTreeSymbol));
 			section.SetExported(IsExported(syntaxTreeSymbol));
@@ -1456,13 +1456,13 @@ TYPE
 
 
 		PROCEDURE GetFingerprintString(symbol: SyntaxTree.Symbol; VAR string: ARRAY OF CHAR);
 		PROCEDURE GetFingerprintString(symbol: SyntaxTree.Symbol; VAR string: ARRAY OF CHAR);
 		VAR
 		VAR
-			fingerPrint: SyntaxTree.FingerPrint;
-			fingerPrintString: ARRAY 32 OF CHAR;
+			fingerprint: SyntaxTree.Fingerprint;
+			fingerprintString: ARRAY 32 OF CHAR;
 		BEGIN
 		BEGIN
-			fingerPrint := fingerPrinter.SymbolFP(symbol);
+			fingerprint := fingerprinter.SymbolFP(symbol);
 			string := "[";
 			string := "[";
-			Strings.IntToHexStr(fingerPrint.public, 8, fingerPrintString);
-			Strings.Append(string, fingerPrintString);
+			Strings.IntToHexStr(fingerprint.public, 8, fingerprintString);
+			Strings.Append(string, fingerprintString);
 			Strings.Append(string, "]");
 			Strings.Append(string, "]");
 		END GetFingerprintString;
 		END GetFingerprintString;
 		
 		
@@ -6185,7 +6185,7 @@ TYPE
 			recordType: SyntaxTree.RecordType;
 			recordType: SyntaxTree.RecordType;
 			operatorSelectionProcedureOperand: Operand;
 			operatorSelectionProcedureOperand: Operand;
 			operatorSelectionProcedure: SyntaxTree.Procedure;
 			operatorSelectionProcedure: SyntaxTree.Procedure;
-			fingerPrint: SyntaxTree.FingerPrint;
+			fingerprint: SyntaxTree.Fingerprint;
 			isCallOfDynamicOperator, hasDynamicOperands: BOOLEAN;
 			isCallOfDynamicOperator, hasDynamicOperands: BOOLEAN;
 			identifierNumber: LONGINT;
 			identifierNumber: LONGINT;
 
 
@@ -6520,8 +6520,8 @@ TYPE
 
 
 							(* push fingerprint *)
 							(* push fingerprint *)
 							(* IF dump # NIL THEN dump.String("push fingerprint"); dump.Ln; dump.Update END; *) (* TENTATIVE *)
 							(* IF dump # NIL THEN dump.String("push fingerprint"); dump.Ln; dump.Update END; *) (* TENTATIVE *)
-							fingerPrint := fingerPrinter.TypeFP(formalParameter.type.resolved);
-							Emit(Push(position,IntermediateCode.Immediate(IntermediateCode.GetType(system, system.longintType), fingerPrint.public))) (* TODO: push the type's fingerprint *)
+							fingerprint := fingerprinter.TypeFP(formalParameter.type.resolved);
+							Emit(Push(position,IntermediateCode.Immediate(IntermediateCode.GetType(system, system.longintType), fingerprint.public))) (* TODO: push the type's fingerprint *)
 						END
 						END
 					END;
 					END;
 					formalParameter := formalParameter.nextParameter
 					formalParameter := formalParameter.nextParameter
@@ -6870,7 +6870,7 @@ TYPE
 			VAR
 			VAR
 				arg: IntermediateCode.Operand;
 				arg: IntermediateCode.Operand;
 				recordType: SyntaxTree.RecordType;
 				recordType: SyntaxTree.RecordType;
-				fingerPrint: SyntaxTree.FingerPrint;
+				fingerprint: SyntaxTree.Fingerprint;
 			BEGIN
 			BEGIN
 				IF type = NIL THEN
 				IF type = NIL THEN
 					(* no type: push 'NoType' *)
 					(* no type: push 'NoType' *)
@@ -6884,8 +6884,8 @@ TYPE
 				ELSE
 				ELSE
 					(* non-pointer to record type: push fingerprint *)
 					(* non-pointer to record type: push fingerprint *)
 					(* IF dump # NIL THEN dump.String("push fingerprint"); dump.Ln; dump.Update END; *) (* TENTATIVE *)
 					(* IF dump # NIL THEN dump.String("push fingerprint"); dump.Ln; dump.Update END; *) (* TENTATIVE *)
-					fingerPrint := fingerPrinter.TypeFP(type.resolved);
-					arg := IntermediateCode.Immediate(IntermediateCode.GetType(system, system.longintType), fingerPrint.public)
+					fingerprint := fingerprinter.TypeFP(type.resolved);
+					arg := IntermediateCode.Immediate(IntermediateCode.GetType(system, system.longintType), fingerprint.public)
 				END;
 				END;
 				operatorInitializationCodeSection.Emit(Push(position,arg))
 				operatorInitializationCodeSection.Emit(Push(position,arg))
 			END PushTypeInfo;
 			END PushTypeInfo;
@@ -12346,7 +12346,7 @@ TYPE
 		PROCEDURE GetFingerprint(symbol: SyntaxTree.Symbol): LONGINT;
 		PROCEDURE GetFingerprint(symbol: SyntaxTree.Symbol): LONGINT;
 		BEGIN
 		BEGIN
 			IF (symbol # NIL) THEN
 			IF (symbol # NIL) THEN
-				RETURN fingerPrinter.SymbolFP(symbol).public
+				RETURN fingerprinter.SymbolFP(symbol).public
 			ELSE
 			ELSE
 				RETURN 0
 				RETURN 0
 			END;
 			END;
@@ -12962,7 +12962,7 @@ TYPE
 
 
 		PROCEDURE ExportDesc(source: IntermediateCode.Section);
 		PROCEDURE ExportDesc(source: IntermediateCode.Section);
 		VAR
 		VAR
-			i: LONGINT; section: Sections.Section; fingerPrinter : FingerPrinter.FingerPrinter;
+			i: LONGINT; section: Sections.Section; fingerprinter : Fingerprinter.Fingerprinter;
 			sectionArray: POINTER TO ARRAY OF Sections.Section;
 			sectionArray: POINTER TO ARRAY OF Sections.Section;
 			poolMap: Basic.HashTableInt;
 			poolMap: Basic.HashTableInt;
 			namePool: IntermediateCode.Section;
 			namePool: IntermediateCode.Section;
@@ -13021,12 +13021,12 @@ TYPE
 		PROCEDURE ExportDesc2(
 		PROCEDURE ExportDesc2(
 			source: IntermediateCode.Section; 
 			source: IntermediateCode.Section; 
 			namePool: IntermediateCode.Section;
 			namePool: IntermediateCode.Section;
-			fingerPrinter: FingerPrinter.FingerPrinter;
+			fingerprinter: Fingerprinter.Fingerprinter;
 			symbol: Sections.Section;
 			symbol: Sections.Section;
 			name: StringPool.Index;
 			name: StringPool.Index;
 			VAR patchAdr: LONGINT
 			VAR patchAdr: LONGINT
 			): BOOLEAN;
 			): BOOLEAN;
-		VAR fingerPrint: SyntaxTree.FingerPrint; 
+		VAR fingerprint: SyntaxTree.Fingerprint; 
 		BEGIN
 		BEGIN
 			(*IF  (implementationVisitor.backend.cooperative) & (symbol.symbol = NIL) OR (symbol.symbol # NIL) & (symbol.type # Sections.InitCodeSection)
 			(*IF  (implementationVisitor.backend.cooperative) & (symbol.symbol = NIL) OR (symbol.symbol # NIL) & (symbol.type # Sections.InitCodeSection)
 				& (symbol.type # Sections.InlineCodeSection)
 				& (symbol.type # Sections.InlineCodeSection)
@@ -13039,8 +13039,8 @@ TYPE
 
 
 				IF (symbol = NIL) OR (symbol # NIL) & (symbol.type # Sections.InlineCodeSection) THEN
 				IF (symbol = NIL) OR (symbol # NIL) & (symbol.type # Sections.InlineCodeSection) THEN
 					IF (symbol # NIL) & (symbol.symbol # NIL) THEN 
 					IF (symbol # NIL) & (symbol.symbol # NIL) THEN 
-						fingerPrint := fingerPrinter.SymbolFP(symbol.symbol);
-						Longint(source,fingerPrint.public);
+						fingerprint := fingerprinter.SymbolFP(symbol.symbol);
+						Longint(source,fingerprint.public);
 					ELSE
 					ELSE
 						Longint(source, 0);
 						Longint(source, 0);
 					END;
 					END;
@@ -13124,7 +13124,7 @@ TYPE
 								ELSE
 								ELSE
 									sym := NIL;
 									sym := NIL;
 								END;
 								END;
-								IF ExportDesc2(scopes[level].section, namePool, fingerPrinter, sym, this[level], scopes[level].patchAdr)
+								IF ExportDesc2(scopes[level].section, namePool, fingerprinter, sym, this[level], scopes[level].patchAdr)
 								THEN
 								THEN
 									INC(scopes[olevel].elements);
 									INC(scopes[olevel].elements);
 								END;
 								END;
@@ -13160,7 +13160,7 @@ TYPE
 			END Export;
 			END Export;
 			
 			
 		BEGIN
 		BEGIN
-			NEW(fingerPrinter);
+			NEW(fingerprinter);
 			NEW(poolMap, 64);
 			NEW(poolMap, 64);
 			(* this is the name pool private to the export table -- it is sorted and should not be mixed / used for other names in a module *)
 			(* this is the name pool private to the export table -- it is sorted and should not be mixed / used for other names in a module *)
 			namePool := Block("Heaps","SystemBlockDesc",".@NamePool",namePoolOffset); 
 			namePool := Block("Heaps","SystemBlockDesc",".@NamePool",namePoolOffset); 

+ 3 - 3
source/FoxMinosObjectFile.Mod

@@ -1,7 +1,7 @@
 MODULE FoxMinosObjectFile; (** AUTHOR "fof"; PURPOSE "Oberon Compiler Minos Object File Writer"; *)
 MODULE FoxMinosObjectFile; (** AUTHOR "fof"; PURPOSE "Oberon Compiler Minos Object File Writer"; *)
 
 
 IMPORT
 IMPORT
-	Scanner := FoxScanner, Basic := FoxBasic, SyntaxTree := FoxSyntaxTree, Global := FoxGlobal, SemanticChecker := FoxSemanticChecker, FingerPrinter := FoxFingerPrinter, Sections := FoxSections,
+	Scanner := FoxScanner, Basic := FoxBasic, SyntaxTree := FoxSyntaxTree, Global := FoxGlobal, SemanticChecker := FoxSemanticChecker, Fingerprinter := FoxFingerprinter, Sections := FoxSections,
 	Streams, D := Debugging, Files, SYSTEM,Strings, BinaryCode := FoxBinaryCode, KernelLog, Diagnostics, SymbolFileFormat := FoxTextualSymbolFile, Options,
 	Streams, D := Debugging, Files, SYSTEM,Strings, BinaryCode := FoxBinaryCode, KernelLog, Diagnostics, SymbolFileFormat := FoxTextualSymbolFile, Options,
 	Formats := FoxFormats, IntermediateCode := FoxIntermediateCode, Machine
 	Formats := FoxFormats, IntermediateCode := FoxIntermediateCode, Machine
 	;
 	;
@@ -260,9 +260,9 @@ TYPE
 
 
 	PROCEDURE WriteObjectFile*(w:Streams.Writer; module: Sections.Module; symbolFile: Files.File; diagnostics: Diagnostics.Diagnostics): BOOLEAN;
 	PROCEDURE WriteObjectFile*(w:Streams.Writer; module: Sections.Module; symbolFile: Files.File; diagnostics: Diagnostics.Diagnostics): BOOLEAN;
 	VAR codeSize, dataSize, bodyOffset: LONGINT;
 	VAR codeSize, dataSize, bodyOffset: LONGINT;
-		moduleScope: SyntaxTree.ModuleScope; fingerprinter: FingerPrinter.FingerPrinter;
+		moduleScope: SyntaxTree.ModuleScope; fingerprinter: Fingerprinter.Fingerprinter;
 		code: ByteArray;
 		code: ByteArray;
-		fp: SyntaxTree.FingerPrint;
+		fp: SyntaxTree.Fingerprint;
 		error : BOOLEAN;
 		error : BOOLEAN;
 		(** helper procedures *)
 		(** helper procedures *)
 		PROCEDURE GetEntries(moduleScope: SyntaxTree.ModuleScope; VAR numberEntries: LONGINT; VAR entries: ARRAY 256 OF IntermediateCode.Section);
 		PROCEDURE GetEntries(moduleScope: SyntaxTree.ModuleScope; VAR numberEntries: LONGINT; VAR entries: ARRAY 256 OF IntermediateCode.Section);

+ 5 - 5
source/FoxPrintout.Mod

@@ -2,7 +2,7 @@ MODULE FoxPrintout; (** AUTHOR "fof & fn"; PURPOSE "Oberon Compiler Module Outpu
 (* (c) fof ETHZ 2009 *)
 (* (c) fof ETHZ 2009 *)
 
 
 IMPORT
 IMPORT
-	Scanner := FoxScanner, SyntaxTree := FoxSyntaxTree, Global := FoxGlobal, Basic := FoxBasic, FingerPrinter := FoxFingerPrinter, Streams, D:=Debugging, SYSTEM;
+	Scanner := FoxScanner, SyntaxTree := FoxSyntaxTree, Global := FoxGlobal, Basic := FoxBasic, Fingerprinter := FoxFingerprinter, Streams, D:=Debugging, SYSTEM;
 
 
 CONST
 CONST
 	(* print modes *)
 	(* print modes *)
@@ -19,7 +19,7 @@ TYPE
 		useCase: BOOLEAN; (* TRUE to enable case conversion in "Identifier" *)
 		useCase: BOOLEAN; (* TRUE to enable case conversion in "Identifier" *)
 
 
 		alertCount, commentCount: LONGINT;
 		alertCount, commentCount: LONGINT;
-		fingerPrinter:FingerPrinter.FingerPrinter;
+		fingerprinter:Fingerprinter.Fingerprinter;
 
 
 		PROCEDURE Small(CONST name: ARRAY OF CHAR; VAR result: ARRAY OF CHAR);
 		PROCEDURE Small(CONST name: ARRAY OF CHAR; VAR result: ARRAY OF CHAR);
 		VAR ch: CHAR; i: LONGINT;
 		VAR ch: CHAR; i: LONGINT;
@@ -1187,7 +1187,7 @@ TYPE
 		END Access;
 		END Access;
 
 
 		PROCEDURE VisitProcedure*(x: SyntaxTree.Procedure);
 		PROCEDURE VisitProcedure*(x: SyntaxTree.Procedure);
-		VAR type: SyntaxTree.ProcedureType;  first: BOOLEAN; fp: SyntaxTree.FingerPrint;
+		VAR type: SyntaxTree.ProcedureType;  first: BOOLEAN; fp: SyntaxTree.Fingerprint;
 		BEGIN
 		BEGIN
 			IF Visible(x) THEN
 			IF Visible(x) THEN
 				
 				
@@ -1218,8 +1218,8 @@ TYPE
 				END;
 				END;
 
 
 				IF x.isInline & (mode = SymbolFile) THEN
 				IF x.isInline & (mode = SymbolFile) THEN
-					IF fingerPrinter = NIL THEN NEW(fingerPrinter) END;
-					fp := fingerPrinter.SymbolFP(x);
+					IF fingerprinter = NIL THEN NEW(fingerprinter) END;
+					fp := fingerprinter.SymbolFP(x);
 					Value(Global.NameFingerprint, fp.public, first) 
 					Value(Global.NameFingerprint, fp.public, first) 
 				END;
 				END;
 				FlagEnd(first);
 				FlagEnd(first);

+ 3 - 3
source/FoxSemanticChecker.Mod

@@ -6190,7 +6190,7 @@ TYPE
 			value: Basic.Integer;
 			value: Basic.Integer;
 			modifiers: SyntaxTree.Modifier; recentIsRealtime, recentIsBodyProcedure: BOOLEAN;
 			modifiers: SyntaxTree.Modifier; recentIsRealtime, recentIsBodyProcedure: BOOLEAN;
 			position: Position;
 			position: Position;
-			fp: SyntaxTree.FingerPrint;
+			fp: SyntaxTree.Fingerprint;
 		BEGIN
 		BEGIN
 			IF Trace THEN D.Str("ResolveProcedure "); D.Str0(procedure.name);  D.Ln;  END;
 			IF Trace THEN D.Str("ResolveProcedure "); D.Str0(procedure.name);  D.Ln;  END;
 			IF IsOberonInline(procedure) THEN
 			IF IsOberonInline(procedure) THEN
@@ -6244,12 +6244,12 @@ TYPE
 				ELSIF HasFlag(modifiers,Global.NameAbstract,position) THEN procedure.SetAbstract(TRUE)
 				ELSIF HasFlag(modifiers,Global.NameAbstract,position) THEN procedure.SetAbstract(TRUE)
 				END;
 				END;
 				IF HasValue(modifiers, Global.NameFingerprint, position, value) THEN 
 				IF HasValue(modifiers, Global.NameFingerprint, position, value) THEN 
-					SyntaxTree.InitFingerPrint(fp);
+					SyntaxTree.InitFingerprint(fp);
 					fp.shallow := LONGINT(value); (* TODO: fix explicit integer truncation *)
 					fp.shallow := LONGINT(value); (* TODO: fix explicit integer truncation *)
 					fp.public := LONGINT(value); (* TODO: fix explicit integer truncation *)
 					fp.public := LONGINT(value); (* TODO: fix explicit integer truncation *)
 					fp.private := LONGINT(value); (* TODO: fix explicit integer truncation *)
 					fp.private := LONGINT(value); (* TODO: fix explicit integer truncation *)
 					fp.shallowAvailable := TRUE;
 					fp.shallowAvailable := TRUE;
-					procedure.SetFingerPrint(fp);
+					procedure.SetFingerprint(fp);
 				END;
 				END;
 
 
 				CheckModifiers(modifiers, TRUE);
 				CheckModifiers(modifiers, TRUE);

+ 16 - 16
source/FoxSyntaxTree.Mod

@@ -49,7 +49,7 @@ CONST
 	SemiDynamic*=4;
 	SemiDynamic*=4;
 
 
 	(** node states, important for checker to avoid cycles *)
 	(** node states, important for checker to avoid cycles *)
-	Undefined*={}; BeingResolved*=1; Resolved*=2; FingerPrinted*=3; Warned*=4;
+	Undefined*={}; BeingResolved*=1; Resolved*=2; Fingerprinted*=3; Warned*=4;
 
 
 	(* context in which a range expression is used *)
 	(* context in which a range expression is used *)
 	ArrayIndex* = 0;
 	ArrayIndex* = 0;
@@ -475,7 +475,7 @@ TYPE
 		read*, write*: POINTER TO ARRAY OF Operator; (* fixed-dim. operators *)
 		read*, write*: POINTER TO ARRAY OF Operator; (* fixed-dim. operators *)
 	END;
 	END;
 
 
-	FingerPrint*= RECORD
+	Fingerprint*= RECORD
 		shallow*,public*, private*: LONGINT;
 		shallow*,public*, private*: LONGINT;
 		shallowAvailable*, deepAvailable*: BOOLEAN;
 		shallowAvailable*, deepAvailable*: BOOLEAN;
 	END;
 	END;
@@ -545,7 +545,7 @@ TYPE
 			state-: SET;
 			state-: SET;
 			hasPointers-: BOOLEAN;
 			hasPointers-: BOOLEAN;
 
 
-			fingerprint-: FingerPrint;
+			fingerprint-: Fingerprint;
 
 
 			isRealtime-: BOOLEAN;
 			isRealtime-: BOOLEAN;
 			recursion: BOOLEAN;
 			recursion: BOOLEAN;
@@ -565,7 +565,7 @@ TYPE
 			isRealtime := FALSE;
 			isRealtime := FALSE;
 			recursion := FALSE;
 			recursion := FALSE;
 			hasPointers := FALSE;
 			hasPointers := FALSE;
-			InitFingerPrint(fingerprint);
+			InitFingerprint(fingerprint);
 		END InitType;
 		END InitType;
 
 
 		
 		
@@ -582,10 +582,10 @@ TYPE
 		BEGIN SELF.position.end := position;
 		BEGIN SELF.position.end := position;
 		END End;
 		END End;
 
 
-		PROCEDURE SetFingerPrint*(CONST fp: FingerPrint);
+		PROCEDURE SetFingerprint*(CONST fp: Fingerprint);
 		BEGIN
 		BEGIN
 			SELF.fingerprint := fp
 			SELF.fingerprint := fp
-		END SetFingerPrint;
+		END SetFingerprint;
 
 
 		PROCEDURE SetState*(state: LONGINT);
 		PROCEDURE SetState*(state: LONGINT);
 		BEGIN	INCL(SELF.state,state);
 		BEGIN	INCL(SELF.state,state);
@@ -2595,16 +2595,16 @@ TYPE
 	(**** values ****)
 	(**** values ****)
 
 
 	Value* = OBJECT (Expression)
 	Value* = OBJECT (Expression)
-	VAR fingerprint-: FingerPrint;
+	VAR fingerprint-: Fingerprint;
 
 
 		PROCEDURE &InitValue(position: Position);
 		PROCEDURE &InitValue(position: Position);
-		BEGIN SELF.position := position; resolved := SELF; InitFingerPrint(fingerprint);
+		BEGIN SELF.position := position; resolved := SELF; InitFingerprint(fingerprint);
 		END InitValue;
 		END InitValue;
 
 
-		PROCEDURE SetFingerPrint*(CONST fp: FingerPrint);
+		PROCEDURE SetFingerprint*(CONST fp: Fingerprint);
 		BEGIN
 		BEGIN
 			SELF.fingerprint := fp
 			SELF.fingerprint := fp
-		END SetFingerPrint;
+		END SetFingerprint;
 
 
 
 
 		PROCEDURE Equals*(v: Value):BOOLEAN;
 		PROCEDURE Equals*(v: Value):BOOLEAN;
@@ -2912,7 +2912,7 @@ TYPE
 		alignment-: LONGINT;
 		alignment-: LONGINT;
 
 
 		position-, end-: Position; state-: SET;
 		position-, end-: Position; state-: SET;
-		fingerprint-: FingerPrint;
+		fingerprint-: Fingerprint;
 
 
 		comment-: Comment;
 		comment-: Comment;
 
 
@@ -2932,7 +2932,7 @@ TYPE
 			alignment := 0; (* take default *)
 			alignment := 0; (* take default *)
 			fixed := FALSE;
 			fixed := FALSE;
 			used := FALSE; written := FALSE;
 			used := FALSE; written := FALSE;
-			InitFingerPrint(fingerprint);
+			InitFingerprint(fingerprint);
 			comment := NIL;
 			comment := NIL;
 		END InitSymbol;
 		END InitSymbol;
 
 
@@ -2940,10 +2940,10 @@ TYPE
 		BEGIN SELF.alignment := align; fixed := fix;
 		BEGIN SELF.alignment := align; fixed := fix;
 		END SetAlignment;
 		END SetAlignment;
 
 
-		PROCEDURE SetFingerPrint*(CONST fp: FingerPrint);
+		PROCEDURE SetFingerprint*(CONST fp: Fingerprint);
 		BEGIN
 		BEGIN
 			SELF.fingerprint := fp
 			SELF.fingerprint := fp
-		END SetFingerPrint;
+		END SetFingerprint;
 
 
 		PROCEDURE SetState*(state: LONGINT);
 		PROCEDURE SetState*(state: LONGINT);
 		BEGIN	INCL(SELF.state,state);
 		BEGIN	INCL(SELF.state,state);
@@ -5143,14 +5143,14 @@ VAR
 
 
 	indexListSeparator-: Expression;
 	indexListSeparator-: Expression;
 
 
-	PROCEDURE InitFingerPrint*(VAR fingerprint: FingerPrint);
+	PROCEDURE InitFingerprint*(VAR fingerprint: Fingerprint);
 	BEGIN
 	BEGIN
 		fingerprint.shallowAvailable := FALSE;
 		fingerprint.shallowAvailable := FALSE;
 		fingerprint.deepAvailable := FALSE;
 		fingerprint.deepAvailable := FALSE;
 		fingerprint.shallow := 0;
 		fingerprint.shallow := 0;
 		fingerprint.private := 0;
 		fingerprint.private := 0;
 		fingerprint.public := 0;
 		fingerprint.public := 0;
-	END InitFingerPrint;
+	END InitFingerprint;
 
 
 	PROCEDURE NewModule*( CONST sourceName: ARRAY OF CHAR; position: Position;  name: Identifier;scope: ModuleScope; case: LONGINT ): Module;
 	PROCEDURE NewModule*( CONST sourceName: ARRAY OF CHAR; position: Position;  name: Identifier;scope: ModuleScope; case: LONGINT ): Module;
 	VAR module: Module;
 	VAR module: Module;

+ 1 - 1
source/Release.Tool

@@ -708,7 +708,7 @@ PACKAGE Compiler ARCHIVE "Compiler.zip" SOURCE "CompilerSrc.zip" DESCRIPTION "Ac
 	Fox.Tool
 	Fox.Tool
 	BitSets.Mod ObjectFile.Mod GenericLinker.Mod Linker.Mod
 	BitSets.Mod ObjectFile.Mod GenericLinker.Mod Linker.Mod
 	FoxBasic.Mod FoxProgTools.Mod FoxScanner.Mod FoxCSharpScanner.Mod FoxSyntaxTree.Mod FoxGlobal.Mod
 	FoxBasic.Mod FoxProgTools.Mod FoxScanner.Mod FoxCSharpScanner.Mod FoxSyntaxTree.Mod FoxGlobal.Mod
-	FoxActiveCells.Mod FoxHardware.Mod FoxFormats.Mod FoxFingerPrinter.Mod FoxPrintout.Mod
+	FoxActiveCells.Mod FoxHardware.Mod FoxFormats.Mod FoxFingerprinter.Mod FoxPrintout.Mod
 	FoxParser.Mod FoxCSharpParser.Mod FoxSemanticChecker.Mod
 	FoxParser.Mod FoxCSharpParser.Mod FoxSemanticChecker.Mod
 	FoxBackend.Mod FoxSections.Mod FoxFrontend.Mod
 	FoxBackend.Mod FoxSections.Mod FoxFrontend.Mod
 	Compiler.Mod FoxOberonFrontend.Mod FoxCSharpFrontend.Mod
 	Compiler.Mod FoxOberonFrontend.Mod FoxCSharpFrontend.Mod

+ 2 - 2
tools/builds/a2/makefile

@@ -30,11 +30,11 @@ FoxArrayBase$(object): ComplexNumbers$(object)
 
 
 # Fox Compiler
 # Fox Compiler
 
 
-oberon: $(addsuffix $(object), Builtins Trace Glue Unix Machine Heaps Modules Objects RealConversions Streams Kernel Reflection KernelLog TrapWriters Commands Pipes StdIO Traps Files UnixFiles BitSets StringPool ObjectFile Diagnostics Reals Clock Dates Strings GenericLinker Loader WMRectangles CLUTs Plugins Displays Raster UTF8Strings WMRasterScale SoundDevices XMLObjects DynamicStrings XML XMLScanner XMLParser Configuration Inflate CRC Unzip WMEvents Locks FP1616 Texts Archives Codecs WMGraphics WMDefaultFont StdIOShell Shell Options ProcessInfo0 ProcessInfo SystemVersion System Debugging FoxBasic FoxScanner FoxSyntaxTree FoxGlobal FoxParser FoxFingerPrinter FoxPrintout FoxFormats FoxSemanticChecker FoxBackend FoxFrontend Compiler FoxOberonFrontend FoxSections FoxBinaryCode FoxIntermediateCode FoxInterfaceComparison FoxTextualSymbolFile FoxIntermediateBackend FoxAMD64InstructionSet FoxAMD64Assembler FoxGenericObjectFile FoxCodeGenerators FoxAMDBackend FoxDisassembler FoxARMInstructionSet FoxAssembler FoxARMAssembler FoxARMBackend MathL Math ComplexNumbers FoxArrayBase FoxArrayBaseOptimized Localization Repositories UnicodeProperties TextUtilities TestSuite Versioning CompilerInterface FoxTest Linker DependencyWalker ReleaseThreadPool Zlib ZlibBuffers ZlibInflate ZlibReaders ZlibDeflate ZlibWriters Zip Release)
+oberon: $(addsuffix $(object), Builtins Trace Glue Unix Machine Heaps Modules Objects RealConversions Streams Kernel Reflection KernelLog TrapWriters Commands Pipes StdIO Traps Files UnixFiles BitSets StringPool ObjectFile Diagnostics Reals Clock Dates Strings GenericLinker Loader WMRectangles CLUTs Plugins Displays Raster UTF8Strings WMRasterScale SoundDevices XMLObjects DynamicStrings XML XMLScanner XMLParser Configuration Inflate CRC Unzip WMEvents Locks FP1616 Texts Archives Codecs WMGraphics WMDefaultFont StdIOShell Shell Options ProcessInfo0 ProcessInfo SystemVersion System Debugging FoxBasic FoxScanner FoxSyntaxTree FoxGlobal FoxParser FoxFingerprinter FoxPrintout FoxFormats FoxSemanticChecker FoxBackend FoxFrontend Compiler FoxOberonFrontend FoxSections FoxBinaryCode FoxIntermediateCode FoxInterfaceComparison FoxTextualSymbolFile FoxIntermediateBackend FoxAMD64InstructionSet FoxAMD64Assembler FoxGenericObjectFile FoxCodeGenerators FoxAMDBackend FoxDisassembler FoxARMInstructionSet FoxAssembler FoxARMAssembler FoxARMBackend MathL Math ComplexNumbers FoxArrayBase FoxArrayBaseOptimized Localization Repositories UnicodeProperties TextUtilities TestSuite Versioning CompilerInterface FoxTest Linker DependencyWalker ReleaseThreadPool Zlib ZlibBuffers ZlibInflate ZlibReaders ZlibDeflate ZlibWriters Zip Release)
 	@$(tool) Linker.Link -p=$(target) --fileName=$@ $+ && chmod +x $@
 	@$(tool) Linker.Link -p=$(target) --fileName=$@ $+ && chmod +x $@
 # grep ":processing\s$" oberon.log | grep "^[^:]\+" -o | tr '\n' ' '
 # grep ":processing\s$" oberon.log | grep "^[^:]\+" -o | tr '\n' ' '
 
 
-Self\ Compilation: $(addsuffix $(object), Compiler CompilerInterface FoxA2Interface FoxActiveCells FoxAMD64Assembler FoxAMD64InstructionSet FoxAMDBackend FoxARMAssembler FoxARMBackend FoxARMInstructionSet FoxArrayBase FoxArrayBaseOptimized FoxAssembler FoxBackend FoxBasic FoxBinaryCode FoxCodeGenerators FoxCSharpFrontend FoxCSharpParser FoxCSharpScanner FoxDisassembler FoxDocumentationBackend FoxDocumentationHtml FoxDocumentationParser FoxDocumentationPrinter FoxDocumentationScanner FoxDocumentationTree FoxFingerPrinter FoxFormats FoxFrontend FoxGenericObjectFile FoxGlobal FoxHardware FoxInterfaceComparison FoxIntermediateAssembler FoxIntermediateBackend FoxIntermediateCode FoxIntermediateLinker FoxIntermediateObjectFile FoxIntermediateParser FoxInterpreterBackend FoxMinosObjectFile FoxOberonFrontend FoxParser FoxPrintout FoxProfiler FoxProgTools FoxScanner FoxSections FoxSemanticChecker FoxSyntaxTree FoxTest FoxTextualSymbolFile FoxTranspilerBackend FoxTRMAssembler FoxTRMBackend FoxTRMInstructionSet TextCompiler)
+Self\ Compilation: $(addsuffix $(object), Compiler CompilerInterface FoxA2Interface FoxActiveCells FoxAMD64Assembler FoxAMD64InstructionSet FoxAMDBackend FoxARMAssembler FoxARMBackend FoxARMInstructionSet FoxArrayBase FoxArrayBaseOptimized FoxAssembler FoxBackend FoxBasic FoxBinaryCode FoxCodeGenerators FoxCSharpFrontend FoxCSharpParser FoxCSharpScanner FoxDisassembler FoxDocumentationBackend FoxDocumentationHtml FoxDocumentationParser FoxDocumentationPrinter FoxDocumentationScanner FoxDocumentationTree FoxFingerprinter FoxFormats FoxFrontend FoxGenericObjectFile FoxGlobal FoxHardware FoxInterfaceComparison FoxIntermediateAssembler FoxIntermediateBackend FoxIntermediateCode FoxIntermediateLinker FoxIntermediateObjectFile FoxIntermediateParser FoxInterpreterBackend FoxMinosObjectFile FoxOberonFrontend FoxParser FoxPrintout FoxProfiler FoxProgTools FoxScanner FoxSections FoxSemanticChecker FoxSyntaxTree FoxTest FoxTextualSymbolFile FoxTranspilerBackend FoxTRMAssembler FoxTRMBackend FoxTRMInstructionSet TextCompiler)
 # grep "^\(Fox\|Compiler\|TextCompiler\)" modules | sed 's/\.Mod//g' | sort | tr '\n' ' '
 # grep "^\(Fox\|Compiler\|TextCompiler\)" modules | sed 's/\.Mod//g' | sort | tr '\n' ' '
 
 
 Compilation\ Tests: Oberon.Compilation.Test.Diff
 Compilation\ Tests: Oberon.Compilation.Test.Diff