gen-ts: спека превращается в TypeScript
Вы узнаете
Что gen-ts пишет для констант и функций и как это использует программа-хозяин.
t27c gen-ts превращает каждую константу в строку export const, которую проверяет TypeScript. Функции не выводятся: бэкенд говорит, что переносит объявления, а не тела. Так этот сайт и пользуется спеками: генератор читает файл .t27 и пишет числа и слова, которые импортирует страница. Таблица под уроком показывает, что gen-ts написал для спеки урока.
Попробуйте
Добавьте константу в спеку урока в плеере и найдите её строку во вкладке ts.

The TypeScript the real t27 compiler wrote for the lesson spec, line by line next to its source. Lesson 21 of the t27 basics course.
specs/basics/21_gen_ts.t27
// SPDX-License-Identifier: Apache-2.0
; t27 basics, lesson 21: gen-ts: a spec becomes TypeScript.
; gen-ts writes the constants of a spec as TypeScript, and leaves function bodies out.
module basics_21_gen_ts;
pub const WIDTH : u8 = 8;
pub const NAME : str = "basics";
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 · Ошибки, программа и что дальше
Как читать ошибку компилятора, одна маленькая законченная программа и какой курс пройти дальше.