Напишите 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
на единицу при каждой встрече с датой. - Вывод количества найденных дат на экран.
- Ввод исходных данных в стандартный ввод (обычно с клавиатуры).
- Запуск лексического анализатора (сканера) для разбора введённых данных.
- Вывод результата работы программы (количество найденных дат).
- Возврат нуля для успешного завершения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д