Разработка компиляторов



         

Пример (продолжение)


Секция процедур содержит описание функций yylex, yyerror и, конечно, функции main. Хотя, как уже было сказано, эта секция может быть опущена, если все необходимые функции содержатся в некотором другом файле, который будет компилироваться отдельно.

Итак, секция процедур для нашего примера может выглядеть следующим образом. Для полноты картины описание функции yylex приводится вновь, но на этот раз без комментариев.

int yylex (void) { int ch; /* пропускаем пробелы в начале строки */ while ((ch = getchar ()) == ' ');

if (isdigit (ch)) { ungetc (ch, stdin); scanf ("%i", &yylval); return NUMBER_LC; }

return ch; }

yyerror (char *s) { printf ("error: %s", s); }

main () { return yyparse (); }




Содержание  Назад  Вперед