Как разобрать оператор IF с помощью C#?
Всем Привет,
Я пытаюсь создать свой собственный простой язык для моего приложения C# с помощью таких команд, как:
MAKE_LETTER
СООБЩЕНИЕ
ОБНОВЛЕНИЕ
CREATECASE
ЕСЛИ ЕЩЕ КОНЕЦ
Однако у меня возникли проблемы с разбором оператора IF. Мне это нужно, чтобы, если условие с оператором if истинно, то оно переходит к следующему концу в текстовом файле. Однако если это условие не выполняется, то переходите к следующему другому. Я включил свой код ниже, чтобы вы могли видеть, где я иду не так.
Любая помощь была бы очень оценена!
Что я уже пробовал:
<pre>string strLine = string.Empty; string strFile = @"d:\test.txt"; ArrayList arr = new ArrayList(); StreamReader sr = new StreamReader(strFile); while (sr.Peek() >= 0) { strFile = sr.ReadLine(); arr.Add(strFile); } for (int i = 0; i < arr.Count; i++) { if (i > 0) { string s1 = arr[i].ToString(); // MessageBox.Show(s1); if (s1.Contains("IF")) { string field = ""; string message = ""; bool con_met = false; if (s1.Contains("[") || s1.Contains("]")) { field = s1.Split('[', ']')[1]; string table = field.Split('.')[0]; string field_value = field.Substring(field.LastIndexOf('.') + 1); string value = Run_Code.Get_db_val123(table, field_value); Global_Variables.case_ref = "TEST"; //MessageBox.Show(value); message = s1.Split('"', '"')[1]; // MessageBox.Show("IF " + value + "== " + message); if (value == message) { MessageBox.Show("Conditon Met"); //MessageBox.Show(s1) //i = i + 1; i = End_pos; } else { i = Else_pos; //MessageBox.Show("ELSE"); }
Код в текстовых файлах выглядит следующим образом:
//MESSAGE("Testing123") IF "Patrick" = "Patrick" THEN MAKE_LETTER(test150) ELSE //DO Something here END
BillWoodruff
вы являетесь автором формата файла, который вы читаете ?
patrickb123
Да.
BillWoodruff
почему вы решили использовать именно этот формат ?