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