Стадии t27c
Вы узнаете
Порядок стадий компилятора и что каждая выдала для спеки урока.
Лексер режет текст на токены. Парсер строит дерево узлов. Проверка типов сообщает об ошибках и предупреждениях, не останавливая бэкенды. HIR — аппаратное представление, из которого пишется бэкенд verilog_hir; остальные бэкенды читают дерево парсера. Таблица показывает, что выдала каждая стадия для спеки урока, по замеру компилятором этого сайта.
Попробуйте
Откройте виджет стадий t27c, вставьте спеку урока и сверьте числа с таблицей.

What each stage of the t27c compiler produced for one small spec: bytes, tokens, tree, type check, HIR and backends. Lesson 23 of the t27 basics course.
specs/basics/23_stages_of_t27c.t27
// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 23: The stages of t27c.
; Bytes, tokens, a tree, a type check, HIR and code: how t27c reads a spec.
module basics_23_stages_of_t27c;
pub const WIDTH : u8 = 8;
pub fn add(a: u8, b: u8) -> u8 {
return a + b;
}
test width_is_a_byte {
assert WIDTH == 8;
}
Все уроки
Модуль 1 · Файл спеки
Что лежит в файле .t27: строка module, строки прозы и комментарии.
Модуль 2 · Значения и типы
Константы, ширина целого числа, а также true, false и текст.
Модуль 3 · Массивы, триты и выражения
Списки значений, три значения трита и что вычисляют операторы.
Модуль 4 · Тесты и функции
Блок test, несколько маленьких тестов в одной спеке и функция с типизированными входами.
Модуль 5 · Внутри функции
Имена через let и var, выбор через if и switch и циклы.
Модуль 6 · Видимость и свои типы
Что pub открывает другим модулям, и структуры и перечисления, которые вы объявляете.
Модуль 7 · Модули, правила и gen-ts
Чтение другого модуля, правило, которое выполняется всегда, и спека, превращённая в TypeScript.
Модуль 8 · Компилятор и tri
Бэкенды, которые пишет t27c, стадии, в которых он читает спеку, и команда tri.
Модуль 9 · Ошибки, программа и что дальше
Как читать ошибку компилятора, одна маленькая законченная программа и какой курс пройти дальше.