diff --git a/README.md b/README.md index df74715..a56b191 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -

DumbShot

+

Glint

A specialized, statically typed markup, styling, and state management language created exclusively for Eclipse DE

## About Glint @@ -14,29 +14,34 @@ Eclipse doesn't have a concept of "default settings" in the form of hidden binar - **Who is Glint for?**: Knowing Glint is necessary for advanced users who want full control over their DE, however, no one forbids the use of the unmodified Eclipse DE ## Architecture + The language is designed with a focus on maximum predictability, determinism, and performance of the native application layer on 'iced' (Rust). ### Sigil system -| Symbol | Type | Description | -| --- | --- | --- | -| `@` | Directive | Single symbol → instant dispatch | -| `$` | Varialbe | Distinguishes from item names and strings | -| `!rhei` | call Rhei | '!' does not occur in names; The body is transmitted as-is | -| `//` | Comment | Two-character check | -| `"…"` | String | An unambiguous beginning and end; escape via '\' | -| `#RRGGBB` | Color | Only in the value position; parsed for 7 bytes | -| `fs:/…` | FS-path | URI scheme; Recognized in 3 characters (f,s,:) | -| Capital letter | Element | Distinguishes from directives and keywords | -| `0-9 / -` | Integer | The first character uniquely indicates the numeric type | + +| Symbol | Type | Description | +| -------------- | --------- | ---------------------------------------------------------- | +| `@` | Directive | Single symbol → instant dispatch | +| `$` | Varialbe | Distinguishes from item names and strings | +| `!rhei` | call Rhei | '!' does not occur in names; The body is transmitted as-is | +| `//` | Comment | Two-character check | +| `"…"` | String | An unambiguous beginning and end; escape via '\' | +| `#RRGGBB` | Color | Only in the value position; parsed for 7 bytes | +| `fs:/…` | FS-path | URI scheme; Recognized in 3 characters (f,s,:) | +| Capital letter | Element | Distinguishes from directives and keywords | +| `0-9 / -` | Integer | The first character uniquely indicates the numeric type | The parser spends **zero time** determining the type of token. It doesn't need to symbolically compare strings like `if`, `let`, or `function`. ### 2. Separation of scopes '()' and '{}' -* Parentheses '(...)' contain **only** the properties of the element in the format 'key=value'. -* Curly braces '{...}' contain **only** child elements and directives. + +- Parentheses '(...)' contain **only** the properties of the element in the format 'key=value'. +- Curly braces '{...}' contain **only** child elements and directives. ### 3. Native protocols + Instead of calling heavy functions like 'readFile("/path")' that require argument parsing in runtime, Glint uses built-in prefixes: + ```gltm Image(src=fs:/usr/share/backgrounds/wallpaper.png) ``` @@ -48,6 +53,7 @@ Glint does not interpret pure text while DE is running. It compiles it into a co This allows the Render Hot-Path to run without memory allocations at all ## Syntax example + ```gltm @version 1 @style "desktop.glts"