Esempio n. 1
0
        protected bool Add(ExprMatchGroup subGroup, bool addToParent)
        {
            if (subGroup.StartIndex >= StartIndex && subGroup.EndIndex <= EndIndex)
            {
                bool added = false;

                foreach (List<ExprMatchGroup> emgList in SubGroups.Values)
                {
                    foreach (ExprMatchGroup emg in emgList)
                    {
                        if (subGroup.StartIndex >= emg.StartIndex && subGroup.EndIndex <= emg.EndIndex)
                        {
                            if (emg.Add (subGroup))
                            {
                                added = true;
                                break;
                            }
                        }
                    }

                    if(added)
                        break;
                }

                if (!added || addToParent)
                {
                    if (!SubGroups.ContainsKey (subGroup.Name))
                        SubGroups.Add (subGroup.Name, new List<ExprMatchGroup> ());

                    SubGroups [subGroup.Name].Add (subGroup);
                }

                return true;
            }

            return false;
        }
Esempio n. 2
0
 public bool Add(ExprMatchGroup subGroup)
 {
     return Add (subGroup, false);
 }
Esempio n. 3
0
            public IfCondition(ExprMatchGroup ifConditionGroup)
            {
                IsNegated = ifConditionGroup.GetGroupValue(GROUP_IF_NOT) == "not";

                LeftVar = ifConditionGroup.GetFilteredVariable(GROUP_IF_L_VAR);
                if(LeftVar == null)
                    LeftVar = ifConditionGroup.GetAsFilteredVariable();
                else
                {
                    RightVar = ifConditionGroup.GetFilteredVariable(GROUP_IF_R_VAR);
                    Operator = ifConditionGroup.GetGroupValue(GROUP_IF_OP);
                }
            }