| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- using System.Collections;
- using IwbZero.ToolCommon.StringModel;
- namespace IwbZero.Expr
- {
- public class ExprObject
- {
- // Fields
- // Methods
- public ExprObject(string pcExpr)
- {
- Expr = "";
- Value = "";
- ChildNodes = new ArrayList();
- Expr = pcExpr;
- ElementType = ExprElements.Expression;
- }
- public ExprObject(string pcExpr, ExprElements poElementType)
- {
- Expr = "";
- Value = "";
- ChildNodes = new ArrayList();
- Expr = pcExpr;
- ElementType = poElementType;
- }
- public void AddChild(ExprObject poNode)
- {
- ChildNodes.Add(poNode);
- }
- public ExprObject Clone()
- {
- ExprObject exprObject = new ExprObject(Expr, ElementType);
- foreach (ExprObject expr2 in ChildNodes)
- {
- exprObject.ChildNodes.Add(expr2.Clone());
- }
- return exprObject;
- }
- public bool ContainOp(string pcOpId)
- {
- for (int i = 0; i < ChildCount; i++)
- {
- ExprOperator @operator = GetChild(i).GetOperator();
- if ((@operator != null) && (@operator.Id.UAndT() == pcOpId.UAndT()))
- {
- return true;
- }
- }
- return false;
- }
- public ExprObject GetChild(int piIndex)
- {
- ExprObject exprObject = null;
- if ((piIndex >= 0) && (piIndex < ChildNodes.Count))
- {
- exprObject = (ExprObject)ChildNodes[piIndex];
- }
- return exprObject;
- }
- public ExprOperator GetOperator()
- {
- ExprOperator @operator = null;
- if (ElementType == ExprElements.Operator)
- {
- @operator = (ExprOperator)EvalExpr.Operators[Expr];
- }
- return @operator;
- }
- public void InsertChildAt(ExprObject poNode, int piIndex)
- {
- ChildNodes.Insert(piIndex, poNode);
- }
- public void RemoveChildAt(int piIndex)
- {
- ChildNodes.RemoveAt(piIndex);
- }
- public override string ToString()
- {
- return (ElementType.ToString() + "---" + Expr);
- }
- public int ChildCount => ChildNodes.Count;
- public ArrayList ChildNodes { get; }
- public ExprElements ElementType { get; set; }
- public string Expr { get; set; }
- public bool IsOperator => (GetOperator() != null);
- public string Value { get; set; }
- }
- }
|