Для тестирования программы использовался следующий код на формальном языке программирования:
using System.Text;
/* многострочный
комменатрий */
public class TestClass
{
public uint a, b = 35, i;
public bool c, d;
public const long int e = 9L;
public uint Main(Param1, Param2)
{
read(a, b);
for(i = 0; i < 10; i = i + 1)
{
write(a, b, c, d, e);
a = b - (c + 2L);
d *= e - 2;
e /= 123;
break;
};
for(i = 0; i < 10; i *= 2) { continue; }
}
}
Результаты работы лексического и синтаксического анализаторов показаны на рисунке 4. В качестве результата лексического анализатора представлены две таблицы: таблица лексем и таблица имен. В первой отображены все распознанные лексемы и их класс. Во второй - имена переменных. На выходе синтаксического анализатора получается одна таблица, на которой показан весь процесс анализа, а именно: верхний символ магазина, символ входной лексемы и ее класс.
Рисунок 4 - Результат работы анализаторов.
Для проверки правильной работоспособности программы, допустим ошибку в коде:
public bool c, 1d;
В результате программа выдаст сообщение об ошибке на этапе лексического анализа (рисунок 5).
|
|
Рисунок 5 - Ошибка на этапе лексического анализа.
Для проверки синтаксического анализатора, сделаем еще одну ошибку:
public const int e = 9L;
На рисунке 6 показан результат работы синтаксического анализатора.
Рисунок 6 - Ошибка на этапе синтаксического анализа.