Что значит "Построить синтаксический анализатор для..."?

В общем недавно на фрилансе наткнулся на такой вот вид задач:введите сюда описание изображения

Естественно возникли вопросы. Заказчик написал: "Решить программу, файл с заданием прикреплен. Язык программирования любой."

Что он имел в виду? Я с такими задачами сталкиваюсь впервые и могу только догадываться про что идёт речь. Достаточно ли здесь просто определить классы для каждой переменной как тут, или нет?

class Rectangle:
    def __init__(self, topLeft, topRight, bottomLeft, bottomRight):
        self.topLeft = topLeft
        self.topRight = topRight
        self.bottomLeft = bottomLeft
        self.bottomRight = bottomRight

class Vertex:
    def __init__(self, x, y):
        self.x = x
        self.y = y

class Trapezoid(Rectangle):
    pass


if __name__ == "__main__":
    #test
    point1 = Vertex(-1, 1)
    point2 = Vertex(1, 1)
    point3 = Vertex(-1, -1)
    point4 = Vertex(1, -1)
    rect = Rectangle(point1, point2, point3, point4)

Ответы (1 шт):

Автор решения: DmitryK

Нет, недостаточно. Синтаксический анализатор должен разобрать строку и создать объекты классов, которые вы написали. Т.е. входные данные строка - {{{1.0} {0.0}} {{1.0} {1.0}} {{0.0} {1.0}} {{0.0} {0.0}}}. В результате в программе создать объект класса Rectangle, содержащий 4 объекта класса Vertex, в свою очередь содержащих 2 объекта класса число с точкой, в свою очередь содержащих 2 объекта класса целое без знака.
Причем при создании объекта нужно проверять углы - если 90 градусов, то создавать прямоугольник, если нет - то трапецию. А в остальном классы прямоугольника и трапеции одинаковые.

→ Ссылка