"justify">// ---------------------
Додаток Б
Зберігання лексем
bool Punkt :: operator () (const AnsiString s)
{return find (punkt.begin (), punkt.end (), s)! = punkt.end ();
} :: Punkt ()
{punkt.push_back ("..."); punkt.push_back (";");. push_back (":") ; punkt.push_back (",");
Перевірка на приналежність
if (ISpunkt (sym_table [i]. chr))
{int len + +;
continue;
}
Функція перевіряє на наявність арифметичних операцій у виразі
int if_there_arifmetic_ops (long ii)
{TLexeme * Lexemes;// Знайдені лексеми: тип, тіло, рядок
cell curr_par;// об'єкт структури (сама структура в 1.h)
int Number = Form1-> scaner_result.size (); = new TLexeme [Number];// нейденние лексеми (int t = 0, j = 0; t
{//в "рядок" переміщаємо дані з ВЕЛИКОГО масиву
curr_par = Form1-> scaner_result [j];
// відразу записуємо в новий
Lexemes [j]. type = curr_par.type;
Lexemes [j]. body = curr_par.value; [j]. position = curr_par.str; + +;
} f = 0; i; cs = 0 ;//Рахунок дужок (i = ii; i
{if (Lexemes [i]. body == ";" | | Lexemes [i]. body == ",") break; (Lexemes [i]. body = = "&&" | | Lexemes [i]. body == "| |" | | Lexemes [i]. body == "<" | | Lexemes [i]. body = =">"
| | Lexemes [i]. body == "! =" | | Lexemes [i]. body == "==" | | Lexemes [i]. body == "<=" | | Lexemes [i]. body =="> =") break; (Lexemes [i]. body == "(") cs + +; (Lexemes [i]. body == ")") cs -; (cs <0) break; (Lexemes [i]. body == "+" | | Lexemes [i]. body == "-" | | Lexemes [i]. body == "*" | | Lexemes [i]. body == "/" | | Lexemes [i]. body == "^") = 1; p>
} f; [] Lexemes;
}