Тривиль — планомерное движение

После перехода от изготовления сквозного «скелета» компилятора к планомерному продвижению, сделано:

  • парсер, практически полный, кроме «может быть» типов и null safety операторов — это оставлю на потом, надо еще обдумать.
  • первая часть семантического анализа
  • для отладки добавлены
    • визуализация AST (см. ниже)
    • тесты сканера, парсера и семантики (через go test)

Теперь можно уже писать многое, но существенная часть этого «многого» еще не будет переводится в Си.

Пример текста с конструктором массива (в терминологии Го: composite literal):

массив

Компилятор умеет выдать AST в виде S-выражения, который можно вполне удобно рассматривать на сайте s-exploration. Идея визуализации в таком виде принадлежит Дмитрию Соломенникову.

Текст S-выражения строится с помощью рефлексии.

Вот такая картинка AST получается для примера выше:

s-ast

В модуле есть описание типа (TypeDecl) и Вход (EntryFn) — и далее видны под-узлы и атрибуты.

2 комментария


  1. «пусть» всё-таки не очень хорошо здесь сидит. Звучит как некое допущение.
    «задано» или «дано» звучит как некая предопределённость.
    Также может быть приемлемо «опред», «перем», «элем».

    Ответить

Добавить комментарий для AN Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *