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 Интерфейс программы
Ввод текста программы производится в соответствующее поле. После нажатия на кнопку “Обработка” программа удаляет коментарии и лишние пробелы, результат записывается в соответствующее поле. При нажатии на “Анализ” программа выделяет лексемы и выводит дескрипторный код и псевдокод в соответствующие поля, так же в соответсвующем поле отображается ошибка. При нажатии на “Сброс” программа перейдет в начальное состояние. При нажатии “Пример кода” программа выведет пример для обработки и анализа.