public override string ToString() { return(CurChar.ToString()); }
static void Main(string[] args) { string StringPlane = "что !,:? ты сейчас \"сделал\"?"; MachStates State = MachStates.ScanNormal;//init to 1 char CurChar; string CurWord = ""; List <string> finalList = new List <string>() { "" }; //создаем пустой лист //заготовка под ввод с консоли /* * Console.ReadLine()... * if(!Plane.length) * >gg, wp, close*/ Console.WriteLine(StringPlane); Console.WriteLine("\n"); for (int Inx = 0; Inx < StringPlane.Length; Inx++) { CurChar = StringPlane[Inx]; /*обработка состояния*/ switch (State) { case MachStates.ScanNormal: #if (DEB) Console.WriteLine("Entered Scan Normal!"); #endif if (CurChar == '\"') { if (CurWord != "") { finalList.Add(CurWord); } CurWord = "\""; State = MachStates.ScanQuoted; } //то есть Текущий символ не был найден в списке restricted else if (ScanRestrictedChars(CurChar, restricted_chars) != 0) { if (CurWord != "") { finalList.Add(CurWord); CurWord = ""; } State = MachStates.ScanPunctuation; } else { CurWord += CurChar; } break; case MachStates.ScanQuoted: #if (DEB) Console.WriteLine("Entered Scan Quoted!"); #endif CurWord += CurChar; if (CurChar == '\"') { finalList.Add(CurWord); CurWord = " "; State = MachStates.ScanNormal; } break; case MachStates.ScanPunctuation: #if (DEB) Console.WriteLine("Entered Scan Punc!"); #endif if (CurChar == '"') { CurWord = "\""; State = MachStates.ScanQuoted; } else if (ScanRestrictedChars(CurChar, restricted_chars) == 0) { CurWord = CurChar.ToString(); State = MachStates.ScanNormal; } break; } /*if(State == MachStates.ScanQuoted) { Console.WriteLine("ERROR:по достижению строки текущее состояние - ScanQuoted"); } * if (CurWord != " ") * finalList.Add(CurWord);*/ } finalList.ForEach(delegate(String name) { Console.Write(name); } ); Console.ReadLine(); }