Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Не забывайте пересобирать программу, когда меняете её исходный текст.

Если тестируете программу с клавиатуры, конец ввода в Windows – Ctrl+Z, в Unix – Ctrl+D.

Часть 1

Срок выполнения: 23 ноября – 7 декабря

...

Соответствующий выход: 56mimpo,m! ?ku! M?1000?!=?!

Часть 2

Срок выполнения: 30 ноября – 14 декабря

Загрузить flex для Windows можно здесь: https://sourceforge.net/projects/winflexbison/

Документация по flex:  http://www.delorie.com/gnu/docs/flex/flex_toc.html

Задание

Напишите программу для flex (действия на Си++) согласно варианту.

Примеры

Скелетный проект для Creator, копирование входа на выход; flex уже настроен для сборки прямо из среды, см. pro-файл: lex-sample.zip

...

Вывод целых чисел, возможно со знаком:  integers.l

Десятичные дроби:  real.l

Удаление текста в кавычках:  rm-string.l

Удаление экранированных символов в строках:  rm-esc-in-str.l

Варианты

Определения последовательностей для данной лабораторной

Комментарий Синачинается: /*
кончается: */
Комментарий Си++

начинается: //
кончается: "перевод строки" (перед которым нет \)

примеры:

// вечный цикл

// Мой дядя самых честных правил, \
Когда не в шутку занемог,     \
   Он уважать себя заставил\
И лучше выдумать не мог.

Строковая константа

начинается: "
кончается: " или "перевод строки" (перед которыми нет \)

примеры:

"Привет, Земля!"

"Это неправильная константа Си++, но мы будем считать её строкой.

"А Балда приговаривал с укоризной: \
\"Не гонялся бы ты, поп, за дешевизной\"."

Целая константа

одно из:
1) последовательность десятичных цифр (0123456789), первая – не 0;
2) последовательность (может, пустая) восьмеричных цифр (01234567) после 0;
3) последовательность шестнадцатеричных цифр (0123456789abcdef) после 0x
(все буквы могут быть строчными и заглавными)

в конце любого варианта могут стоять: l, u, lu или ul (строчные6. )

примеры: 21562216261217659, 02241l, 0, 0x23d1a7u, 875465ul

Расчёт номера своего варианта см. на странице Успеваемость студентов.

0. Вывести целые константы, которые находятся вне комментариев Си.

1. Удалить (со всем содержимым) комментарии Си, которые находятся внутри строковых констант.

2. Внутри комментариев Си++ удалить целые константы.