Jelajahi Sumber

allowed for operator overloading of im / re

git-svn-id: https://svn.inf.ethz.ch/svn/lecturers/a2/trunk@7129 8c9fc860-2736-0410-a75d-ab315db34111
felixf 8 tahun lalu
induk
melakukan
6ae1f6e997
2 mengubah file dengan 6 tambahan dan 0 penghapusan
  1. 4 0
      source/FoxGlobal.Mod
  2. 2 0
      source/FoxSemanticChecker.Mod

+ 4 - 0
source/FoxGlobal.Mod

@@ -992,6 +992,8 @@ TYPE
 		OperatorDefined(system,Scanner.Size, TRUE);
 		OperatorDefined(system,Scanner.Alias, TRUE);
 		OperatorDefined(system,All,TRUE);
+		OperatorDefined(system,Re,TRUE);
+		OperatorDefined(system,Im,TRUE);
 		
 		OperatorDefined(system, Scanner.Questionmarks, TRUE);
 
@@ -1645,6 +1647,8 @@ TYPE
 		NewBuiltinIdentifier(Inc,"INC");
 		NewBuiltinIdentifier(Incl,"INCL");
 		NewBuiltinIdentifier(All,"ALL");
+		NewBuiltinIdentifier(Re,"RE");
+		NewBuiltinIdentifier(Im,"IM");
 
 
 		(* TODO: check if ok. The operators defined in FoxArrayBase require the following identifiers *)

+ 2 - 0
source/FoxSemanticChecker.Mod

@@ -7148,8 +7148,10 @@ TYPE
 						| Global.Odd: (* TODO: arity? *)
 						| Global.Sum: (* TODO: arity? *)
 						| Global.All: (* TODO: arity? *)
+						| Global.Re, Global.Im:
 						| Global.Dim: mustBeUnary := TRUE; mustReturnInteger := TRUE;
 						| Scanner.Alias:
+						
 						| Scanner.GreaterGreater, Scanner.LessLess:
 							mustBeBinary := TRUE; hasReturnType := FALSE;
 						| Scanner.GreaterGreaterQ, Scanner.LessLessQ: