コード例 #1
0
        public void DetectsIncompatibleOperandsInOperation()
        {
            ITypeCheckExpr expr = tcFactory.Add(tcFactory.Bool(true), tcFactory.Int(100));

            ErrorManager errMngr = new ErrorManager();

            expr.TypeCheck(new TypeEnvironment(errMngr));

            Assert.True(errMngr.HasErrors);
        }
コード例 #2
0
        public void DetectsNonBoolConditions()
        {
            ITypeCheckExpr expr = tcFactory.IfElse(tcFactory.Int(5), tcFactory.String("True"), tcFactory.String("False"));

            ErrorManager errMngr = new ErrorManager();

            expr.TypeCheck(new TypeEnvironment(errMngr));

            Assert.True(errMngr.HasErrors);
        }
コード例 #3
0
 public LessThenExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #4
0
 public NotEqualExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #5
0
 public SubtractExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #6
0
 public OrExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #7
0
 public EqualsExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #8
0
 public PowerExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #9
0
 public AddExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #10
0
 public MultiplyExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #11
0
 public SubtractExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #12
0
 public DivideExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
     
 }
コード例 #13
0
 public LessThenExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #14
0
 public ModuloExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #15
0
 public DivideExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #16
0
 public GreaterOrEqualToExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #17
0
 public GreaterThenExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #18
0
 public LessOrEqualToExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #19
0
 public MultiplyExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #20
0
 public GreaterOrEqualToExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #21
0
 public EqualsExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #22
0
 public NotEqualExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #23
0
 public ModuloExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #24
0
 public LessOrEqualToExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }
コード例 #25
0
 public GreaterThenExpr(ITypeCheckExpr l, ITypeCheckExpr r)
     : base(l, r)
 {
 }