Taddeus Kroes пре 12 година
родитељ
комит
305c63426c
4 измењених фајлова са 13 додато и 13 уклоњено
  1. 1 1
      Makefile
  2. 1 1
      phases/bool_op.ml
  3. 2 2
      phases/constant_propagation.ml
  4. 9 9
      test/bool_op.cvc

+ 1 - 1
Makefile

@@ -28,7 +28,7 @@ clean:: myclean
 myclean:
 	rm -f a.out $(DIST_TGT)
 
-check:
+check: all
 	@cd test; CIVAS=$(CIVAS) CIVVM=$(CIVVM) CIVCC=$(CIVCC) bash run.bash
 
 dist: $(DIST_TGT)

+ 1 - 1
phases/bool_op.ml

@@ -36,7 +36,7 @@ let rec trav_binop = function
         bool_op (Cond (left, boolconst true, right, ann))
 
     | ((Add | Mul) as op, left, right, ann) ->
-        bool_op (cast Bool (Binop (op, cast Int left, cast Int right, ann)))
+        bool_op (cast Bool (Binop (op, cast Int left, cast Int right, Type Int :: ann)))
 
     | (op, left, right, ann) ->
         Binop (op, left, right, ann)

+ 2 - 2
phases/constant_propagation.ml

@@ -56,9 +56,9 @@ let eval_binop = function
         Const (BoolVal (left = right), ann)
 
     | (Ne, Const (IntVal left, _), Const (IntVal right, _), ann) ->
-        Const (BoolVal (left != right), ann)
+        Const (BoolVal (left <> right), ann)
     | (Ne, Const (FloatVal left, _), Const (FloatVal right, _), ann) ->
-        Const (BoolVal (left != right), ann)
+        Const (BoolVal (left <> right), ann)
 
     | (Gt, Const (IntVal left, _), Const (IntVal right, _), ann) ->
         Const (BoolVal (left > right), ann)

+ 9 - 9
test/bool_op.cvc

@@ -6,7 +6,7 @@ void printBool(bool b) {
     } else {
         printInt(0);
     }
-    
+
     printNewlines(1);
 }
 
@@ -26,44 +26,44 @@ export int main() {
     printBool(t() == t());
     printBool(f() == f());
     printNewlines(1);
-    
+
     printBool(t() != f());
     printBool(f() != t());
     printBool(t() != t());
     printBool(f() != f());
     printNewlines(1);
-    
+
     printBool(t() && f());
     printBool(f() && t());
     printBool(t() && t());
     printBool(f() && f());
     printNewlines(1);
-    
+
     printBool(t() || f());
     printBool(f() || t());
     printBool(t() || t());
     printBool(f() || f());
     printNewlines(1);
-    
+
     printBool(t() * f());
     printBool(f() * t());
     printBool(t() * t());
     printBool(f() * f());
     printNewlines(1);
-    
+
     printBool(t() + f());
     printBool(f() + t());
     printBool(t() + t());
     printBool(f() + f());
     printNewlines(1);
-    
+
     printBool((bool)5);
     printBool((bool)0);
     printNewlines(1);
-    
+
     printBool((bool)5.0);
     printBool((bool)0.0);
     printNewlines(1);
-    
+
     return 0;
 }