Исследование лексического анализатора

Страницы работы

Содержание работы

Лабораторная работа №5

Лексический анализатор

Цель:  Исследование  лексического анализатора

Ход выполнения работы

  1. Файл scan.l содержит описание токенов для подготовки лексического сканера с использованием программы lex. При использовании следующей команды: lex scan.l получаем на выходе файл сканера на языке С в той же самой директории где была использована выше приведенная  команда  т.е файл с названием scan.yy.c
  2. Структура файла lex.yy.c. В начале файла подключаются необходимые заголовочные файлы. Далее определяются при помощи макроопределений константы, необходимые функции (в зависимости от опций компиляций), структуры, статические переменные и функции. В конце программы следует функция main листинг которой приведен ниже.

Листинг файла main:

main()                                   

{

printf("Lex  \t\tToken\t\t\n");

printf("----------------------------\n");

do

{

ch = yylex();  

if (ch == SEMISYM)

printf("%s\t\tSEMICOLON ", yytext);

else if (ch == COMMASYM)

printf("%s\t\tCOMMA ", yytext);

else if (ch == LPARSYM)

printf("%s\t\tL_PARENTHESIS ", yytext);

else if (ch == RPARSYM)

printf("%s\t\tR_PARENTHESIS ", yytext);

else if (ch == EQSYM)

printf("%s\t\tEQ_OP ", yytext);

else if (ch == PLUSSYM)

printf("%s\t\tPLUS_OP ", yytext);

else if (ch == MULTSYM)

printf("%s\t\tMULT_OP ", yytext);

else if (ch == ASGNSYM)

printf("%s\t\tASSIGNMENT_STMT ", yytext);

else if (ch == MINUSSYM)

printf("%s\t\tMINUS_OP ", yytext);

else if (ch == NUMBER)

printf("%s\t\tNUMBER ", yytext);

else if (ch == NAME)

printf("%s\t\tNAME\t\t", yytext);

else

printf("%c ",ch);

printf("\n");

}

while(ch != 0);

}


  1. Пример работы сканера:
  2.  

Вывод: в лабораторной работе исследована работа программа lex, а так же получены результаты этой программы в виде исходного кода на языке С, при компиляции которого получается лексический анализатор, преобразовывающий входной поток в последовательность токенов.

Литература

1.  А.В. Гордеев А.Ю. Молчанов. Системное программное обеспечение. Санкт-Петербург. Питер. 2002  г. 740 с.

Похожие материалы

Информация о работе

Тип:
Отчеты по лабораторным работам
Размер файла:
81 Kb
Скачали:
0