소스 검색

Unified printing of fingerprints

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8528 8c9fc860-2736-0410-a75d-ab315db34111
negelef 6 년 전
부모
커밋
cc6987094a
4개의 변경된 파일22개의 추가작업 그리고 22개의 파일을 삭제
  1. 2 2
      source/FoxBinaryCode.Mod
  2. 17 17
      source/FoxFingerprinter.Mod
  3. 2 2
      source/FoxIntermediateCode.Mod
  4. 1 1
      source/FoxSections.Mod

+ 2 - 2
source/FoxBinaryCode.Mod

@@ -29,7 +29,7 @@ TYPE
 		PROCEDURE Dump*(w: Streams.Writer);
 		BEGIN
 			Basic.WriteSegmentedName(w, identifier.name);
-			IF identifier.fingerprint # 0 THEN w.String("["); w.Hex(identifier.fingerprint,-8); w.String("]") END;
+			IF identifier.fingerprint # 0 THEN w.String("["); w.Hex(identifier.fingerprint,0); w.String("]") END;
 			w.String(" "); w.Int(offset,1);
 		END Dump;
 
@@ -122,7 +122,7 @@ TYPE
 		VAR i: LONGINT;
 		BEGIN
 			Basic.WriteSegmentedName(w, symbol.name);
-			IF symbol.fingerprint # 0 THEN w.String("["); w.Hex(symbol.fingerprint,-8); w.String("]") END;
+			IF symbol.fingerprint # 0 THEN w.String("["); w.Hex(symbol.fingerprint,0); w.String("]") END;
 			IF symbolOffset # 0 THEN w.String(":"); w.Int(symbolOffset, 0) END;
 
 			w.String(" (displ="); w.Int(displacement, 0); w.String(")");

+ 17 - 17
source/FoxFingerprinter.Mod

@@ -469,7 +469,7 @@ TYPE
 					FPNumber(fp, 0);
 				END;
 				IF Trace THEN
-					D.Str(", fp = "); D.Hex(fp,-8); D.Ln;
+					D.Str(", fp = "); D.Hex(fp,0); D.Ln;
 				END
 			END
 		END TypeName;
@@ -575,15 +575,15 @@ TYPE
 				fp := fingerprint.shallow;
 			END;
 			IF procedure.access * SyntaxTree.Public # {} THEN (* visible method or visible supermethod *)
-				IF Trace THEN D.String("fp before method number"); D.Hex(fp,-8); D.Ln END;
+				IF Trace THEN D.String("fp before method number"); D.Hex(fp,0); D.Ln END;
 				FPNumber(fp,procedure.methodNumber);
-				IF Trace THEN D.String("fp after method number"); D.Hex(fp,-8); D.Ln END;
+				IF Trace THEN D.String("fp after method number"); D.Hex(fp,0); D.Ln END;
 				IF procedure # body THEN
 					FPNumber(private,fp); FPNumber(public,fp);
 				END;
 			END;
 			IF Trace THEN
-				TraceIndent; D.Str("Method, fp = "); D.Hex(private,-8); D.Str(" "); D.Hex(public,-8); D.Ln;
+				TraceIndent; D.Str("Method, fp = "); D.Hex(private,0); D.Str(" "); D.Hex(public,0); D.Ln;
 				TraceExit("Method",fingerprint)
 			END;
 		END FPrintMethod;
@@ -634,7 +634,7 @@ TYPE
 				fp := 0;
 				FPNumber(fp, fpTypeComposite); FPNumber(fp, fpTypeRecord);
 				TypeName(fp,x);
-				IF Trace THEN TraceIndent; D.Str("RecordType Name ");D.Hex(fp,-8);  D.Ln; END;
+				IF Trace THEN TraceIndent; D.Str("RecordType Name ");D.Hex(fp,0);  D.Ln; END;
 
 				IF (x.baseType # NIL) THEN
 					baseType := x.GetBaseRecord();
@@ -921,7 +921,7 @@ TYPE
 
 		BEGIN
 			IF Trace THEN
-				TraceIndent; D.Str("FPSignature enter "); D.Hex(fp,-8); D.Ln;
+				TraceIndent; D.Str("FPSignature enter "); D.Hex(fp,0); D.Ln;
 			END;
 			deep := SELF.deep;
 			SELF.deep := FALSE;
@@ -929,7 +929,7 @@ TYPE
 			SELF.deep := deep;
 			
 			IF Trace THEN
-				TraceIndent; D.Str("FPSignature after return type "); D.Hex(fp,-8); D.Ln;
+				TraceIndent; D.Str("FPSignature after return type "); D.Hex(fp,0); D.Ln;
 			END;
 
 			IF IsOberonProcedure(t) THEN
@@ -945,25 +945,25 @@ TYPE
 				*)
 
 				IF Trace THEN
-					TraceIndent; D.Str("FPSignature after self "); D.Hex(fp,-8); D.Ln;
+					TraceIndent; D.Str("FPSignature after self "); D.Hex(fp,0); D.Ln;
 				END;
 				par := t.firstParameter;
 				WHILE (par#self) DO (*! done as in PACO *)
 					FPPar(fp, par);
 					IF Trace THEN
-						TraceIndent; D.Str("FPSignature par "); D.Hex(fp,-8); D.Ln;
+						TraceIndent; D.Str("FPSignature par "); D.Hex(fp,0); D.Ln;
 					END;
 					par:=par.nextParameter;
 				END;
 				IF Trace THEN
-					TraceIndent; D.Str("FPSignature exit "); D.Hex(fp,-8); D.Ln;
+					TraceIndent; D.Str("FPSignature exit "); D.Hex(fp,0); D.Ln;
 				END;
 			ELSE
 				par := t.lastParameter;
 				WHILE (par#NIL) DO (*! done as in PACO *)
 					FPPar(fp, par);
 					IF Trace THEN
-						TraceIndent; D.Str("FPSignature par "); D.Hex(fp,-8); D.Ln;
+						TraceIndent; D.Str("FPSignature par "); D.Hex(fp,0); D.Ln;
 					END;
 					par:=par.prevParameter;
 				END;
@@ -1187,7 +1187,7 @@ TYPE
 				FPNumber(fp, fpTypeModule); 
 				FPName(fp,x.name);
 
-				IF Trace THEN TraceIndent; D.Str("Module Name ");D.Hex(fp,-8);  D.Ln; END;
+				IF Trace THEN TraceIndent; D.Str("Module Name ");D.Hex(fp,0);  D.Ln; END;
 
 				fingerprint.shallow := fp;
 				fingerprint.public := fingerprint.shallow;
@@ -1263,8 +1263,8 @@ TYPE
 
 		PROCEDURE TraceFP(CONST fingerprint: SyntaxTree.Fingerprint);
 		BEGIN
-			D.Hex(fingerprint.shallow,-8); D.Str(" "); D.Hex(fingerprint.private,-8);
-			D.Str(" "); D.Hex(fingerprint.public,-8);
+			D.Hex(fingerprint.shallow,0); D.Str(" "); D.Hex(fingerprint.private,0);
+			D.Str(" "); D.Hex(fingerprint.public,0);
 		END TraceFP;
 
 
@@ -1357,9 +1357,9 @@ TYPE
 	PROCEDURE DumpFingerprint*(w: Streams.Writer; CONST fp: SyntaxTree.Fingerprint);
 	BEGIN
 		w.String("fingerprint: ");
-		w.String("shallow = "); w.Hex(fp.shallow,8);
-		w.String(", private = "); w.Hex(fp.private,8);
-		w.String(", public = "); w.Hex(fp.public,8);
+		w.String("shallow = "); w.Hex(fp.shallow,0);
+		w.String(", private = "); w.Hex(fp.private,0);
+		w.String(", public = "); w.Hex(fp.public,0);
 		w.Ln;
 	END DumpFingerprint;
 

+ 2 - 2
source/FoxIntermediateCode.Mod

@@ -630,7 +630,7 @@ TYPE
 					END;
 				ELSIF operand.symbol.name # "" THEN
 					Basic.WriteSegmentedName(w,operand.symbol.name);
-					IF operand.symbol.fingerprint # 0 THEN w.String("["); w.Hex(operand.symbol.fingerprint,SIZE OF Basic.Fingerprint * 2); w.String("]"); END;
+					IF operand.symbol.fingerprint # 0 THEN w.String("["); w.Hex(operand.symbol.fingerprint,0); w.String("]"); END;
 					w.String(":"); w.Int(operand.symbolOffset,1);
 					IF operand.offset > 0 THEN w.String("+"); w.Int(operand.offset, 1);
 					ELSIF operand.offset < 0 THEN w.String("-"); w.Int(-operand.offset, 1);
@@ -646,7 +646,7 @@ TYPE
 		|ModeImmediate:
 			IF operand.symbol.name # "" THEN
 				Basic.WriteSegmentedName(w,operand.symbol.name);
-				IF operand.symbol.fingerprint # 0 THEN w.String("["); w.Hex(operand.symbol.fingerprint,SIZE OF Basic.Fingerprint * 2); w.String("]"); END;
+				IF operand.symbol.fingerprint # 0 THEN w.String("["); w.Hex(operand.symbol.fingerprint,0); w.String("]"); END;
 				w.String(":"); w.Int(operand.symbolOffset,1);
 				IF operand.offset > 0 THEN w.String("+"); w.Int(operand.offset, 1);
 				ELSIF operand.offset < 0 THEN w.String("-"); w.Int(-operand.offset, 1);

+ 1 - 1
source/FoxSections.Mod

@@ -117,7 +117,7 @@ TYPE
 				w.String(" aligned="); w.Int(positionOrAlignment, 0)
 			END;
 
-			IF fingerprint # 0 THEN w.String(" fingerprint="); w.Hex(fingerprint, SIZE OF Basic.Fingerprint * 2) END;
+			IF fingerprint # 0 THEN w.String(" fingerprint="); w.Hex(fingerprint, 0) END;
 
 			IF bitsPerUnit # UnknownSize THEN w.String(" unit="); w.Int(bitsPerUnit, 0) END;