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; }
public bool Add(ExprMatchGroup subGroup) { return Add (subGroup, false); }
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); } }