protected override void Parse()
        {
            this.Items = new List <EquationPlaceHolderFilterItem>();

            string[] parts = this.Source.Split(' ');

            for (int i = 0; i < parts.Length; i++)
            {
                if (parts[i] == "AND" || parts[i] == "OR")
                {
                    continue;
                }

                EquationPlaceHolderFilterOperator op = EquationPlaceHolderFilterOperator.AND;

                if (i > 0 && (parts[i - 1] == "AND" || parts[i - 1] == "OR"))
                {
                    op = (EquationPlaceHolderFilterOperator)Enum.Parse(
                        typeof(EquationPlaceHolderFilterOperator),
                        parts[i - 1]
                        );
                }

                EquationPlaceHolderFilterCategory category = new EquationPlaceHolderFilterCategory(
                    base.PlaceHolder,
                    parts[i],
                    op
                    );

                this.Items.Add(category);
            }
        }
 public EquationPlaceHolderFilterCategory(
     EquationPlaceHolder placeHolder,
     string source,
     EquationPlaceHolderFilterOperator op
     )
     : base(placeHolder, source)
 {
     this.Operator = op;
 }