Пример #1
0
            public static RuleModel Parse(IEnumerable <string> input)
            {
                var model = new RuleModel();

                foreach (var line in input)
                {
                    var nullMatch = NullRuleParser.Match(line);
                    if (nullMatch.Success)
                    {
                        model.AddNodeIfNotExists(nullMatch.Groups[1].Value);
                        continue;
                    }

                    var match = RuleParser.Match(line);

                    var from = match.Groups[1].Value.Trim();

                    var toChunk = match.Groups[2].Value;

                    foreach (var part in toChunk.Split(", "))
                    {
                        var chunkMatch = ToRuleParser.Match(part);

                        var to = chunkMatch.Groups[2].Value.Trim();

                        var count = int.Parse(chunkMatch.Groups[1].Value);

                        model.AddEdge(from, to, count);
                    }
                }

                return(model);
            }