Задание №3
«Из C в HTML»

Описание задачи

Это одна из тех программ, которые очень нужны, но написать их нет времени.
Очевидно, что только преобразование исходного текста из Си в HTML -- задачка для первоклассника. Требуется каждое использующее вхождение идентификатора сделать гиперссылкой на его определяющее вхождение. Предполагается, что исходная программа синтакически верна.
Например (способ именования закладок в данном случае не является образцом!):

Текст на C Текст в HTML
#include <stdio.h>
int sign(float f)
{
return (f<0?-1:f>0);
}
int main()
{
float f;
do {
printf("Input number (0-exit):");
scanf("%f", &f);
switch (sign(f)) {
case 1:
printf("%f>0\n", f);
break;
case -1:
printf("%f<0\n", f);
break;
default: printf("%f==0\n", f);
} while (f != (float)0);
return 0;
}
#include <stdio.h>
int
sign(float f)
{
return (
f<0?-1:f>0);
}
int main()
{
float
f;
do {
printf(
"Input number (0-exit):");
scanf(
"%f", &f);
switch (
sign(f)) {
case 1:
printf(
"%f>0\n", f);
break;
case -1:
printf(
"%f<0\n", f);
break;
default: printf(
"%f==0\n", f);
} while (
f != (float)0);
return 0;
}

Усложнение (по желанию студента):

  • выполнение преобразования над группой файлов, представляющих проект (гиперссылки на общий заголовочный файл, определяющее вхождение может находиться в другом исходном файле и т.п.);
  • выделение полужирным и/или цветом ключевых слов языка в тексте программы.

Упрощение (по желанию студента, со снижением итоговой оценки): сделать из программы только безмолвную утилиту c2html options infile outfile


Функциональные требования:
  1. Программа должна быть реализована в консоли (графический или текстовый режим по выбору студента). Использование визуальных средств должно быть согласовано с преподавателем.
  2. Пользовательский интерфейс должен предоставлять возможность выбора файла с текстом программы, просмотра исходного текста и результата преобразования одновременно, а также возможность редактирования исходного текста и результата. Можно взять за основу интерфейс Turbo-оболочки от Borland Pascal 7.0.
  3. Программа должна предусматривать возможность запуска программы в пакетном режиме: без интерфейса прочитал исходный файл, записал результат в выходной файл.