(«ПРОГРАМА»)!=0)
{+ +; + +; (errorCount, 0, 0, «1», «»);
} (richTextBox1.Text.IndexOf («КІНЕЦЬ»)!=richTextBox1.Text.Length - 6)
{+ +; + +; (errorCount, richTextBox1.Lines.Length + 1, 0, «1», «»);
}
/ / Перевірімо на к-ть відкріваючіх / закріваючіх дужок, лапки перевирялісь раніше:
char [] controlCharText=richTextBox1.Text.ToCharArray (); openBracketCount=0, closeBracketCount=0, openZBracketCount=0, closeZBracketCount=0; (i=0; i
{(controlCharText [i])
{«{»:++;;«}»:++;;«(»:++;;«)»:++;;
}
} (openBracketCount!=closeBracketCount)
{+ +; + +; (errorCount, 0, 0, «2», «»);
} (openZBracketCount!=closeZBracketCount)
{+ +; + +; (errorCount, 0, 0, «3», «»);
} (quotesCount% 2 == 1)
{+ +; + +; (errorCount, 0, 0, «9», «»);
}
/ / помилка, пов язані з результатом згортання: (SyntText!=«B» && SyntText!=«B» && quotesCount% 2 == 0)
{(SyntText == «S» | | SyntText == «S») / / синтаксичний аналізатор НЕ спріймає порожнього тексту
{+ +; + +; (errorCount, 0, 0, «4», «»);
} if (SyntText.Contains («E E»))
{+ +; + +; (errorCount, 0, 0, «6», «»);
} if (SyntText.Contains («+») | | SyntText.Contains («=») | | SyntText.Contains («-») | | SyntText.Contains ("/") | | SyntText.Contains ("*") | | SyntText.Contains («>») | | SyntText.Contains («<») | | SyntText.Contains («==»))
{+ +; + +; (errorCount, 0, 0, «7», «»);
}
{
/ / віключімо згадані Вище помилки з неправильною кількістю дужок
if (openZBracketCount == closeZBracketCount | | openBracketCount == closeBracketCount)
{+ +; + +; (errorCount, 0, 0, «5», «»);
}
}
}. Stop (); (SyntErrCount!=0)
{. Show («синтаксичною аналіз проведено за годину:» + time.Elapsed.ToString () + «c nЗнайдено синтаксичних помилок:» + SyntErrCount.ToString () + « nРезультат згортання синтаксичного аналізатора: n »+ SyntText);
}
{. Show («синтаксичною помилок | Полтава! Nчас роботи аналізатора:» + time.Elapsed.ToString () + «с nРезультат згортки: n» + SyntText);
}
}
{. Show («Для роботи синтаксичною аналізатора звітність, спочатку провести лексічній аналіз»);
}
/ / семантичності АНАЛІЗАТОР:
/ * Формуємо список оголошених ідентіфікаторів: * /
int DeclaredIdentCount=0; (i=0; i
{(LexGridView [«mean», i]. Value.ToString () == «змінна»)
{/ / ЯКЩО змінна буде дерти словом, то попереднє НЕ існуватіме
<...