Skip to content

Latest commit

 

History

History
15 lines (15 loc) · 2.13 KB

File metadata and controls

15 lines (15 loc) · 2.13 KB

Немного про синтаксическое дерево

Как выглядит:

  1. На самом верхнем уровне располагается MAIN -> часть программы, которая должна будет выполнится на других этапах запуска программы.
  2. Разбирается каждая строка и строится Vertex в синтаксическом дереве, которая соответствует использованию какого-либо синтаксиса языка.
  3. На дальнейших уровнях представлены параметры, с которыми будет вызываться функция или операция.

Дизъюнкция:

В синтаксическом дереве дизъюнкция выглядит как вершина LOGICAL_OR, от которой идут 2 ребра. Они могут быть цельные линии, а могут быть пунктирные линии.

  1. Цельная линия означает, что дальнейшее поддерево будет выполняться.
  2. Пунктирная линия означает, что дальнейшее поддерево НЕ будет выполняться.

Коньюнкция:

В синтаксе данного языка коньюнкция это ;. То есть каждая строка кода должна выполнится, что является конъюнкцией.

Унификация:

Создается Vertex, в котором изображена операция, влево идёт ребро в вершину с названием первой переменной, вправо идёт ребро в вершину с названием второй переменной.

Конструктор:

Создается Vertex, в котором изображена struct, из этой вершины идут ребра в переменные или конструкторы, которые внутри этого конструктора.