private void MarkRule_GenerateAllMarksHandler(object sender, MarkRuleEventArgs e) { var path = e.GetRulesPath(); if (_marks.ContainsKey(path) == false) { _marks.Add(path, ActionsDescription.TryParse("", "")); } }
private State OnMarkRule(State start, List<string> rulenames) { if (MarkRule != null) { var args = new MarkRuleEventArgs(start, rulenames); MarkRule(this, args); return args.Start; } return start; }
private void MarkRuleHandler(object sender, MarkRuleEventArgs e) { var path = e.GetRulesPath(); ActionsDescription mark; if (_marks.TryGetValue(path, out mark) && mark.IsEmpty == false) { mark.UseCount++; foreach (var action in mark.Actions) { switch (action.Mark) { case Marks.Custom: e.Start = State.MarkCustom(e.Start, action.Args[0], action.Args[1], action.Args[2], action.Args[3]); break; case Marks.Const: e.Start.MarkConst(action.Args[0], action.Args[1], int.Parse(action.Args[2])); break; case Marks.Range: e.Start = State.MarkRange(e.Start, action.Args[0], int.Parse(action.Args[1]), int.Parse(action.Args[2])); break; case Marks.BeginRange: e.Start = State.MarkBeginRange(e.Start, action.Args[0], action.Args[1] == "AtBegin", int.Parse(action.Args[2])); break; case Marks.EndRange: case Marks.EndRangeIfInvalid: e.Start = State.MarkEndRange(e.Start, action.Mark, action.Args[0], action.Args[1] == "AtBegin", int.Parse(action.Args[2])); break; case Marks.ContinueRange: e.Start.MarkContinueRange(action.Args[0]); break; case Marks.Decimal: e.Start.MarkDecimal(action.Args[0], action.Args[1], action.Args[2]); break; case Marks.Hex: e.Start.MarkHex(action.Args[0], action.Args[1], action.Args[2]); break; case Marks.Count: e.Start.MarkCount(action.Args[0], int.Parse(action.Args[1]), int.Parse(action.Args[2])); break; case Marks.Bool: case Marks.BoolEx: case Marks.BoolExNot: e.Start.MarkBool(action.Mark, action.Args[0]); break; case Marks.ResetRange: e.Start.MarkReset(action.Args[0]); break; case Marks.ResetRangeIfInvalid: e.Start.MarkResetIfInvalid(action.Args[0]); break; //case Marks.Error: // e.Start = State.MarkAlternativesAsError(e.Start); // break; default: throw new Exception(); } } } }
private void MarkRule_GenerateAllMarksHandler(object sender, MarkRuleEventArgs e) { var path = e.GetRulesPath(); if (_marks.ContainsKey(path) == false) _marks.Add(path, ActionsDescription.TryParse("", "")); }