public TreeProcessor(string programm) { Processors = new Processors.IProcessor[] { new ProccessВыражение(), new ProccessЕсли(), new ProccessЕслиТо(), new ProccessЕслиИначе(), new ProccessВызов(), new ProccessРезультат(), }; var atoms = programm.Split(new[] { Environment.NewLine, ";" }, StringSplitOptions.None); Seed = _proccess(null, atoms, 0); }
private AbstractTreeItem _proccess(AbstractTreeItem seed, string[] atoms, int i) { AbstractTreeItem item; var conStart = "ЕСЛИ,ТО,ИНАЧЕ,ВЫЗОВ,РЕЗУЛТАТ".Split(new[] { "," }, StringSplitOptions.None); ; var atom = atoms[i]; if (conStart.Any(atom.StartsWith)) { foreach (var processor in Processors) { if (processor.Proccess(atom, seed, out item)) break; } } else { //присвоения } throw new NotImplementedException(); }