Используя паттерн декоратор, реализовать набор классов, позволяющий разнообразным образом переводить C++ код в HTML страницы: с подсветкой ключевых слов или токенов, расстановкой номеров строк и пр.
Реализовать класс, который принимает ссылку на текст в конструкторе, и имеет функцию write(ostream & out)
, которая записывает этот текст в выходной поток.
Реализовать несколько классов-декораторов над вышеописанным классам
Пример:
<html>
<body>
<pre># include <iostream>
void main() {
std::cout << "Hellow world!";
}
</pre>
</body>
</html>
Пример:
<html>
<body>
<pre> 1| # include <iostream>
2| <font color=0000FF>void</font> main() {
3| std::cout << "Hellow world!";
4| }
</pre>
</body>
</html>
<font color=(цвет в hex представлении)>
. Цвет описывается в RGB представлении – по байту на компонент. То есть 000000 – черный, FF0000 – красный, 00FF00 – зеленый, 0000FF – синий.Пример:
<html>
<body>
<pre># include <iostream>
<font color=0000FF>void</font> main() {
std::cout << "Hellow world!";
}
</pre>
</body>
</html>
flag
, то она везде будет подсвечена одинаковым цветом. Аналогично с именами функций. Цвет для лексемы выбирается случайно, с превалированием к тёмным оттенкам (предполагается белый фон).Пример для подражания