public WhenConstructed() { this.node = new UnaryOperatorNode(this.operand, unaryOperatorKind); }
private SingleValueNode ParseSingleValueNode() { SingleValueNode node = null; switch (this.tokens.Peek().TokenType) { case TokenType.FunctionName: node = this.ParseSingleValueFunctionCall(); break; case TokenType.UnaryOperator: var token = this.tokens.Dequeue(); node = this.ParseSingleValueNode(); node = new UnaryOperatorNode(node, UnaryOperatorKindParser.ToUnaryOperatorKind(token.Value)); break; case TokenType.OpenParentheses: this.groupingDepth++; this.tokens.Dequeue(); node = this.ParseSingleValueNode(); break; case TokenType.PropertyName: node = this.ParseSingleValuePropertyAccess(); break; default: throw new NotSupportedException(this.tokens.Peek().TokenType.ToString()); } return node; }
/// <summary> /// Binds the specified <see cref="UnaryOperatorNode"/>. /// </summary> /// <param name="unaryOperatorNode">The <see cref="UnaryOperatorNode"/> to bind.</param> protected abstract void BindUnaryOperatorNode(UnaryOperatorNode unaryOperatorNode);