General Syntax Highlights¶
blocks are declared with indentation (as in Python)
strict white-spacing:
tabs are syntax errors
indentation is exactly 4 spaces
no spaces in line end
extra indentation for line breaking is exactly 8 spaces
exactly one space around operators
file must end with a single newline
in general, any whitespace in the syntax must be used exactly
strict naming conventions:
the default for everything is
lowercase-only-with-hyphens
(a.k.a “kebab-case”)types are
FirstLetterUppercase
(a.k.a “CamelCase)compile time constants are
UPPERCASE-ONLY-WITH-HYPHENS
(a.k.a “FAT-KEBAB-CASE”)
TL[number] - Temporary Lumi Language¶
Lumi language development is done in an iterative style, where in each step a compiler is written to a temporary Lumi language - “TL” in short - which is a partial (or different) syntax of the final Lumi language.
These temporary Lumi languages are marked as “TL[number]” where “number is the iteration step number. “TL0” is the initial compiler temporary Lumi language, the next iteration is TL1 and so on…
Latest Version - TL5¶
The Lumi language is still a work in progress and the final syntax is not decided yet. The latest working compiler is for Temporary Lumi 5 (TL5) syntax, and this guide will describe it, and the differences between it and the planned final Lumi syntax.
The final Lumi syntax is still under planning, so this guide refers only to the current planning state of the final syntax. Changes will happily be made based on coding experience and suggestions.