Напишите LEX-программу для подсчета количества календарных дат в текстовом файле. - C (СИ)
Формулировка задачи:
Здравствуйте. Очень нужна помощь в написании лекс-программы для С.
Задание:Напишите LEX-программу для подсчета количества календарных дат в текстовом файле.
Спасибо за внимание.
Решение задачи: «Напишите LEX-программу для подсчета количества календарных дат в текстовом файле.»
textual
Листинг программы
%{ #include <stdio.h> static int ndates = 0; %} %% /* DD-MM-YYYY and DD/MM/YYYY */ (0[1-9]|[12][0-9]|3[01])[\-/ ](0[1-9]|1[012])[\-/ ](19|20)[0-9][0-9] { printf("found date: \"%s\".\n", yytext); ndates++; } .|\n {} %% int main(void) { yylex(); printf("ndates=%d\n", ndates); return 0; }
Объяснение кода листинга программы
- Подключение стандартной библиотеки файлов C.
- Объявление статической переменной
ndates
типаint
, которая будет использоваться для подсчета количества найденных дат. - Определение правил для работы с датами в формате DD-MM-YYYY и DD/MM/YYYY.
- Увеличение счётчика
ndates
на единицу при каждой встрече с датой. - Вывод количества найденных дат на экран.
- Ввод исходных данных в стандартный ввод (обычно с клавиатуры).
- Запуск лексического анализатора (сканера) для разбора введённых данных.
- Вывод результата работы программы (количество найденных дат).
- Возврат нуля для успешного завершения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д