Интерпретатор на языке Racket.

Иван1 год в сервисе
Данные заказчика будут вам доступны после подачи заявки
07.08.2024

программа, генерирующая SVG-изображения. Интерпретатор оценивает данную программу и возвращает строку, содержимое которой является SVG-изображением (детальное объяснение задания отправлю). Вычисление выражения в отношении программы SVGen возвращает строку, представляющую изображение SVG. Выходная строка генерируется вызовами функций SVG-примитивов, которые генерируют соответствующие теги SVG. Семантика SVG-примитивов определяется следующим образом:

The (circle x y r style) преобразуется в SVG-тег <circle>, где x, y - координаты начала координат, r радиус и style строка параметров стиля. Например,

- координаты начала координат, радиус и строка параметров стиля.
Например,
> (circle 50 40 20 "fill:blue")

<circle cx="50" cy="40" r="20" style="fill:blue"/>

тест кейсы (не все):
линия
> (display (execute 400 400 '()

'(line 10 20 30 40 "stroke:black;stroke-width:5")))

<svg width="400" height="400">

<line x1="10" y1="20" x2="30" y2="40" style="stroke:black;stroke-width:5"/>

</svg>

круг
> (display (execute 400 400

'((define STYLE "fill:red"))

'(circle 200 200 (floor (/ 200 3)) STYLE)))

<svg width="400" height="400">

<circle cx="200" cy="200" r="66" style="fill:red"/>

</svg>

Заявки фрилансеров