public void NotEqualsTest()
		{
			ExpressionToken token = new ExpressionToken(_serviceProvider, "a");
			ExpressionToken token2 = new ExpressionToken(_serviceProvider, "b");

			Assert.IsTrue(token != token2);
		}
		private void CreateTree(ExpressionToken[] tokens)
		{
			_root = null;
			_tokensQueue = new Queue(tokens);
			NextToken();

			_root = ExprLevel1();

			if (CurrentToken != ExpressionToken.Empty)
			{
				throw new ExpressionSyntaxException(Resources.ExpressionSyntax_OperatorExpected, _expression, _parsedExpression);
			}
		}
		private void NextToken()
		{
			if (_tokensQueue.Count > 0)
			{
				_parsedExpression += CurrentToken.TokenBody;
				_currentToken = (ExpressionToken)_tokensQueue.Dequeue();
			}
			else
			{
				_currentToken = ExpressionToken.Empty;
			}
		}
		public ExpressionTreeNode(ExpressionToken token, ExpressionTreeNode leftNode, ExpressionTreeNode rightNode)
		{
			_token = token;
			_leftNode = leftNode;
			_rightNode = rightNode;
		}
		public static ExpressionTreeNode BuildExpressionNode(INuGenServiceProvider serviceProvider, NodeBase schemaNode)
		{
			if (schemaNode == null)
			{
				return null;
			}

			if (NeedToSkip(schemaNode))
			{
				throw new InvalidOperationException("Expression node connected to unsupported node. Expression node cannot be recognized");
			}

			ExpressionTreeNode node = null;

			if (schemaNode is Operator)
			{
				ExpressionToken token = new ExpressionToken(serviceProvider, ((Operator)schemaNode).OperatorDescriptor.StringRepresentation);
				node = new ExpressionTreeNode(token);

				switch (token.OperatorDescriptor.PrimitiveOperator)
				{
					case PrimitiveOperator.Add:
					case PrimitiveOperator.Sub:
					case PrimitiveOperator.Mul:
					case PrimitiveOperator.Div:
					{
						node.LeftNode = BuildExpressionNode(serviceProvider, schemaNode.Inputs[0].Connection.Node);
						node.RightNode = BuildExpressionNode(serviceProvider, schemaNode.Inputs[1].Connection.Node);
						break;
					}
				}

				if (token.IsOneVariableFunction)
				{
					node.LeftNode = BuildExpressionNode(serviceProvider, schemaNode.Inputs[0].Connection.Node);
				}

				if (token.IsTwoVariableFunction)
				{
					node.LeftNode = BuildExpressionNode(serviceProvider, schemaNode.Inputs[0].Connection.Node);
					node.RightNode = BuildExpressionNode(serviceProvider, schemaNode.Inputs[1].Connection.Node);
				}

				return node;
			}

			if (schemaNode is NumberParam)
			{
				return new ExpressionTreeNode(new ExpressionToken(serviceProvider, ((NumberParam)schemaNode).Name));
			}

			if (schemaNode is VisiTypes.Number)
			{
				return new ExpressionTreeNode(new ExpressionToken(serviceProvider, ((VisiTypes.Number)schemaNode).Value.ToString()));
			}

			return null;
		}
		public ExpressionTreeNode(ExpressionToken token, ExpressionTreeNode leftNode)
			: this(token, leftNode, null)
		{
		}
		public ExpressionTreeNode(ExpressionToken token)
			: this(token, null, null)
		{
		}
Example #8
0
 public ExpressionTreeNode(ExpressionToken token, ExpressionTreeNode leftNode, ExpressionTreeNode rightNode)
 {
     _token     = token;
     _leftNode  = leftNode;
     _rightNode = rightNode;
 }
Example #9
0
 public ExpressionTreeNode(ExpressionToken token, ExpressionTreeNode leftNode)
     : this(token, leftNode, null)
 {
 }
Example #10
0
 public ExpressionTreeNode(ExpressionToken token)
     : this(token, null, null)
 {
 }