public void IgnoreCaseTest()
 {
     IdentityExpression expression = new IdentityExpression("Foo");
     Assert.IsTrue(expression.Evaluate(principal));
 }
 public void WordTest()
 {
     IdentityExpression expression = new IdentityExpression("user1");
     Assert.AreEqual(typeof(WordExpression), expression.Word.GetType());
 }
 public void AnyTest()
 {
     IdentityExpression expression = new IdentityExpression("*");
     Assert.AreEqual(typeof(AnyExpression), expression.Word.GetType());
 }
 public void FalseEvaluationTest()
 {
     IdentityExpression expression = new IdentityExpression("bar");
     Assert.IsFalse(expression.Evaluate(principal));
 }
		public ISymbolValue Visit(IdentityExpression x)
		{
			return E_BoolOp(x);
		}
		public void Visit(IdentityExpression x)
		{
			
		}
Example #7
0
		IExpression CmpExpression(IBlockNode Scope = null)
		{
			// TODO: Make this into a switch.
			var left = ShiftExpression(Scope);

			OperatorBasedExpression ae;

			switch (laKind) {
			case DTokens.Equal:
			case DTokens.NotEqual:
				ae = new EqualExpression (laKind == NotEqual);
				break;

			case DTokens.LessThan:
			case DTokens.LessEqual:
			case DTokens.GreaterThan:
			case DTokens.GreaterEqual:
			case DTokens.Unordered:
			case DTokens.LessOrGreater:
			case DTokens.LessEqualOrGreater:
			case DTokens.UnorderedOrGreater:
			case DTokens.UnorderedGreaterOrEqual:
			case DTokens.UnorderedOrLess:
			case DTokens.UnorderedLessOrEqual:
			case DTokens.UnorderedOrEqual:
				ae = new RelExpression (laKind);
				break;

			case DTokens.Is:
				ae = new IdentityExpression (false);
				break;

			case DTokens.In:
				ae = new InExpression (false);
				break;

			case Not:
				switch (Peek (1).Kind) {
				case DTokens.Is:
					ae = new IdentityExpression (false);
					Step ();
					break;
				case DTokens.In:
					ae = new InExpression (true);
					Step ();
					break;
				default:
					return left;
				}
				break;

			default:
				return left;
			}

			// Skip operator
			Step();

			ae.LeftOperand = left;
			ae.RightOperand = ShiftExpression(Scope);
			return ae;
		}
Example #8
0
        IExpression CmpExpression(IBlockNode Scope = null)
        {
            // TODO: Make this into a switch.
            var left = ShiftExpression(Scope);

            OperatorBasedExpression ae = null;

            // Equality Expressions
            if (laKind == Equal || laKind == NotEqual)
                ae = new EqualExpression(laKind == NotEqual);

            // Relational Expressions
            else if (IsRelationalOperator(laKind))
                ae = new RelExpression(laKind);

            // Identity Expressions
            else if (laKind == Is || (laKind == Not && Peek(1).Kind == Is))
                ae = new IdentityExpression(laKind == Not);

            // In Expressions
            else if (laKind == In || (laKind == Not && Peek(1).Kind == In))
                ae = new InExpression(laKind == Not);

            else return left;

            // Skip possible !-Token
            if (laKind == Not)
                Step();

            // Skip operator
            Step();

            ae.LeftOperand = left;
            ae.RightOperand = ShiftExpression(Scope);
            return ae;
        }
 public void CaseTest()
 {
     IdentityExpression expression = new IdentityExpression("foo");
     Assert.IsTrue(expression.Evaluate(this.principal));
 }
Example #10
0
        public void FalseEvaluationTest()
        {
            IdentityExpression expression = new IdentityExpression("bar");

            Assert.IsFalse(expression.Evaluate(principal));
        }
Example #11
0
        public void CaseTest()
        {
            IdentityExpression expression = new IdentityExpression("foo");

            Assert.IsTrue(expression.Evaluate(principal));
        }
Example #12
0
 public override void Visit(IdentityExpression x)
 {
     locs.Add(x.opLine);
     locs.Add(x.opColumn - 1);
     base.Visit(x);
 }
Example #13
0
 public ISymbolValue Visit(IdentityExpression x)
 {
     return(E_BoolOp(x));
 }