Курсовая работа: Конструирование моделей лексического и синтаксического анализа

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

1439. }

1440. }

1441. break;

1442. case 85:

1443. if (num_tex[j] == ' ' || num_tex[j] == '\n') { add_ident(token, ref v_id); token = null; num_si = 0; }

1444. else

1445. {

1446. if (num_tex[j] == '.') { add_unId(num_tex, ref j, i); token = null; num_si = 0; }

1447. else

1448. { if (!alf(num_tex[j])){ num_si = 85; token += Convert.ToString(num_tex[j]); }

1449. else

1450. {

1451. if (numb(num_tex[j])) { num_si = 85; token += Convert.ToString(num_tex[j]); }

1452. else

1453. {

1454. if (f_synt(num_tex[j])) { add_ident(token, ref v_id); token = null; num_si = 0; j-; }

1455. else { add_unId(num_tex, ref j, i); token = null; num_si = 0; }

1456. }

1457. }

1458. }

1459. }

1460. break;

1461. case 86:

1462. if (num_tex[j] == ' ' || num_tex[j] == '\n') { add_ident(token, ref v_id); token = null; num_si = 0; }

1463. else

1464. {

1465. if (num_tex[j] == 'o') { num_si = 87; token += Convert.ToString(num_tex[j]); }

1466. else

1467. {

1468. if (num_tex[j] == '.') { add_unId(num_tex, ref j, i); token = null; num_si = 0; }

1469. else if (f_synt(num_tex[j])) { add_ident(token, ref v_id); token = null; num_si = 0; j-; }

1470. else { num_si = 85; token += Convert.ToString(num_tex[j]); }

1471. }

1472. }

1473. break;

1474. case 87:

1475. if (num_tex[j] == ' ' || num_tex[j] == '\n') { add_ident(token, ref v_id); token = null; num_si = 0; }

1476. else

1477. {

1478. if (num_tex[j] == 'i') { num_si = 88; token += Convert.ToString(num_tex[j]); }

1479. else

1480. {

1481. if (num_tex[j] == '.') { add_unId(num_tex, ref j, i); token = null; num_si = 0; }

1482. else if (f_synt(num_tex[j])) { add_ident(token, ref v_id); token = null; num_si = 0; j-; }

1483. else { num_si = 85; token += Convert.ToString(num_tex[j]); }

1484. }

1485. }

1486. break;

1487. case 88:

1488. if (num_tex[j] == ' ' || num_tex[j] == '\n') { add_ident(token, ref v_id); token = null; num_si = 0; }

1489. else

1490. {

1491. if (num_tex[j] == 'd') { num_si =54; token += Convert.ToString(num_tex[j]); }

1492. else

1493. {

1494. if (num_tex[j] == '.') { add_unId(num_tex, ref j, i); token = null; num_si = 0; }

1495. else if (f_synt(num_tex[j])) { add_ident(token, ref v_id); token = null; num_si = 0; j-; }

1496. else { num_si = 85; token += Convert.ToString(num_tex[j]); }

1497. }

1498. }

1499. break;

1500. }}num_si = 0; }}}

Приложение 3

Руководство пользователя

Общие сведения о программе

Программа на C#, моделирует работу компилятора для оператора do-while и for.

Инструкция по работе

Для того что-бы запустить программу вставте диск в дисковод.

Двараза кликните по LEX_AN.exe.

После запуска вы увидите интерфейс программы. (Рис.1)

синтаксический грамматика интерфейс анализатор

Рис. 1 Интерфейс программы

Ввод текста программы производится в соответствующее поле. После нажатия на кнопку “Обработка” программа удаляет коментарии и лишние пробелы, результат записывается в соответствующее поле. При нажатии на “Анализ” программа выделяет лексемы и выводит дескрипторный код и псевдокод в соответствующие поля, так же в соответсвующем поле отображается ошибка. При нажатии на “Сброс” программа перейдет в начальное состояние. При нажатии “Пример кода” программа выведет пример для обработки и анализа.