.dataStructures;System.IO;lab3_Sintax
{partial class Form1: Form
{Form1 ()
{();
} struct AllWords
{string lName; int charNumber; int rowNumber; int charInRowNumber;
} AllWords [] Lexems;
/ / ключові словаstring [] KeyWords={«ціле»,/*«дробове»,«символ»,«рядок»,*/
«якщо»,«то»,/*«інакше»,«для»,*/«доки»,
«ПРОГРАМА»,«КІНЕЦЬ»,«закрити»,
«правдивість», «Хибне»,
«друк»};
/ / Оператори та синтаксичні сімволіstruct Oper
{string name; string type;
} Oper [] Operators=new Oper [] {new Oper {name=«+», type=«Знак суми»}, Oper {name=«-», type =«Знак різніці»}, Oper {name="*", type=«Знак множення»}, Oper {name="/", type=«Знак ділення»}, Oper {name= «=», type=«Знак прісвоєння»}, Oper {name=«==», type=«Перевірка на Рівність»}, Oper {name=«+ +», type=« ; Інкремент »}, Oper {name =« - », type =« Декремент »}, Oper {name =« & », type =« логічне І »}, Oper {name =« | | », type =« логічне АБО »}, Oper {name =«! », type =« логічне НЕ »}, Oper {name =«> », type =« Знак порівняння » ;}, Oper {name="<", type=«Знак порівняння»}, Oper {name=«(», type=«Відкріваюча дужка»}, Oper {name=«)» ;, type=«Закріваюча дужка»}, Oper {name="{», type=«Знак Відкриття блоку»}, Oper {name=«}», type=«Знак Закриття блоку»} , Oper {name=«,», type=«Кома (синтаксис)»}, Oper {name=«;», type=«Знак Закінчення рядка»},
/ / new Oper {name=«[», type=«Відкріваюча кв.дужка»},
/ / new Oper {name=«]», type=«Закріваюча кв.дужка»}, Oper {name=«" », type =« лапка. позначені тексту »}
};
/ / Бінарні дерева: TBinarySTree BTKeyWords=new TBinarySTree (); TBinarySTree BTOperators=new TBinarySTree (); int errorCount=0;// Лічильник помілокbool LexAnalizPerformed=false;// Чі БУВ зроблений лексічній аналізbool AnalizPerformed=false;// Чув БУВ проведень повний аналіз
/ / Формуємо бінарні дерева ідентіфікаторів при завантаженні форми:
public void Form1_Load (object sender, EventArgs e)
{. KeyPreview=true; i; (i=0; i <(KeyWords.Length); i + +)
{. insert (KeyWords [i], i);
} (i=0; i <(Operators.Length); i + +)
{. insert (Operators [i]. name, i);
}
/ * Приклад поиска в дереві: fs=BTOperators.findSymbol («(»);. Show (fs.name + Operators [(int) fs.value]. type); p>
* /
/ * Віклікаємо функцію Заповнення матріці передування * / ();
/ / Заборона Редагування віхідног кодом:. ReadOnly=true;
/ / Додамо вспліваючі підказки: tip1=new ToolTip ();. SetToolTip (LoadButton, «Оберіть текстовий файл програми nАбо надрукуйте его в текстовому полі нижчих»);
}
/ / шлях последнего фал...