public override ConstraintViolation VisitUnaryOperatorNode(UnaryOperatorNode unNode)
        {
            if (unNode.Operator.Value == "~")
            {
                var operand = unNode.Operand as UnaryOperatorNode;
                if (operand != null && operand.Operator.Value == "~")
                {
                    return new ConstraintViolation(unNode, "The 'not' operator may not be applied directly to the result of another 'not' operator.");
                }
            }

            return null;
        }
 public override ConstraintViolation VisitUnaryOperatorNode(UnaryOperatorNode unNode)
 {
     return null;
 }
Esempio n. 3
0
        private Nodes.ParseTreeNode ParseNotExpression(IEnumerator<Token> tokenStream)
        {
            if (tokenStream.Current.TokenType == TokenType.UnaryOperator && tokenStream.Current.Value == "~")
            {
                var notNode = new Nodes.UnaryOperatorNode();

                notNode.Operator = tokenStream.Current;
                tokenStream.MoveNext();

                notNode.Operand = this.ParseNotExpression(tokenStream);

                return notNode;
            }
            else
            {
                return this.ParseParenExpression(tokenStream);
            }
        }
Esempio n. 4
0
 public abstract ConstraintViolation VisitUnaryOperatorNode(UnaryOperatorNode unNode);