Синтаксис · Terra v0.1
▶ Display
Вивід значень змінних у різних форматах. Десятковий, hex, octal, binary — або всі разом в один рядок.
01 · Синтаксис
#syntax
/display(ім'я_змінної)
/display(ім'я_змінної(ФОРМАТ))
/display(ім'я_змінної(F, O, B))
/display(ім'я_змінної(ФОРМАТ))
/display(ім'я_змінної(F, O, B))
/display — команда виводу
ім'я_змінної — попередньо оголошена змінна
ФОРМАТ — F / O / B / *
F
Hex
0xC
шістнадцятковий
O
Octal
0o14
вісімковий
B
Binary
0b1100
двійковий
*
Decimal
12
десятковий примусово
—
За замовчуванням
12
за типом оголошення
02 · Одиночний формат
#single-format
✓ test 01 десятковий (за замовчуванням)
test_01_basic.terra
app (/intbyte, /var) intbyte = 12 ::start:: intbyte + (12) /display(intbyte)
output24
✓ /display(x(F) — hex
приклад
app (/intbyte, /var) x = 255 ::start:: /display(x(F))
output0xFF
✓ /display(x(O) — octal
приклад
app (/intbyte, /var) x = 12 ::start:: /display(x(O))
output0o14
✓ /display(x(B) — binary
приклад
app (/intbyte, /var) x = 12 ::start:: /display(x(B))
output0b1100
03 · Мульти-формат
#multi-format
Перерахуйте через кому кілька форматів — компілятор виведе їх в один рядок через пробіл, один newline в кінці.
✓ test 03 верифіковано
test_03_display_multiformat.terra
app (/intbyte, /var) intbyte = 12 ::start:: /display(intbyte(F, O, B))
output0xC 0o14 0b1100
Zero overhead:
Компілятор генерує три окремих виклики без newline між ними, потім один виклик newline. Жодних рядкових конкатенацій, жодних буферів.
04 · Формат за замовчуванням
#default
Якщо формат не вказано — змінна виводиться відповідно до системи числення в якій вона була оголошена.
✓ оголошена в hex — виводиться в hex
приклад
app (/intbyte, /var) x = 0xFF ::start:: /display(x) ! виводить 0xFF, не 255
output0xFF
05 · Стилі виводу
#styles
Іменовані набори властивостей — колір тексту, колір фону, розмір, стиль шрифту. Оголошуються один раз і використовуються скрізь. Зберігаються в таблиці @styles_table в LLVM IR — 16 байт на слот.
✓ швидкий приклад
! Оголошення стилю (до ::start::) /display::ANNA_MARIYA /text(#F19CBB) /background(127, 255, 212) /italic end ANNA_MARIYA app (/intbyte, /var) val = 42 ::start:: /display(val(ANNA_MARIYA)) ! іменований стиль /display(val)&text(#FF0000) ! inline колір /display(val(ANNA_MARIYA))/replace(&background(0, 0, 0)) ! /replace
Детальна документація:
властивості, memory layout, /replace, всі помилки парсера — на окремій сторінці.
\nв кінці.