瀏覽代碼

LONGINT adieu

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@8112 8c9fc860-2736-0410-a75d-ab315db34111
negelef 7 年之前
父節點
當前提交
43bf61a5c7
共有 1 個文件被更改,包括 47 次插入47 次删除
  1. 47 47
      source/A2Sequencers.Mod

+ 47 - 47
source/A2Sequencers.Mod

@@ -20,7 +20,7 @@ TYPE
 	(* generic property object that provides lock-free access to its value *)
 	Property* = OBJECT
 	VAR
-		locks: LONGINT;
+		locks: SIZE;
 		container*: OBJECT;
 
 		PROCEDURE &InitProperty;
@@ -28,7 +28,7 @@ TYPE
 		END InitProperty;
 
 		PROCEDURE AcquireRead;
-		VAR locks: LONGINT;
+		VAR locks: SIZE;
 		BEGIN
 			LOOP
 				locks := SELF.locks;
@@ -42,7 +42,7 @@ TYPE
 		END ReleaseRead;
 
 		PROCEDURE AcquireWrite;
-		VAR locks: LONGINT;
+		VAR locks: SIZE;
 		BEGIN
 			LOOP
 				locks := SELF.locks;
@@ -83,12 +83,12 @@ TYPE
 		END Set;
 
 		PROCEDURE Changed (value: BOOLEAN);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO handlers[i] (SELF, value); INC (i) END;
 		END Changed;
 
 		PROCEDURE AddHandler* (handler: BooleanHandler);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO INC (i) END; handlers[i] := handler;
 		END AddHandler;
 
@@ -96,40 +96,40 @@ TYPE
 
 	Integer* = OBJECT (Property)
 	VAR
-		value: LONGINT;
+		value: WORD;
 		handlers: ARRAY MaxHandlers OF IntegerHandler;
 
-		PROCEDURE &InitInteger* (value: LONGINT);
+		PROCEDURE &InitInteger* (value: WORD);
 		BEGIN InitProperty; SELF.value := value;
 		END InitInteger;
 
-		PROCEDURE Get* (): LONGINT;
-		VAR value: LONGINT;
+		PROCEDURE Get* (): WORD;
+		VAR value: WORD;
 		BEGIN AcquireRead; value := SELF.value; ReleaseRead; RETURN value;
 		END Get;
 
-		PROCEDURE Set* (value: LONGINT);
+		PROCEDURE Set* (value: WORD);
 		VAR changed: BOOLEAN;
 		BEGIN AcquireWrite; changed := SELF.value # value; SELF.value := value; ReleaseWrite; IF changed THEN Changed (value) END;
 		END Set;
 
-		PROCEDURE Inc* (step: LONGINT);
+		PROCEDURE Inc* (step: WORD);
 		VAR changed: BOOLEAN;
 		BEGIN AcquireWrite; changed := step # 0; INC (value, step); ReleaseWrite; IF changed THEN Changed (value) END;
 		END Inc;
 
-		PROCEDURE Dec* (step: LONGINT);
+		PROCEDURE Dec* (step: WORD);
 		VAR changed: BOOLEAN;
 		BEGIN AcquireWrite; changed := step # 0; DEC (value, step); ReleaseWrite; IF changed THEN Changed (value) END;
 		END Dec;
 
-		PROCEDURE Changed (value: LONGINT);
-		VAR i: LONGINT;
+		PROCEDURE Changed (value: WORD);
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO handlers[i] (SELF, value); INC (i) END;
 		END Changed;
 
 		PROCEDURE AddHandler* (handler: IntegerHandler);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO INC (i) END; handlers[i] := handler;
 		END AddHandler;
 
@@ -155,12 +155,12 @@ TYPE
 		END Set;
 
 		PROCEDURE Changed (value: REAL);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO handlers[i] (SELF, value); INC (i) END;
 		END Changed;
 
 		PROCEDURE AddHandler* (handler: RealHandler);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO INC (i) END; handlers[i] := handler;
 		END AddHandler;
 
@@ -185,23 +185,23 @@ TYPE
 		BEGIN AcquireWrite; changed := SELF.value # value; SELF.value := value; ReleaseWrite; IF changed THEN Changed (value) END;
 		END Set;
 
-		PROCEDURE Incl* (element: LONGINT);
+		PROCEDURE Incl* (element: WORD);
 		VAR changed: BOOLEAN;
 		BEGIN AcquireWrite; changed := ~(element IN value); INCL (value, element); ReleaseWrite; IF changed THEN Changed (value) END;
 		END Incl;
 
-		PROCEDURE Excl* (element: LONGINT);
+		PROCEDURE Excl* (element: WORD);
 		VAR changed: BOOLEAN;
 		BEGIN AcquireWrite; changed := element IN value; EXCL (value, element); ReleaseWrite; IF changed THEN Changed (value) END;
 		END Excl;
 
 		PROCEDURE Changed (value: SET);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO handlers[i] (SELF, value); INC (i) END;
 		END Changed;
 
 		PROCEDURE AddHandler* (handler: SetHandler);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO INC (i) END; handlers[i] := handler;
 		END AddHandler;
 
@@ -212,7 +212,7 @@ TYPE
 		value: POINTER TO ARRAY OF CHAR;
 		handlers: ARRAY MaxHandlers OF StringHandler;
 
-		PROCEDURE &InitString* (CONST value: ARRAY OF CHAR; length: LONGINT);
+		PROCEDURE &InitString* (CONST value: ARRAY OF CHAR; length: SIZE);
 		BEGIN InitProperty; NEW (SELF.value, length); COPY (value, SELF.value^);
 		END InitString;
 
@@ -226,12 +226,12 @@ TYPE
 		END Set;
 
 		PROCEDURE Changed (CONST value: ARRAY OF CHAR);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO handlers[i] (SELF, value); INC (i) END;
 		END Changed;
 
 		PROCEDURE AddHandler* (handler: StringHandler);
-		VAR i: LONGINT;
+		VAR i: SIZE;
 		BEGIN i := 0; WHILE handlers[i] # NIL DO INC (i) END; handlers[i] := handler;
 		END AddHandler;
 
@@ -282,10 +282,10 @@ TYPE
 
 	TYPE IntegerMessage*  = OBJECT (Message)
 	VAR
-		value: LONGINT;
+		value: WORD;
 		procedure: IntegerProcedure;
 
-		PROCEDURE &InitIntegerMessage* (value: LONGINT; procedure: IntegerProcedure);
+		PROCEDURE &InitIntegerMessage* (value: WORD; procedure: IntegerProcedure);
 		BEGIN InitMessage; SELF.value := value; SELF.procedure := procedure;
 		END InitIntegerMessage;
 
@@ -297,10 +297,10 @@ TYPE
 
 	TYPE IntegerIntegerMessage*  = OBJECT (Message)
 	VAR
-		value0, value1: LONGINT;
+		value0, value1: WORD;
 		procedure: IntegerIntegerProcedure;
 
-		PROCEDURE &InitIntegerIntegerMessage* (value0, value1: LONGINT; procedure: IntegerIntegerProcedure);
+		PROCEDURE &InitIntegerIntegerMessage* (value0, value1: WORD; procedure: IntegerIntegerProcedure);
 		BEGIN InitMessage; SELF.value0 := value0; SELF.value1 := value1; SELF.procedure := procedure;
 		END InitIntegerIntegerMessage;
 
@@ -346,7 +346,7 @@ TYPE
 		procedure: StringProcedure;
 
 		PROCEDURE &InitStringMessage* (CONST value: ARRAY OF CHAR; procedure: StringProcedure);
-		VAR length: LONGINT;
+		VAR length: SIZE;
 		BEGIN
 			InitMessage; length := 0;
 			WHILE value[length] # 0X DO INC (length); END;
@@ -382,10 +382,10 @@ TYPE
 
 	IntegerRequest* = OBJECT (Request)
 	VAR
-		value: LONGINT;
+		value: WORD;
 		procedure: IntegerProcedure;
 
-		PROCEDURE &InitIntegerRequest* (value: LONGINT; procedure: IntegerProcedure);
+		PROCEDURE &InitIntegerRequest* (value: WORD; procedure: IntegerProcedure);
 		BEGIN InitRequest; SELF.value := value; SELF.procedure := procedure;
 		END InitIntegerRequest;
 
@@ -413,7 +413,7 @@ TYPE
 	RequestInteger* = OBJECT (Request)
 	VAR
 		procedure: ProcedureInteger;
-		result-: LONGINT;
+		result-: WORD;
 
 		PROCEDURE &InitRequestInteger* (procedure: ProcedureInteger);
 		BEGIN InitRequest; SELF.procedure := procedure;
@@ -442,11 +442,11 @@ TYPE
 
 	IntegerRequestBoolean* = OBJECT (Request)
 	VAR
-		value: LONGINT;
+		value: WORD;
 		procedure: IntegerProcedureBoolean;
 		result-: BOOLEAN;
 
-		PROCEDURE &InitIntegerRequestBoolean* (value: LONGINT; procedure: IntegerProcedureBoolean);
+		PROCEDURE &InitIntegerRequestBoolean* (value: WORD; procedure: IntegerProcedureBoolean);
 		BEGIN InitRequest; SELF.value := value; SELF.procedure := procedure;
 		END InitIntegerRequestBoolean;
 
@@ -460,7 +460,7 @@ TYPE
 	VAR
 		value: REAL;
 		procedure: RealProcedureInteger;
-		result-: LONGINT;
+		result-: WORD;
 
 		PROCEDURE &InitRealRequestInteger* (value: REAL; procedure: RealProcedureInteger);
 		BEGIN InitRequest; SELF.value := value; SELF.procedure := procedure;
@@ -519,7 +519,7 @@ TYPE
 		BEGIN NEW (message, value, procedure); Add (message, NoDelay);
 		END AddBooleanMessage;
 
-		PROCEDURE AddIntegerMessage* (value: LONGINT; procedure: IntegerProcedure);
+		PROCEDURE AddIntegerMessage* (value: WORD; procedure: IntegerProcedure);
 		VAR message: IntegerMessage;
 		BEGIN NEW (message, value, procedure); Add (message, NoDelay);
 		END AddIntegerMessage;
@@ -539,12 +539,12 @@ TYPE
 		BEGIN NEW (message, value, procedure); Add (message, NoDelay);
 		END AddStringMessage;
 
-		PROCEDURE AddIntegerIntegerMessage* (value0, value1: LONGINT; procedure: IntegerIntegerProcedure);
+		PROCEDURE AddIntegerIntegerMessage* (value0, value1: WORD; procedure: IntegerIntegerProcedure);
 		VAR message: IntegerIntegerMessage;
 		BEGIN NEW (message, value0, value1, procedure); Add (message, NoDelay);
 		END AddIntegerIntegerMessage;
 
-		PROCEDURE AddIntegerRequest* (value: LONGINT; procedure: IntegerProcedure);
+		PROCEDURE AddIntegerRequest* (value: WORD; procedure: IntegerProcedure);
 		VAR request: IntegerRequest;
 		BEGIN NEW (request, value, procedure); Add (request, NoDelay);
 		END AddIntegerRequest;
@@ -554,7 +554,7 @@ TYPE
 		BEGIN NEW (request, procedure); Add (request, NoDelay); RETURN request.result;
 		END AddRequestBoolean;
 
-		PROCEDURE AddRequestInteger* (procedure: ProcedureInteger): LONGINT;
+		PROCEDURE AddRequestInteger* (procedure: ProcedureInteger): WORD;
 		VAR request: RequestInteger;
 		BEGIN NEW (request, procedure); Add (request, NoDelay); RETURN request.result;
 		END AddRequestInteger;
@@ -564,12 +564,12 @@ TYPE
 		BEGIN NEW (request, procedure); Add (request, NoDelay); RETURN request.result;
 		END AddRequestReal;
 
-		PROCEDURE AddIntegerRequestBoolean* (value: LONGINT; procedure: IntegerProcedureBoolean): BOOLEAN;
+		PROCEDURE AddIntegerRequestBoolean* (value: WORD; procedure: IntegerProcedureBoolean): BOOLEAN;
 		VAR request: IntegerRequestBoolean;
 		BEGIN NEW (request, value, procedure); Add (request, NoDelay); RETURN request.result;
 		END AddIntegerRequestBoolean;
 
-		PROCEDURE AddRealRequestInteger* (value: REAL; procedure: RealProcedureInteger): LONGINT;
+		PROCEDURE AddRealRequestInteger* (value: REAL; procedure: RealProcedureInteger): WORD;
 		VAR request: RealRequestInteger;
 		BEGIN NEW (request, value, procedure); Add (request, NoDelay); RETURN request.result;
 		END AddRealRequestInteger;
@@ -609,25 +609,25 @@ TYPE
 
 (* helper types *)
 	BooleanHandler = PROCEDURE {DELEGATE} (property: Boolean; value: BOOLEAN);
-	IntegerHandler = PROCEDURE {DELEGATE} (property: Integer; value: LONGINT);
+	IntegerHandler = PROCEDURE {DELEGATE} (property: Integer; value: WORD);
 	RealHandler = PROCEDURE {DELEGATE} (property: Real; value: REAL);
 	SetHandler = PROCEDURE {DELEGATE} (property: Set; value: SET);
 	StringHandler = PROCEDURE {DELEGATE} (property: String; CONST value: ARRAY OF CHAR);
 
 	Procedure = PROCEDURE {DELEGATE};
 	BooleanProcedure = PROCEDURE {DELEGATE} (value: BOOLEAN);
-	IntegerProcedure = PROCEDURE {DELEGATE} (value: LONGINT);
-	IntegerIntegerProcedure = PROCEDURE {DELEGATE} (value0, value1: LONGINT);
+	IntegerProcedure = PROCEDURE {DELEGATE} (value: WORD);
+	IntegerIntegerProcedure = PROCEDURE {DELEGATE} (value0, value1: WORD);
 	RealProcedure = PROCEDURE {DELEGATE} (value: REAL);
 	SetProcedure = PROCEDURE {DELEGATE} (value: SET);
 	StringProcedure = PROCEDURE {DELEGATE} (CONST value: ARRAY OF CHAR);
 
 	ProcedureBoolean = PROCEDURE {DELEGATE} (): BOOLEAN;
-	ProcedureInteger = PROCEDURE {DELEGATE} (): LONGINT;
+	ProcedureInteger = PROCEDURE {DELEGATE} (): WORD;
 	ProcedureReal = PROCEDURE {DELEGATE} (): REAL;
 
-	IntegerProcedureBoolean = PROCEDURE {DELEGATE} (value: LONGINT): BOOLEAN;
-	RealProcedureInteger = PROCEDURE {DELEGATE} (value: REAL): LONGINT;
+	IntegerProcedureBoolean = PROCEDURE {DELEGATE} (value: WORD): BOOLEAN;
+	RealProcedureInteger = PROCEDURE {DELEGATE} (value: REAL): WORD;
 
 (* helper function for delayed execution *)
 PROCEDURE Delay* (delay: LONGINT): LONGINT;