/// <summary>Initializes a new instance of the ExprNode class</summary> /// <param name="termNode">Term object</param> /// <param name="termsWithOperators">Terms with Operators</param> public ExprNode(TermNode termNode, ReadOnlyCollection <TermWithOperatorNode> termsWithOperators, ReadOnlyCollection <ImportantCommentNode> importantComments) { Contract.Requires(termNode != null); this.TermNode = termNode; this.TermsWithOperators = termsWithOperators ?? (new List <TermWithOperatorNode>()).AsReadOnly(); this.ImportantComments = importantComments ?? (new List <ImportantCommentNode>()).AsReadOnly(); this.UsesBinary = false; }
/// <summary>Initializes a new instance of the TermWithOperatorNode class</summary> /// <param name="op">Operator string</param> /// <param name="termNode">Term object</param> public TermWithOperatorNode(string op, TermNode termNode) { Contract.Requires(termNode != null); if (string.IsNullOrWhiteSpace(op)) { op = CssConstants.SingleSpace.ToString(); } // Member Initialization this.Operator = op; this.TermNode = termNode; }
/// <summary> /// Determines if the node is equal to another node /// </summary> /// <param name="termNode"> another term node</param> /// <returns> Equal or not.</returns> public bool Equals(TermNode termNode) { bool equals = termNode.IsBinary == this.IsBinary && termNode.UnaryOperator == this.UnaryOperator && termNode.NumberBasedValue == this.NumberBasedValue && termNode.StringBasedValue == this.StringBasedValue && termNode.Hexcolor == this.Hexcolor; if (this.FunctionNode != null && termNode.FunctionNode != null) { return(equals && termNode.FunctionNode.Equals(this.FunctionNode)); } else if (this.FunctionNode == null && termNode.FunctionNode == null) { return(equals); } else { return(false); } }