Просмотр исходного кода

eliminate constant duplication

Vladislav Folts 10 лет назад
Родитель
Сommit
9f7542b7ca
3 измененных файлов с 13 добавлено и 11 удалено
  1. BIN
      bin/compiled.zip
  2. 2 2
      src/eberon/EberonOperator.ob
  3. 11 9
      src/ob/Operator.ob

BIN
bin/compiled.zip


+ 2 - 2
src/eberon/EberonOperator.ob

@@ -46,11 +46,11 @@ PROCEDURE addStr*(left, right: Code.PExpression): Code.PExpression;
 END addStr;
 
 PROCEDURE equalStr*(left, right: Code.PExpression): Code.PExpression;
-    RETURN Operator.equal(left, right, opEqualStr, " == ")
+    RETURN Operator.equal(left, right, opEqualStr, Operator.equalCode)
 END equalStr;
 
 PROCEDURE notEqualStr*(left, right: Code.PExpression): Code.PExpression;
-    RETURN Operator.equal(left, right, opNotEqualStr, " != ")
+    RETURN Operator.equal(left, right, opNotEqualStr, Operator.notEqualCode)
 END notEqualStr;
 
 PROCEDURE lessStr*(left, right: Code.PExpression): Code.PExpression;

+ 11 - 9
src/ob/Operator.ob

@@ -8,6 +8,9 @@ IMPORT
     Precedence := CodePrecedence,
     String,
     Types;
+CONST
+    equalCode* = " == ";
+    notEqualCode* = " != ";
 TYPE
     BinaryProc* = PROCEDURE(left, right: Code.PExpression): Code.PExpression;
 
@@ -38,7 +41,6 @@ TYPE
 
     CastToUint8* = RECORD (Cast.CastOpDoNothing)
     END;
-
 VAR
     openArrayChar: Types.PType;
     castOperations*: Cast.Operations;
@@ -593,35 +595,35 @@ PROCEDURE and*(left, right: Code.PExpression): Code.PExpression;
 END and;
 
 PROCEDURE equalInt*(left, right: Code.PExpression): Code.PExpression;
-    RETURN equal(left, right, opEqualInt, " == ")
+    RETURN equal(left, right, opEqualInt, equalCode)
 END equalInt;
 
 PROCEDURE equalReal*(left, right: Code.PExpression): Code.PExpression;
-    RETURN equal(left, right, opEqualReal, " == ")
+    RETURN equal(left, right, opEqualReal, equalCode)
 END equalReal;
 
 PROCEDURE equalSet*(left, right: Code.PExpression): Code.PExpression;
-    RETURN equal(left, right, opEqualSet, " == ")
+    RETURN equal(left, right, opEqualSet, equalCode)
 END equalSet;
 
 PROCEDURE equalStr*(left, right: Code.PExpression; cx: LanguageContext.PType): Code.PExpression;
-    RETURN strCmp(" == ", left, right, cx)
+    RETURN strCmp(equalCode, left, right, cx)
 END equalStr;
 
 PROCEDURE notEqualInt*(left, right: Code.PExpression): Code.PExpression;
-    RETURN equal(left, right, opNotEqualInt, " != ")
+    RETURN equal(left, right, opNotEqualInt, notEqualCode)
 END notEqualInt;
 
 PROCEDURE notEqualReal*(left, right: Code.PExpression): Code.PExpression;
-    RETURN equal(left, right, opNotEqualReal, " != ")
+    RETURN equal(left, right, opNotEqualReal, notEqualCode)
 END notEqualReal;
 
 PROCEDURE notEqualSet*(left, right: Code.PExpression): Code.PExpression;
-    RETURN equal(left, right, opNotEqualSet, " != ")
+    RETURN equal(left, right, opNotEqualSet, notEqualCode)
 END notEqualSet;
 
 PROCEDURE notEqualStr*(left, right: Code.PExpression; cx: LanguageContext.PType): Code.PExpression;
-    RETURN strCmp(" != ", left, right, cx)
+    RETURN strCmp(notEqualCode, left, right, cx)
 END notEqualStr;
 
 PROCEDURE is*(left, right: Code.PExpression): Code.PExpression;