ВУЗ:
Составители:
34
4 – символы операций умножения и деления;
5 – символы операций сложения и вычитания.
Заметим, что необходимость разделения бинарных операций на две
группы диктуется их различным приоритетом, играющим важную роль при
генерации постфиксной записи.
Фрагмент программы лексического анализа:
/* prog - файл с транслируемой программой, lex -
выходной файл лексем */
while(!feof (prog))
{
ch = readsym();
/* чтение очередного символа ch с пропуском пробелов
*/
if(isAlpha(ch))
fprintf(lex, "%c %d", ch, 1);
else
if(isDigit(ch))
digit();
/* Процедура чтения числа и вывода его в файл */
else
if(ch == '=')
fprintf(lex, "%c %d", ch, 3);
else
if(ch == '*' || ch == '/')
fprintf(lex, "%c %d", ch, 4);
else
if(ch == '+' || ch == '-')
fprintf(lex, "%c %d", ch, 5);
else
printf("Недопустимый символ языка - %c \n", ch);
}
Контрольные вопросы
1. Дайте определение «лексемы».
2. В чем основная задача лексического анализатора?
3. Какие из перечисленных далее видов информации лексический анализатор
должен включать в выходной файл лексем: символы языка, номер строки для
каждой лексемы,
комментарии к программе, символы форматирования
программы (пробелы, табуляции, переходы на новую строку).
34 4 – символы операций умножения и деления; 5 – символы операций сложения и вычитания. Заметим, что необходимость разделения бинарных операций на две группы диктуется их различным приоритетом, играющим важную роль при генерации постфиксной записи. Фрагмент программы лексического анализа: /* prog - файл с транслируемой программой, lex - выходной файл лексем */ while(!feof (prog)) { ch = readsym(); /* чтение очередного символа ch с пропуском пробелов */ if(isAlpha(ch)) fprintf(lex, "%c %d", ch, 1); else if(isDigit(ch)) digit(); /* Процедура чтения числа и вывода его в файл */ else if(ch == '=') fprintf(lex, "%c %d", ch, 3); else if(ch == '*' || ch == '/') fprintf(lex, "%c %d", ch, 4); else if(ch == '+' || ch == '-') fprintf(lex, "%c %d", ch, 5); else printf("Недопустимый символ языка - %c \n", ch); } Контрольные вопросы 1. Дайте определение «лексемы». 2. В чем основная задача лексического анализатора? 3. Какие из перечисленных далее видов информации лексический анализатор должен включать в выходной файл лексем: символы языка, номер строки для каждой лексемы, комментарии к программе, символы форматирования программы (пробелы, табуляции, переходы на новую строку).
Страницы
- « первая
- ‹ предыдущая
- …
- 32
- 33
- 34
- 35
- 36
- …
- следующая ›
- последняя »