Terminology

A complete glossary of terms in the eno language, listed alphabetically and in their singular form.

Associated Comment

> my associated comment
my_key: my_value

A Comment that immediately precedes (= without empty lines in between) an Empty, Field, Fieldset, Fieldset Entry, List, List Item or Section, thereby being semantically associated to it and queryable through a parsing library just as the key and value are.

Comment

> my comment

A Comment is indicated by the Comment Operator and followed by arbitrary text.

Comment Operator

The > character (U+003E), when it occurs as the first non-whitespace character on a line, thereby starting a Comment.

Continuation

Generic term to refer to both types of continuation: Direct Line Continuation and/or Spaced Line Continuation.

Copy Operator

The < character (U+003C) when it appears between a Key and a Template, indicating a copy operation.

Deep Copy Operator

The << character sequence (two U+003C) when it appears between a Key and a Template, indicating a deep copy operation.

Document

The top level structure that contains everything in an .eno file. Conceptually equivalent to a Section, but without a key and implicitly always there.

Direct Line Continuation

| my value
|

A Direct Line Continuation can contain a Value or be empty.

Direct Line Continuation Operator

The | character (U+007C) when it appears as the first non-whitespace character on a line, indicating a Direct Line Continuation.

Empty

my_key

An Empty element is a distinct element type only containing a Key.

Element

All nodes in a Document that can later be traversed by an application, that is a Field, Fieldset, Fieldset Entry, List, List Item, Multiline Field or Section.

Element Operator

The : character (U+003A) when it appears after a Key, optionally followed by a Value.

Escaped Key

`my_escaped_key`:

A Key contained between Escape Operators.

Escape Operator

Any number of connected ` characters (U+0060) when they appear as the first non-whitespace characters in a line, indicating an Escaped Key. It must be followed by exactly the same Escape Operator later in the same line, terminating the Escaped Key.

Field

my_key: my value
my_key:
| my value
my_key:
|

A Field has a Key and usually a Value. The Value does not have to appear in the same line as the Key, it can also follow in the form of a Line Continuation, which can also be empty, which still suffices to unambiguously identify it as a Field.

Fieldset

my_key:
my_entry_a = my value
my_entry_b = my value

A Key followed by any number of Fieldset Entries.

Fieldset Entry

my_entry = my value
my_entry =

A Fieldset Entry can have a Value or be empty.

Fieldset Entry Operator

The = character when it appears after a Key, optionally followed by a Value.

Line Continuation

\ my value
\
| my value
|

Generically refers to either a Direct Line Continuation or Spaced Line Continuation. Usually has a Value but can also be empty.

List

my_key:
- my value
- my value
-

A Key followed by any number of List Items.

List Item

- my value
-

A List Item can have a Value or be empty.

List Item Operator

A - character (U+002D), when it appears as the first non-whitespace character in a line, indicating a List Item.

Multiline Field

-- my_key
my multiline value ...
-- my_key

-- my_key
a
-- my_key

-- my_key
-- my_key

A Multiline Field has a Key and a Value. The Key appears in the beginning and ending line. It's genuinely empty if there is no line between the beginning and ending line, whereas a single line with 0 characters between the beginning and ending line creates an empty string value.

Multiline Field Operator

Two or more consecutive - characters (U+002D) when they appear as the first non-whitespace characters on a line and followed by a Key, indicating the begin or end of a Multiline Field. The number of hyphens that make up the Multiline Field Operator in the ending line of a Multiline Field has to match the number in the beginning line, just as the Key needs to be repeated exactly, otherwise the whole line is treated as simple text inside the Multiline Field.

Key

my_key:

The thing that is also referred to as property, identifier, variable name etc. in other languages is always designated as Key in eno. A Key can be given to a Field, Fieldset Entry, Multiline Field and Section, or appear as a reference in form of a Template. Note that conceptually the Key of a List Item is the Key of the list its in, as a Value with no association whatsoever makes little sense in a processable data context.

Operator

Any of >, <, <<, :, =, -, --, #, |, \, ` when they appear outside of a Comment, Key, Template or Value.

Section

# my_key
## my_key

A Section has a Key and a Depth or Level, determined by the number of hashes that make up the Section Operator. It contains Elements.

Section Operator

Any number of connected # characters (U+0023) when they appear as the first non-whitespace characters on a line, indicating a Section.

Spaced Line Continuation

\ my value
\

A Spaced Line Continuation can contain a Value or be empty.

Spaced Line Continuation Operator

The \ character (U+005C) when it appears as the first non-whitespace character on a line, indicating a Line Continuation.

Template

my_key < my_template
# my_key < my_template
# my_key << my_template

A Template is a Key referencing an Element to be copied.

Value

my_key: my_value

A Value might appear in a Field, Fieldset Entry, List Item or Multiline Field. Values can only include newlines and leading or trailing whitespace when they come from a Multiline Field.


Next page: Continuations