From: Kevin Day
Date: Fri, 10 Jan 2025 05:32:20 +0000 (-0600)
Subject: Update: Specification files, syncing with latest versions.
X-Git-Url: https://git.kevux.org/?a=commitdiff_plain;h=68626c9358e105239edc1c5e3c89ccb5a9cc84fe;p=kevux.org-website
Update: Specification files, syncing with latest versions.
Add new specifications.
Update existing specifications.
The following is an example on how I started generating the HTML from the specifications.
```
fss_basic_list_read iki.txt +Q -c | iki_read +Q -w -rr FLL 'FLL' FSS 'FSS' -WWWWWW character '' "" UTF-8 '' '' italic '' '' unicode '' '' code '' '' file '' ''
```
I then make manual modifications as needed.
---
diff --git a/documents/standards/fll/specifications/eki-0000.txt b/documents/standards/fll/specifications/eki-0000.txt
new file mode 100644
index 0000000..b45077e
--- /dev/null
+++ b/documents/standards/fll/specifications/eki-0000.txt
@@ -0,0 +1,16 @@
+# fss-0002 iki-0000
+#
+# license open-standard-license-1.0-or-later
+# version 2024/11/03
+#
+# This file (assumed to be named eki-0000.txt) can be more easily read using the following iki_read commands:
+# iki_read eki-0000.txt +Q -w -WW character "'" "'" code '"' '"'
+#
+# To read the "EKI Specification: 0000 - Unrestricted" section of this file, use this command sequence:
+# fss_basic_list_read eki-0000.txt +Q -cn "EKI Specification: 0000 - Unrestricted" | iki_read +Q -w -WW character "'" "'" code '"' '"'
+#
+
+EKI Specification: 0000 - Unrestricted:
+ This specification provides no restrictions on the vocabulary.
+
+ See the file:"eki.txt" specification file for details on the syntax rules.
diff --git a/documents/standards/fll/specifications/eki-0001.txt b/documents/standards/fll/specifications/eki-0001.txt
new file mode 100644
index 0000000..583b3fa
--- /dev/null
+++ b/documents/standards/fll/specifications/eki-0001.txt
@@ -0,0 +1,27 @@
+# fss-0002 iki-0000
+#
+# license open-standard-license-1.0-or-later
+# version 2024/11/03
+#
+# This file (assumed to be named eki-0001.txt) can be more easily read using the following iki_read commands:
+# iki_read eki-0001.txt +Q -w -rrr URI URI URL URL URN URN -WW character "'" "'" code '"' '"'
+#
+# To read the "EKI Specification: 0001 - Basic" section of this file, use this command sequence:
+# fss_basic_list_read eki-0001.txt +Q -cn "EKI Specification: 0001 - Basic" | iki_read +Q -w -rrr URI URI URL URL URN URN -WW character "'" "'" code '"' '"'
+#
+
+EKI Specification: 0001 - Basic:
+ This specification provides a small set of vocabulary names meant to be associated with common uses, such as e-mail addresses and URL:"Uniform Resource Locator"s.
+
+ Vocabulary\:
+ - address: Any mailing address, except for e-mail and URI:"Uniform Resource Identifier".
+ - code: All text contained within represent code and should be presented as such.
+ - email: Any valid e-mail address.
+ - phone: Any valid phone number.
+ - quote: All text within represents some quote.
+ - uri: Any valid URI:"Uniform Resource Identifier" (allows URL:"Uniform Resource Locator" and URN:"Uniform Resource Name").
+ - url: Any valid URL:"Uniform Resource Locator".
+ - urn: Any valid URN:"Uniform Resource Name".
+ - var: All text contained within represents some sort of variable.
+
+ See the file:"eki.txt" specification file for details on the syntax rules.
diff --git a/documents/standards/fll/specifications/eki.txt b/documents/standards/fll/specifications/eki.txt
new file mode 100644
index 0000000..44f4380
--- /dev/null
+++ b/documents/standards/fll/specifications/eki.txt
@@ -0,0 +1,108 @@
+# fss-0002 iki-0000
+#
+# license open-standard-license-1.0-or-later
+# version 2024/11/21
+#
+# This file (assumed to be named eki.txt) can be more easily read using the following iki_read commands:
+# iki_read eki.txt +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"'
+#
+# To read the "EKI Specifications" section of this file, use this command sequence:
+# fss_basic_list_read eki.txt +Q -cn "EKI Specifications" | iki_read +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"'
+#
+
+EKI Specifications:
+ EKI is an extended EKI format that introduces the ability to have multiple variable names (italic:"Objects") per variable value (italic:"Content").
+
+ The EKI syntax is identical to the EKI syntax and all of its rules apply except for the modification defined in this specification.
+
+ This variable name, or italic:"Object", now supports an additional character, character:":" (unicode:"U+003A"), is used to separate each individual variable name.
+ Each variable name must follow the same requirements of a valid variable name as specified in the EKI specification.
+ Only the last character:":" (unicode:"U+003A") before the opening single quote (unicode:"U+0027"), double quote (unicode:"U+0022"), or grave (unicode:"U+0060") shall be a candidate for being escaped.
+ When this escape is in place of a valid EKI variable, then that would be variable is no longer considered an EKI variable.
+
+ Key\:
+ code:"\o" = any printable word character, including character:"_", character:"-", character:"+" (and Unicode equivalents).
+ code:"\O" = any printable word character, including character:"_", character:"-", character:"+" (and Unicode equivalents) followed by a colon character:":" (unicode:"U+003A") (cannot be only a colon by itself).
+ code:"\c" = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
+ code:"\q" = either a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a grave character:'`' (unicode:"U+0060").
+ code:"\x" = any character.
+ code:"\W" = any non-word character, discluding character:"_" (and Unicode equivalents), character:"-" (and Unicode equivalents), character:"+" (and Unicode equivalents), and colon character:":" (unicode:"U+003A").
+ code:"\e" = an optional escape sequence of any number of backslashes, such as character:"\\" (unicode:"U+005C").
+ code:"[" = a single conditionally optional open bracket, character:"[" (unicode:"U+005B").
+ code:"]" = a single conditionally optional close bracket, character:"]" (unicode:"U+005D").
+ code:"*" = zero or more occurrences.
+ code:"~" = one or more occurrences, or zero if at start of file.
+ code:"+" = one or more occurrences.
+ code:":" = The colon character:":" (unicode:"U+003A").
+
+ Before Structure\:
+ code:"\x*\W~"
+
+ Structure\:
+ code:"[\O*\o+]\e:\q\c\q"
+
+ After Structure\:
+ code:""
+
+ Example\:
+ code:`# fss-000c eki-0000
+
+ This is my sentence, anything can go here but sometimes I want to italic\:"emphasize some text".
+
+ Other times I want to render a URL with bold such as this example URL: bold:url:\'http://www.example.com/url with space/'.
+
+ There are no comments, except for maybe the FSS\:"Featureless Settings Specification" header (which would not resolve to any EKI syntax anyway).
+
+ Quotes may be included, such as: code\:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+ The following bold:italic\\:"is escaped to not be treated as EKI data".
+
+ The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"bold"this[context]\:"bold".
+
+ Multiple Objects within a bracket is also valid, like: before[bold:context]\:"important"after.
+
+ These are examples of escapes: one\:"\" escape", two\:"\\" escape", three\:"\\\" escape", six\:"\\\\\\" escape".
+
+ These are examples of non-escapes: one\:"\' escape", two\:"\\' escape", three\:"\\\' escape", six\:"\\\\\\' escape".
+
+ These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.`
+
+ Objects (also called vocabulary or variable name) would be\:
+ 1.1) italic
+ 2.1) bold
+ 2.2) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) bold
+ 7.2) context
+ 8.1) one
+ 9.1) two
+ 10.1) three
+ 11.1) six
+ 12.1) one
+ 13.1) two
+ 14.1) three
+ 15.1) six
+
+ Contents (also called variable value) would be\:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) important
+ 8.1) " escape
+ 9.1) \\
+ 10.1) \" escape
+ 11.1) \\\
+ 12.1) \' escape
+ 13.1) \\' escape
+ 14.1) \\\' escape
+ 15.1) \\\\\\' escape
+
+ The following are core specifications (each with a common name associated with the specification number)\:
+ - eki-0000: Unrestricted
+ - eki-0001: Basic
diff --git a/documents/standards/fll/specifications/fss-0000.txt b/documents/standards/fll/specifications/fss-0000.txt
index 86848d7..a80247a 100644
--- a/documents/standards/fll/specifications/fss-0000.txt
+++ b/documents/standards/fll/specifications/fss-0000.txt
@@ -46,8 +46,8 @@ Featureless Settings Specification: 0000 - Basic:
code:""
Example\:
- # fss-0000
- # valid comments are ignored.
+ \# fss-0000
+ \# valid comments are ignored.
"The Object" Content until new line.
Second object set.
diff --git a/documents/standards/fll/specifications/fss-0001.txt b/documents/standards/fll/specifications/fss-0001.txt
index 388ffee..0ec0cdb 100644
--- a/documents/standards/fll/specifications/fss-0001.txt
+++ b/documents/standards/fll/specifications/fss-0001.txt
@@ -46,8 +46,8 @@ Featureless Settings Specification: 0001 - Extended:
code:""
Example\:
- # fss-0001
- # valid comments are ignored.
+ \# fss-0001
+ \# valid comments are ignored.
"The Object" Content "content 2" content_3.
Second object set.
diff --git a/documents/standards/fll/specifications/fss-0002.txt b/documents/standards/fll/specifications/fss-0002.txt
index 715f73b..ace8e46 100644
--- a/documents/standards/fll/specifications/fss-0002.txt
+++ b/documents/standards/fll/specifications/fss-0002.txt
@@ -1,7 +1,7 @@
# fss-0002 iki-0000
#
# license open-standard-license-1.0-or-later
-# version 2024/01/15
+# version 2024/08/30
#
# This file (assumed to be named fss-0002.txt) can be more easily read using the following iki_read commands:
# iki_read fss-0002.txt +Q -w -WW character "'" "'" code '"' '"'
@@ -11,22 +11,23 @@
#
Featureless Settings Specification: 0002 - Basic List:
- Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
A colon character:":" (unicode:"U+003A") followed by any white space until a new line terminates a valid Object.
+ White space after the last printable character of the Object but before the colon character:":" (unicode:"U+003A") is not considered part of the Object.
Non-white space printable characters may not follow the colon of a valid Object.
+ Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.
- Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until the next valid Object is found.
+ Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until the next valid Object is found.
Any Content that could be interpreted as a valid Object must have the colon delimited.
There is no single-quote (unicode:"U+0027"), double-quote (unicode:"U+0022"), or grave (unicode:"U+0060") delimitation in this specification.
Only a colon character:":" (unicode:"U+003A") that would result in a valid Object can be delimited.
- Empty Objects are allowed, that is, the length of the object may be zero.
+ Empty Objects are allowed, that is, the length of the Object may be zero.
Key\:
code:"\s" = White space, except new line.
code:"\o" = Any printable character, except unescaped character:":" (unicode:"U+003A").
- code:"\l" = Any printable character or white space, except unescaped character:":" (unicode:"U+003A").
code:"\c" = Either white space or printable, including new line, that not interpretable as an Object.
code:"\n" = New line.
code:"*" = Zero or more occurrences.
@@ -35,14 +36,14 @@ Featureless Settings Specification: 0002 - Basic List:
code:""
Structure\:
- code:"\s*\o\l*:\s*\n\c*\n*"
+ code:"\s*\o\s*:\s*\n\c*\n*"
After Structure\:
code:""
Example\:
- # fss-0002
- # valid comments are ignored.
+ \# fss-0002
+ \# valid comments are ignored.
"The Object"\:
Does not need to be quoted.
This: does not need to be delimited.
@@ -50,7 +51,7 @@ Featureless Settings Specification: 0002 - Basic List:
Second\:
Continues until EOS/EOF.
All white space, including new line (and leading white space) is "part of content."
- # Valid comments are still ignored.
+ \# Valid comments are still ignored.
Objects would be\:
1) "The Object"
diff --git a/documents/standards/fll/specifications/fss-0003.txt b/documents/standards/fll/specifications/fss-0003.txt
index 652d598..9220d7b 100644
--- a/documents/standards/fll/specifications/fss-0003.txt
+++ b/documents/standards/fll/specifications/fss-0003.txt
@@ -1,7 +1,7 @@
# fss-0002 iki-0000
#
# license open-standard-license-1.0-or-later
-# version 2024/01/15
+# version 2024/08/30
#
# This file (assumed to be named fss-0003.txt) can be more easily read using the following iki_read commands:
# iki_read fss-0003.txt +Q -w -WW character "'" "'" code '"' '"'
@@ -11,12 +11,14 @@
#
Featureless Settings Specification: 0003 - Extended List:
- Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
An open-brace character:"{" (unicode:"U+007B") followed by any white space until a new line terminates a possible valid Object.
+ White space after the last printable character of the Object but before the brace character:"{" (unicode:"U+0037B") is not considered part of the Object.
An Object is not considered fully valid until a valid close-brace character:"}" (unicode:"U+007D") is found, designating the end of the Content.
Non-white space printable characters may not follow the open-brace character:"{" (unicode:"U+007B") of a valid Object.
+ Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.
- Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until a non-delimited close-brace character:"}" (unicode:"U+007D").
+ Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until a non-delimited close-brace character:"}" (unicode:"U+007D").
Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content.
White space may follow a valid close-brace character:"}" (unicode:"U+007D") but a terminating new line must be present to designate a valid end of Content.
@@ -29,12 +31,11 @@ Featureless Settings Specification: 0003 - Extended List:
Each delimit slash in a delimitable open-brace character:"{" (unicode:"U+007B") is treated as a potential delimit such that two slashes represents a single delimited slash (code:"\\{" would represent code:"\{").
Only the first delimit slash in a delimitable close-brace character:"}" (unicode:"U+007D") is treated as a potential delimit (code:"\\\}" would represent code:"\\}").
- Empty Objects are allowed, that is, the length of the object may be zero.
+ Empty Objects are allowed, that is, the length of the Object may be zero.
Key\:
code:"\s" = White space, except new line.
code:"\o" = Any printable character, except unescaped character:"{" (unicode:"U+007B").
- code:"\l" = Any printable character or white space, except unescaped character:"}" (unicode:"U+007D").
code:"\c" = Either white space or printable, including new line, that is not interpretable as an Object.
code:"\n" = Newline.
code:"*" = Zero or more occurrences.
@@ -43,14 +44,14 @@ Featureless Settings Specification: 0003 - Extended List:
code:""
Structure\:
- code:"\s*\o\l*{\s*\n\c*\n\s*}\s*\n"
+ code:"\s*\o\s*{\s*\n\c*\n\s*}\s*\n"
After Structure\:
code:""
Example\:
- # fss-0003
- # valid comments are ignored.
+ \# fss-0003
+ \# valid comments are ignored.
"The Object" {
Does not need to be quoted.
This: does not need to be delimited.
@@ -60,7 +61,7 @@ Featureless Settings Specification: 0003 - Extended List:
Second {
Continues until EOS/EOF.
All white space, including new line (and leading white space) is "part of content."
- # Valid comments are still ignored.
+ \# Valid comments are still ignored.
}
Objects would be\:
diff --git a/documents/standards/fll/specifications/fss-0004.txt b/documents/standards/fll/specifications/fss-0004.txt
index 32adee4..6b0ea81 100644
--- a/documents/standards/fll/specifications/fss-0004.txt
+++ b/documents/standards/fll/specifications/fss-0004.txt
@@ -18,8 +18,8 @@ Featureless Settings Specification: 0004 - Very Basic List:
See the file:"fss-0000.txt" and file:"fss-0002.txt" specification files for details on the syntax rules.
Example\:
- # fss-0004
- # valid comments are ignored.
+ \# fss-0004
+ \# valid comments are ignored.
"The Object"\:
Does not need to be quoted.
This: does not need to be delimited.
@@ -27,7 +27,7 @@ Featureless Settings Specification: 0004 - Very Basic List:
Second\:
Continues until EOS/EOF.
All white space, including new line (and leading white space) is "part of content."
- # Valid comments are still ignored.
+ \# Valid comments are still ignored.
Outer Objects would be\:
1) "The Object"
diff --git a/documents/standards/fll/specifications/fss-0005.txt b/documents/standards/fll/specifications/fss-0005.txt
index deaed3d..4cbe907 100644
--- a/documents/standards/fll/specifications/fss-0005.txt
+++ b/documents/standards/fll/specifications/fss-0005.txt
@@ -18,8 +18,8 @@ Featureless Settings Specification: 0005 - Somewhat Basic List:
See the file:"fss-0001.txt" and file:"fss-0002.txt" specification files for details on the syntax rules.
Example\:
- # fss-0005
- # valid comments are ignored.
+ \# fss-0005
+ \# valid comments are ignored.
"The Object"\:
Does not need to be quoted.
This: does not need to be delimited.
@@ -27,7 +27,7 @@ Featureless Settings Specification: 0005 - Somewhat Basic List:
Second\:
Continues until EOS/EOF.
All white space, including new line (and leading white space) is "part of content."
- # Valid comments are still ignored.
+ \# Valid comments are still ignored.
Outer Objects would be\:
1) "The Object"
diff --git a/documents/standards/fll/specifications/fss-0006.txt b/documents/standards/fll/specifications/fss-0006.txt
index 417a4c7..709f91f 100644
--- a/documents/standards/fll/specifications/fss-0006.txt
+++ b/documents/standards/fll/specifications/fss-0006.txt
@@ -18,8 +18,8 @@ Featureless Settings Specification: 0006 - Somewhat Extended List:
See the file:"fss-0000.txt" and file:"fss-0003.txt" specification files for details on the syntax rules.
Example\:
- # fss-0006
- # valid comments are ignored.
+ \# fss-0006
+ \# valid comments are ignored.
"The Object" {
Does not need to be quoted.
This: does not need to be delimited.
@@ -29,7 +29,7 @@ Featureless Settings Specification: 0006 - Somewhat Extended List:
Second {
Continues until EOS/EOF.
All white space, including new line (and leading white space) is "part of content."
- # Valid comments are still ignored.
+ \# Valid comments are still ignored.
}
Outer Objects would be\:
diff --git a/documents/standards/fll/specifications/fss-0007.txt b/documents/standards/fll/specifications/fss-0007.txt
index d420bca..0f7b418 100644
--- a/documents/standards/fll/specifications/fss-0007.txt
+++ b/documents/standards/fll/specifications/fss-0007.txt
@@ -18,8 +18,8 @@ Featureless Settings Specification: 0007 - Very Extended List:
See the file:"fss-0001.txt" and file:"fss-0003.txt" specification files for details on the syntax rules.
Example\:
- # fss-0007
- # valid comments are ignored.
+ \# fss-0007
+ \# valid comments are ignored.
"The Object" {
Does not need to be quoted.
This: does not need to be delimited.
@@ -29,7 +29,7 @@ Featureless Settings Specification: 0007 - Very Extended List:
Second {
Continues until EOS/EOF.
All white space, including new line (and leading white space) is "part of content."
- # Valid comments are still ignored.
+ \# Valid comments are still ignored.
}
Outer Objects would be\:
diff --git a/documents/standards/fll/specifications/fss-0008.txt b/documents/standards/fll/specifications/fss-0008.txt
index 3409cf5..64ca563 100644
--- a/documents/standards/fll/specifications/fss-0008.txt
+++ b/documents/standards/fll/specifications/fss-0008.txt
@@ -16,8 +16,8 @@ Featureless Settings Specification: 0008 - Embedded List:
See the file:"fss-0003.txt" specification file for details on the syntax rules.
Example\:
- # fss-0008
- # valid comments are ignored.
+ \# fss-0008
+ \# valid comments are ignored.
"The Object" {
Does not need to be quoted.
This: does not need to be delimited.
diff --git a/documents/standards/fll/specifications/fss-0009.txt b/documents/standards/fll/specifications/fss-0009.txt
index 6dc5d66..5d379a3 100644
--- a/documents/standards/fll/specifications/fss-0009.txt
+++ b/documents/standards/fll/specifications/fss-0009.txt
@@ -48,8 +48,8 @@ Featureless Settings Specification: 0009 - Reverse Mapping:
code:""
Example\:
- # fss-0009
- # valid comments are ignored.
+ \# fss-0009
+ \# valid comments are ignored.
Content from new line. "The Object"
object set. Second
diff --git a/documents/standards/fll/specifications/fss-000a.txt b/documents/standards/fll/specifications/fss-000a.txt
index 1d75354..44c46fd 100644
--- a/documents/standards/fll/specifications/fss-000a.txt
+++ b/documents/standards/fll/specifications/fss-000a.txt
@@ -48,8 +48,8 @@ Featureless Settings Specification: 000A - Extended Reverse Mapping:
code:""
Example\:
- # fss-000a
- # valid comments are ignored.
+ \# fss-000a
+ \# valid comments are ignored.
Content "content 2" content_3. "The Object"
object set. Second
diff --git a/documents/standards/fll/specifications/fss-000b.txt b/documents/standards/fll/specifications/fss-000b.txt
index 55a53c1..ec35bf1 100644
--- a/documents/standards/fll/specifications/fss-000b.txt
+++ b/documents/standards/fll/specifications/fss-000b.txt
@@ -16,8 +16,8 @@ Featureless Settings Specification: 000B - Simple List:
See the file:"fss-0002.txt" and file:"fss-0003.txt" specification files for details on the syntax rules.
Example\:
- # fss-000b
- # valid comments are ignored.
+ \# fss-000b
+ \# valid comments are ignored.
"The Object" {
Does not need to be quoted.
This: does not need to be delimited.
@@ -27,8 +27,8 @@ Featureless Settings Specification: 000B - Simple List:
Second {
Nested Example.
- Third:
- Fourth:
+ Third\:
+ Fourth\:
There is parallel to Second rather than nested within Second.
}
@@ -47,8 +47,8 @@ Featureless Settings Specification: 000B - Simple List:
2.1.1) Nested Example.
- Third:
- Fourth:
+ Third\:
+ Fourth\:
There is parallel to Second rather than nested within Second.
Inner Contents (depth 1) would be\:
diff --git a/documents/standards/fll/specifications/fss-000c.txt b/documents/standards/fll/specifications/fss-000c.txt
index 8180e61..6798727 100644
--- a/documents/standards/fll/specifications/fss-000c.txt
+++ b/documents/standards/fll/specifications/fss-000c.txt
@@ -1,7 +1,7 @@
# fss-0002 iki-0000
#
# license open-standard-license-1.0-or-later
-# version 2023/07/14
+# version 2023/11/19
#
# This file (assumed to be named fss-000c.txt) can be more easily read using the following iki_read commands:
# iki_read fss-000c.txt +Q -w -r FSS FSS -WWW character "'" "'" code '"' '"' italic '"' '"'
@@ -13,18 +13,32 @@
Featureless Settings Specification: 000C - IKI Text:
The IKI specifications are separate specifications from the FSS:"Featureless Settings Specifications".
This is simply a more formal way to designate that this format utilizes IKI syntax.
+ This may also be used to designate EKI syntax.
+
+ When neither an IKI nor an EKI header is specified and (other than code:"fss-000c" is specified) and the syntax is not known through some other means, then this can be assumed to be in IKI syntax rather than EKI syntax.
The IKI syntax may be used in any FSS:"Featureless Settings Specifications".
- The IKI format may be added to the.
See the file:"iki.txt" specification for details on the IKI specifications.
+ See the file:"eki.txt" specification for details on the EKI specifications.
+
+ Example\:
+ \# fss-000c iki-0000
+
+ This is a italic\:"formal example" utilizing the FSS and IKI headers.
+
+ Example\:
+ \# iki-0000
+
+ This is a italic\:"informal example" utilizing only the IKI headers.
+
Example\:
- # fss-000c iki-0000
+ \# fss-000c eki-0000
- This is a italic:"formal example" utilizing the FSS headers.
+ This is a bold:italic\:"informal example" utilizing the FSS and EKI headers.
Example\:
- # iki-0000
+ \# fss-000c
- This is a italic:"informal example" utilizing the IKI headers.
+ This is a italic:"formal example" utilizing only the FSS headers, which in this case is treated as IKI rather than EKI.
diff --git a/documents/standards/fll/specifications/fss-000d.txt b/documents/standards/fll/specifications/fss-000d.txt
index 899a263..92c3426 100644
--- a/documents/standards/fll/specifications/fss-000d.txt
+++ b/documents/standards/fll/specifications/fss-000d.txt
@@ -31,11 +31,11 @@ Featureless Settings Specification: 000D - Basic Rule:
See the file:"fss-0000.txt", file:"fss-0001.txt", and file:"fss-0003.txt" specification files for details on the syntax rules.
Example\:
- # fss-000d
- main:
+ \# fss-000d
+ main\:
name "Boot Devices"
- script:
+ script\:
start {
ip addr add 127.0.0.1/8 label lo dev lo;
ip link set lo up;
@@ -45,7 +45,7 @@ Featureless Settings Specification: 000D - Basic Rule:
ip link set lo down;
}
- command:
+ command\:
start mount -a -O no_netdev
stop umount -arf -O no_netdev
diff --git a/documents/standards/fll/specifications/fss-000e.txt b/documents/standards/fll/specifications/fss-000e.txt
index 1e56359..c2000a8 100644
--- a/documents/standards/fll/specifications/fss-000e.txt
+++ b/documents/standards/fll/specifications/fss-000e.txt
@@ -61,8 +61,8 @@ Featureless Settings Specification: 000e - Payload:
- For best portability, consider using status as a name string to ensure cross-system or cross-binary compatibility.
Example\:
- # fss-000e
- # valid comments are ignored.
+ \# fss-000e
+ \# valid comments are ignored.
header\:
type error
status 296
diff --git a/documents/standards/fll/specifications/iki.txt b/documents/standards/fll/specifications/iki.txt
index 92fe7a9..851e3d5 100644
--- a/documents/standards/fll/specifications/iki.txt
+++ b/documents/standards/fll/specifications/iki.txt
@@ -1,7 +1,7 @@
# fss-0002 iki-0000
#
# license open-standard-license-1.0-or-later
-# version 2024/07/10
+# version 2024/11/21
#
# This file (assumed to be named iki.txt) can be more easily read using the following iki_read commands:
# iki_read iki.txt +Q -w -WWW character "'" "'" code '"' '"' italic '"' '"'
@@ -13,83 +13,118 @@
IKI Specifications:
IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
- The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted value that is associated with the given vocabulary name.
- The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
- The variable name is considered the italic:"Object" and is also considered the vocabulary.
- The variable value is considered the italic:"Content".
- The variable name may be wrapped by a single open bracket, character:"[" (unicode:"U+005B"), at the start and a single close bracket, character:"]" (unicode:"U+005D"), at the end.
+ The IKI syntax describes a italic:"Variable" that is defined by a italic:"Vocabulary" name followed by quoted value called the italic:"Content".
- The wrapping characters characters are not part of the variable name and must not be contained within a variable name.
+ The italic:"Variable" refers to the italic:"Vocabulary", italic:"Content", and associated syntax that describes the italic:"Variable".
+ The italic:"Variable" name may be wrapped by a single open bracket, character:"[" (unicode:"U+005B"), at the start and a single close bracket, character:"]" (unicode:"U+005D"), at the end.
+ The open and close brackets, also called the wrapping characters, for the italic:"Variable" do not utilize escaping characters and instead any escaping is perform against the colon character:":" (unicode:"U+003A") that separates the italic:"Vocabulary" from the italic:"Content".
+ The italic:"Vocabulary" generally defines the context and many of the IKI specifications may provide a discrete set of allowed italic:"Vocabulary".
+ The italic:"Vocabulary" may also be referred to as the italic:"Object".
+ The italic:"Vocabulary" only allows word characters or one of character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B"), character:"[" (unicode:"U+005B")).
+ White space, non-word, and non character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B")) character punctuation may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (unicode:"U+2010" and unicode:"U+2011").
+ Unicode punctuation connector characters are supported just like character:"_", except when they connect outside the current line (such as unicode:"U+FE33" character:"︳").
+ The immediate left of a italic:"Vocabulary" must not be a valid italic:"Vocabulary" character, unless the italic:"Vocabulary" is wrapped using the wrapping characters.
+ Unicode invisible punctuation (such as invisible plus: unicode:"U+2064") are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), or character:"+" (unicode:"U+002B") Unicode equivalents.
+
+ The wrapping characters characters are not part of the italic:"Vocabulary" name and instead only provide the syntax used to help identify a valid italic:"Variable".
+ The wrapping characters characters are part of the italic:"Variable".
The wrapping characters do not support escaping.
Both wrapping characters must be specified or neither.
- The IKI format will use code:"iki-0000" to represent an IKI with no explicitly defined vocabulary.
- Whereas code:"iki-0001" and beyond represent a specific IKI vocabulary.
-
- A potential IKI variable name starts on word character or one of character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B"), character:"[" (unicode:"U+005B")).
- White space, non-word, and non character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B")) character punctuations may not exist as part of the variable name.
- The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (unicode:"U+2010" and unicode:"U+2011").
+ The italic:"Content" refers to the value of the italic:"Variable".
+ The italic:"Content" is wrapped one of the following quote characters: single quote character:"'" (unicode:"U+0027"), double quote character:'"' (unicode:"U+0022"), or grave character:'`' (unicode:"U+0060").
+ The italic:"Content" must escape any quotes that match the open and close quote used for the italic:"Variable" by utilizing a backslash character:"\\" (unicode:"U+005C").
+ If a matching closing quote is not found until the end of the data (or file), then this unclosed italic:"Variable" is considered invalid.
+ The handling of this erroneous case is left to the implementation.
- Any potential IKI data must be escaped to make it treated as non-IKI data by prepending a backslash character:"\\" before the colon character:":" that is before the opening quote (single, double, or grave (backtick)). Potential IKI data refers to any valid IKI sequence without considering the closing single quote character:"'" (unicode:"U+0027"), closing double quote character:'"' (unicode:"U+0022"), or closing grave character:'`' (unicode:"U+0060").
+ The backslashes used for escaping quotes use character:"\\" (unicode:"U+005C").
+ Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+ One backslash escapes the valid quote, resulting in the quote being part of the italic:"Content".
+ Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the italic:"Content".
+ An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+ An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
- Unicode punctuation connector characters are supported just like character:"_", except when they connect outside the current line (such as unicode:"U+FE33" character:"︳").
- Unicode invisible punctuations (such as invisible plus: unicode:"U+2064") are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid character:"_", character:"-", or character:"+" Unicode equivalents.
+ The IKI format will use code:"iki-0000" to represent an IKI with no explicitly defined vocabulary.
+ Whereas code:"iki-0001" and beyond represent a specific IKI vocabulary.
Key\:
- code:"\o" = any printable word character, including character:"_", character:"-", character:"+" (and Unicode equivalents).
- code:"\c" = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
+ code:"\o" = any printable word character, including character:"_" (unicode:"U+005F"), character:"-" (unicode:"U+002D"), character:"+" (unicode:"U+002B") (and Unicode equivalents).
+ code:"\c" = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.
code:"\q" = either a single quote character:"'" (unicode:"U+0027"), a double quote character:'"' (unicode:"U+0022"), or a grave character:'`' (unicode:"U+0060").
code:"\x" = any character.
- code:"\W" = any non-word character, discluding character:"_", character:"-", character:"+" (and Unicode equivalents).
- code:"\e" = an optional escape sequence of any number of backslashes, such as character:"\\".
- code:"[" = a single conditionally optional open bracket, character:"[" (unicode:"U+005B").
- code:"]" = a single conditionally optional close bracket, character:"]" (unicode:"U+005D").
+ code:"\W" = any non-word character, discluding character:"_" (unicode:"U+005F") (and Unicode equivalents), character:"-" (unicode:"U+002D") (and Unicode equivalents), and character:"+" (unicode:"U+002B") (and Unicode equivalents).
+ code:"\e" = an optional escape sequence of any number of backslashes, such as character:"\\" (unicode:"U+005C").
+ code:"[" = a single (conditionally optional) open bracket, character:"[" (unicode:"U+005B").
+ code:"]" = a single (conditionally optional) close bracket, character:"]" (unicode:"U+005D").
code:"*" = zero or more occurrences.
code:"~" = one or more occurrences, or zero if at start of file.
+ code:"+" = one or more occurrences.
+ code:":" = The colon character:":" (unicode:"U+003A").
Before Structure\:
- code:"\x*\W~\*:*"
+ code:"\x*\W~"
Structure\:
- code:"[\o\e:]\q\c\q"
+ code:"[\o+]\e:\q\c\q"
After Structure\:
code:""
Example\:
- code:'# fss-000c iki-0000
+ code:`# fss-000c iki-0000
This is my sentence, anything can go here but sometimes I want to italic\:"emphasize some text".
- Other times I want to render a url such as this example url: url\:\'http://www.example.com/url with space/\'.
+ Other times I want to render a URL such as this example URL: url\:'http://www.example.com/url with space/'.
There are no comments, except for maybe the FSS\:"Featureless Settings Specification" header (which would not resolve to any IKI syntax anyway).
Quotes may be included, such as: code\:"const char *string = \"My \\\"quoted\\\" C string.\";".
- The following italic\:"is escaped to not be treated as IKI data".
+ The following italic\\:"is escaped to not be treated as IKI Variable".
+
+ The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"bold"this[context]\:"bold".
+
+ These are examples of escapes: one\:"\" escape", two\:"\\" escape", three\:"\\\" escape", six\:"\\\\\\" escape".
+
+ These are examples of non-escapes: one\:"\' escape", two\:"\\' escape", three\:"\\\' escape", six\:"\\\\\\' escape".
- The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"bold"this[context]\:"bold".'
+ These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.`
Objects (also called vocabulary or variable name) would be\:
- 1) italic
- 2) url
- 3) FSS
- 4) code
- 5) italic
- 6) context
- 7) context
+ 1.1) italic
+ 2.1) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) one
+ 8.1) two
+ 9.1) three
+ 10.1) six
+ 11.1) one
+ 12.1) two
+ 13.1) three
+ 14.1) six
Contents (also called variable value) would be\:
- 1.1) emphasize some text
- 2.1) http://www.example.com/url with space/
- 3.1) Featureless Settings Specification
- 4.1) const char *string = "My \"quoted\" C string.";
- 5.1) is escaped to not be treated as IKI data
- 6.1) bold
- 7.1) bold
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) " escape
+ 8.1) \
+ 9.1) \" escape
+ 10.1) \\\
+ 11.1) \' escape
+ 12.1) \\' escape
+ 13.1) \\\' escape
+ 14.1) \\\\\\' escape
The following are core specifications (each with a common name associated with the specification number)\:
- - fss-0000: Unrestricted
- - fss-0001: Basic
- - fss-0002: Simple Script
+ - iki-0000: Unrestricted
+ - iki-0001: Basic
+ - iki-0002: Simple Script
diff --git a/documents/standards/fll/specifications/resolution.txt b/documents/standards/fll/specifications/resolution.txt
index 9d28dbd..afcee45 100644
--- a/documents/standards/fll/specifications/resolution.txt
+++ b/documents/standards/fll/specifications/resolution.txt
@@ -9,7 +9,7 @@ The "scheme" is a group or category in this case.
Consider "inet" for classic internet.
example resolution file (/etc/resolution):
- # fss-????
+ \# fss-????
inet:
namesever 208.67.222.222
extension kevux 127.0.0.2:123
diff --git a/documents/standards/fll/specifications/time.txt b/documents/standards/fll/specifications/time.txt
index 5bc8514..625116e 100644
--- a/documents/standards/fll/specifications/time.txt
+++ b/documents/standards/fll/specifications/time.txt
@@ -1,7 +1,7 @@
# fss-0002 iki-0000
#
# license open-standard-license-1.0-or-later
-# version 2023/12/16
+# version 2024/11/23
#
# This file (assumed to be named time.txt) can be more easily read using the following iki_read commands:
# iki_read time.txt +Q -r UTC UTC -w -WW character "'" "'" code '"' '"'
@@ -13,34 +13,64 @@
Time Specification:
There are two units of bold:"Time", the first is simply called bold:"Time" and the second is called bold:"EpochTime".
- Both bold:"Time" and bold:"EpochTime" are measured without the year but may contain a year to designate the point in the counting begins.
+ Both bold:"Time" and bold:"EpochTime" are measured without the base time but may contain a base time to designate the point in the counting begins.
These are both represented by a single 64-bit (unsigned) integer.
The default timezone is always UTC:"Coordinated Universal Time".
- The common form is intended as the non-technical form that is form common use.
+ If no special designation is provided or otherwise understood, then a year is the default and expected base time.
+ Anything may be used as an alternative base point of time.
+ It could a decade, a day, a minute, or even a microsecond.
+ The base time must either be understand or be communicated somehow.
+
+ The common form is intended for use as a less technical form for use in a more casual manner.
This may have a negative value or be more than 64-bit digits long.
- This is simply not expected to be interpreted as a unit of time on a computer (but nothing stops it from being interpreted).
+ This is simply not expected to be interpreted as a unit of time on a computer (but nothing stops it from being interpreted as such).
- The technical forms are limited to 64-bit unsigned for technical use but should technology advance to a point where larger bits are needed then this allows for that.
+ The more technical forms are limited to 64-bit unsigned for technical use but should technology advance to a point where larger bits are needed then this allows for that.
The systems should expect 64-bit and larger bits would have to become common before something larger than 64-bit is the expected or assumed default.
Negative signs can be allowed but they must not prevent the full use of the 64-bit.
The implementation of how this is done is left to the implementer except that the signs are immediately to the left of the digit.
- For example code:"2022:-5" would be 5 units before the start of the year 2022.
- Because the negative is allowed, so must the positive character (such as code:"2022:+5").
- A positive value is the default interpretation when no sign is valid.
-
- The unit of time called bold:"Time" is counted increments of a nanosecond, or 10^-9 seconds.
- A unit of bold:"Time" is, therefore, equivalent to a nanosecond.
- When the year is not specified, then the behavior of the year is not defined.
- The year can be inferred, directly designated through some other means, understood, asserted, or simply unknown or otherwise unspecified.
- The general recommendation is that the default year for bold:"Time" is the current year.
-
- The unit of time called bold:"EpochTime" is counted increments of a second, or 10^-9 seconds.
- A unit of bold:"EpochTime" is, therefore, equivalent to a second.
- The behavior when the year is not specified is the same as described for the bold:"Time".
- The general recommendation is that the default year for bold:"EpochTime" is the bold:"UNIX Epoch", sometimes called bold:"Unix time".
-
- The unit bold:"Time" has two technical forms and one common form, with the year and without the year.
+ For example code:"2022:-5" for the standard base time, a year, would be 5 units before the start of the year 2022.
+ The negative is allowed and so must the positive character also be allowed (such as code:"2022:+5").
+ A positive value is the default interpretation when there is no explicit sign used.
+
+ The unit of time called bold:"Time" is counted in increments of a nanosecond, or 10^-9 seconds, unless otherwise specified or understood.
+ The base unit of bold:"Time" is not exclusively fixed to a year and can be fixed to any base point of time.
+ The base unit can be inferred, directly designated through some other means, understood, asserted, or simply unknown or otherwise unspecified.
+ The general recommendation is that the default base unit, a year, for bold:"Time" is to represent the current year.
+ This recommendation may also be followed for other base formats, such as a day, where the bold:"Time" is to represent the current day.
+ When the base unit is not specified, then the behavior of the base unit is not explicitly defined and must be somehow understood.
+
+ The unit of time called bold:"EpochTime" is counted increments of a second.
+ The bold:"EpochTime" is always expected to always be relative to the bold:"UNIX Epoch" year.
+ Specifying a custom base time itself is still relative to the bold:"UNIX Epoch" year.
+ Another common name for bold:"UNIX Epoch" is bold:"Unix time".
+ The general recommendation is that the default base unit to be a year for bold:"EpochTime".
+
+ The unit bold:"Time" has two technical forms and one common form, with the base unit and without the base unit.
+
+ A suggested use would be to wrap the bold:"Time" or bold:"EpochTime" in something that provides further context, such as bold:"IKI" and bold:"EKI".
+ The bold:"EKI" can more easily describe the base time changes.
+
+ The bold:"IKI" could be used to designate the standard units bold:"time" and bold:"epochtime" like the following\:
+ code:`time:"12345"`.
+ code:`time:"2022:12345"`.
+ code:`epochtime:"12345"`.
+ code:`epochtime:"2022:12345"`.
+
+ The bold:"EKI" could be used to designate the standard unit bold:"time" and bold:"epochtime" along with a more explicit base time like the following\:
+ code:`day:time:"12345"`.
+ code:`day:time:"100:12345"`.
+ code:`year:time:"2022:12345"`.
+ code:`day:epochtime:"12345"`.
+ code:`day:epochtime:"100:12345"`.
+ code:`year:epochtime:"2022:12345"`.
+
+ In the previous examples for bold:"EKI" show code:"day" along with code:"epochtime".
+ For code:`day:epochtime:"100:12345"`, this means that the timestamp starts 100 days after the bold:"UNIX Epoch" year.
+
+ In the previous examples for bold:"EKI" show code:"year" along with code:"epochtime".
+ For code:`year:epochtime:"2022:12345"`, this means that the timestamp start 2022 years after the bold:"UNIX Epoch" year.
Key\:
code:"\s" = White space.
diff --git a/fll/specifications.html b/fll/specifications.html
index 3c0f2f3..81ebf37 100644
--- a/fll/specifications.html
+++ b/fll/specifications.html
@@ -123,6 +123,15 @@
@@ -377,7 +386,7 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be
- The version date of this specification is 2024/06/11.
+ The version date of this specification is 2024/11/21.
The license (copyright) is Open Standard License 1.0 or greater.
@@ -386,59 +395,203 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be
IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
- The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted value that is associated with the given vocabulary name.
- The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
- The variable name is considered the Object and is also considered the vocabulary.
- The variable value is considered the Content.
- The variable name may be wrapped by a single open bracket, [ (U+005B), at the start and a single close bracket, ] (U+005D), at the end.
+ The IKI syntax describes a Variable that is defined by a Vocabulary name followed by quoted value called the Content.
- The wrapping characters characters are not part of the variable name and must not be contained within a variable name.
+ The Variable refers to the Vocabulary, Content, and associated syntax that describes the Variable.
+ The Variable name may be wrapped by a single open bracket, [ (U+005B), at the start and a single close bracket, ] (U+005D), at the end.
+ The open and close brackets, also called the wrapping characters, for the Variable do not utilize escaping characters and instead any escaping is perform against the colon : (U+003A) that separates the Vocabulary from the Content.
+ The Vocabulary generally defines the context and many of the IKI specifications may provide a discrete set of allowed Vocabulary.
+ The Vocabulary may also be referred to as the Object.
+ The Vocabulary only allows word characters or one of _ (U+005F), - (U+002D), + (U+002B), [ (U+005B)).
+ White space, non-word, and non _ (U+005F), - (U+002D), + (U+002B)) character punctuation may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+ Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
+ The immediate left of a Vocabulary must not be a valid Vocabulary character, unless the Vocabulary is wrapped using the wrapping characters.
+ Unicode invisible punctuation (such as invisible plus: U+2064) are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid _ (U+005F), - (U+002D), or + (U+002B) Unicode equivalents.
+
+
+ The wrapping characters characters are not part of the Vocabulary name and instead only provide the syntax used to help identify a valid Variable.
+ The wrapping characters characters are part of the Variable.
The wrapping characters do not support escaping.
Both wrapping characters must be specified or neither.
+ The Content refers to the value of the Variable.
+ The Content is wrapped one of the following quote characters: single quote ' (U+0027), double quote " (U+0022), or grave ` (U+0060).
+ The Content must escape any quotes that match the open and close quote used for the Variable by utilizing a backslash \ (U+005C).
+ If a matching closing quote is not found until the end of the data (or file), then this unclosed Variable is considered invalid.
+ The handling of this erroneous case is left to the implementation.
+
+
+ The backslashes used for escaping quotes use \ (U+005C).
+ Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+ One backslash escapes the valid quote, resulting in the quote being part of the Content.
+ Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the Content.
+ An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+ An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
+
+
The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
Whereas iki-0001 and beyond represent a specific IKI vocabulary.
- A potential IKI variable name starts on word character or one of _ (U+005F), - (U+002D), + (U+002B), [ (U+005B).
- White space, non-word, and non _ (U+005F), - (U+002D), + (U+002B) character punctuations may not exist as part of the variable name.
- The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+ Key:
+
+
\o = any printable word character, including _ (U+005F), - (U+002D), + (U+002B) (and Unicode equivalents).
+
\c = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.
+
\q = either a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060).
\e = an optional escape sequence of any number of backslashes, such as \ (U+005C).
+
[ = a single (conditionally optional) open bracket, [ (U+005B).
+
] = a single (conditionally optional) close bracket, ] (U+005D).
+
* = zero or more occurrences.
+
~ = one or more occurrences, or zero if at start of file.
+
+ = one or more occurrences.
+
: = The colon : (U+003A).
+
- Any potential IKI data must be escaped to make it treated as non-IKI data by prepending a backslash \ before the colon : that is before the opening quote (single, double, or grave (backtick)). Potential IKI data refers to any valid IKI sequence without considering the closing single quote ' (U+0027), closing double quote " (U+0022), or closing grave ` (U+0060).
+ Before Structure:
+
+
\x*\W~
+
- Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
- Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _, -, or + Unicode equivalents.
+ Structure:
+
+
+
[\o+]\e:\q\c\q
+
+
+ After Structure:
+
+
+
+
+
+ Example File:
+
+# fss-000c iki-0000
+
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
+
+Other times I want to render a URL such as this example URL: url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any IKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following italic\:"is escaped to not be treated as IKI Variable".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
+
+
+ Example Results:
+
+Objects (also called vocabulary or variable name) would be:
+ 1.1) italic
+ 2.1) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) one
+ 8.1) two
+ 9.1) three
+ 10.1) six
+ 11.1) one
+ 12.1) two
+ 13.1) three
+ 14.1) six
+
+Contents (also called variable value) would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) " escape
+ 8.1) \
+ 9.1) \" escape
+ 10.1) \\\
+ 11.1) \' escape
+ 12.1) \\' escape
+ 13.1) \\\' escape
+ 14.1) \\\\\\' escape
+
+
+ The following are core specifications (each with a common name associated with the specification number):
+
+ EKI is an extended EKI format that introduces the ability to have multiple variable names (Objects) per variable value (Content).
+
+
+ The EKI syntax is identical to the EKI syntax and all of its rules apply except for the modification defined in this specification.
+
+
+ This variable name, or Object, now supports an additional character, : (U+003A), is used to separate each individual variable name.
+ Each variable name must follow the same requirements of a valid variable name as specified in the EKI specification.
+ Only the last : (U+003A) before the opening single quote (U+0027), double quote (U+0022), or grave (U+0060) shall be a candidate for being escaped.
+ When this escape is in place of a valid EKI variable, then that would be variable is no longer considered an EKI variable.
Key:
\o = any printable word character, including _, -, + (and Unicode equivalents).
+
\O = any printable word character, including _, -, + (and Unicode equivalents) followed by a colon : (U+003A) (cannot be only a colon by itself).
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
\q = either a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060).
\e = an optional escape sequence of any number of backslashes, such as \ (U+005C).
[ = a single conditionally optional open bracket, [ (U+005B).
] = a single conditionally optional close bracket, ] (U+005D).
* = zero or more occurrences.
~ = one or more occurrences, or zero if at start of file.
+
+ = one or more occurrences.
+
: = The colon : (U+003A).
Before Structure:
-
\x*\W~\*:*
+
\x*\W~
Structure:
-
\o\e:\q\c\q
+
[\O*\o+]\e:\q\c\q
After Structure:
@@ -449,48 +602,73 @@ Object_2 This is multiple\" Contents and the trailing quote does not need to be
Example File:
-# fss-000c iki-0000
+# fss-000c eki-0000
+
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
+
+Other times I want to render a URL with bold such as this example URL: bold:url:'http://www.example.com/url with space/'.
-This is my sentence, anything can go here but sometimes I want to italic\:"emphasize some text".
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any EKI syntax anyway).
-Other times I want to render a url such as this example url: url\:'http://www.example.com/url with space/'.
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
-There are no comments, except for maybe the FSS\:"Featureless Settings Specification" header (which would not resolve to any IKI syntax anyway).
+The following bold:italic\:"is escaped to not be treated as EKI data".
-Quotes may be included, such as: code\:"const char *string = \"My \\\"quoted\\\" C string.\";".
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
-The following italic\:"is escaped to not be treated as IKI data".
+Multiple Objects within a bracket is also valid, like: before[bold:context]:"important"after.
-The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]\:"strong"this[context]\:"strong".
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
Example Results:
Objects (also called vocabulary or variable name) would be:
- 1) italic
- 2) url
- 3) FSS
- 4) code
- 5) italic
- 6) context
- 7) context
+ 1.1) italic
+ 2.1) bold
+ 2.2) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) bold
+ 7.2) context
+ 8.1) one
+ 9.1) two
+ 10.1) three
+ 11.1) six
+ 12.1) one
+ 13.1) two
+ 14.1) three
+ 15.1) six
Contents (also called variable value) would be:
- 1.1) emphasize some text
- 2.1) http://www.example.com/url with space/
- 3.1) Featureless Settings Specification
- 4.1) const char *string = "My \"quoted\" C string.";
- 5.1) is escaped to not be treated as IKI data
- 6.1) strong
- 7.1) strong
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) important
+ 8.1) " escape
+ 9.1) \\
+ 10.1) \" escape
+ 11.1) \\\
+ 12.1) \' escape
+ 13.1) \\' escape
+ 14.1) \\\' escape
+ 15.1) \\\\\\' escape
The following are core specifications (each with a common name associated with the specification number):
@@ -502,7 +680,7 @@ Contents (also called variable value) would be:
- The FSS and the IKI are not the only standards provided by the FLL.
+ The FSS, IKI and EKI are not the only standards provided by the FLL.
The following are other specifications that are provided:
diff --git a/fll/specifications/eki/eki-0000.html b/fll/specifications/eki/eki-0000.html
new file mode 100644
index 0000000..9a8ef75
--- /dev/null
+++ b/fll/specifications/eki/eki-0000.html
@@ -0,0 +1,218 @@
+
+
+
+ The version date of this specification is 2024/11/03.
+
+
+ This specification provides no restrictions on the vocabulary.
+
+
+
+
+
+
+
Common Specification Rules
+
+
+
+
+ EKI is an extended EKI format that introduces the ability to have multiple variable names (Objects) per variable value (Content).
+
+
+ The EKI syntax is identical to the EKI syntax and all of its rules apply except for the modification defined in this specification.
+
+
+ This variable name, or Object, now supports an additional character, : (U+003A), is used to separate each individual variable name.
+ Each variable name must follow the same requirements of a valid variable name as specified in the EKI specification.
+ Only the last : (U+003A) before the opening single quote (U+0027), double quote (U+0022), or grave (U+0060) shall be a candidate for being escaped.
+ When this escape is in place of a valid EKI variable, then that would be variable is no longer considered an EKI variable.
+
+
+ Key:
+
+
+
\o = any printable word character, including _, -, + (and Unicode equivalents).
+
\O = any printable word character, including _, -, + (and Unicode equivalents) followed by a colon : (U+003A) (cannot be only a colon by itself).
+
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
+
\q = either a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060).
\e = an optional escape sequence of any number of backslashes, such as \ (U+005C).
+
[ = a single conditionally optional open bracket, [ (U+005B).
+
] = a single conditionally optional close bracket, ] (U+005D).
+
* = zero or more occurrences.
+
~ = one or more occurrences, or zero if at start of file.
+
+ = one or more occurrences.
+
: = The colon : (U+003A).
+
+
+ Before Structure:
+
+
+
\x*\W~
+
+
+ Structure:
+
+
+
[\O*\o+]\e:\q\c\q
+
+
+ After Structure:
+
+
+
+
+
+ Example File:
+
+# fss-000c eki-0000
+
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
+
+Other times I want to render a URL with bold such as this example URL: bold:url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any EKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following bold:italic\:"is escaped to not be treated as EKI data".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+Multiple Objects within a bracket is also valid, like: before[bold:context]:"important"after.
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
+
+
+ Example Results:
+
+Objects (also called vocabulary or variable name) would be:
+ 1.1) italic
+ 2.1) bold
+ 2.2) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) bold
+ 7.2) context
+ 8.1) one
+ 9.1) two
+ 10.1) three
+ 11.1) six
+ 12.1) one
+ 13.1) two
+ 14.1) three
+ 15.1) six
+
+Contents (also called variable value) would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) important
+ 8.1) " escape
+ 9.1) \\
+ 10.1) \" escape
+ 11.1) \\\
+ 12.1) \' escape
+ 13.1) \\' escape
+ 14.1) \\\' escape
+ 15.1) \\\\\\' escape
+
+ The version date of this specification is 2024/11/03.
+
+
+ This specification provides a small set of vocabulary names meant to be associated with common uses, such as e-mail addresses and Uniform Resource Locators.
+
+
+ Vocabulary:
+
+
+
+
address
+
Any mailing address, except for e-mail and URI.
+
+
+
code
+
All text contained within represent code and should be presented as such.
+
+
+
email
+
Any valid e-mail address.
+
+
+
phone
+
Any valid phone number.
+
+
+
quote
+
All text within represents some quote.
+
+
+
uri
+
Any valid URI (allows URL and URN).
+
+
+
url
+
Any valid URL.
+
+
+
urn
+
Any valid URN.
+
+
+
var
+
All text contained within represents some sort of variable.
+
+
+
+
+
+
+
+
Common Specification Rules
+
+
+
+
+ EKI is an extended EKI format that introduces the ability to have multiple variable names (Objects) per variable value (Content).
+
+
+ The EKI syntax is identical to the EKI syntax and all of its rules apply except for the modification defined in this specification.
+
+
+ This variable name, or Object, now supports an additional character, : (U+003A), is used to separate each individual variable name.
+ Each variable name must follow the same requirements of a valid variable name as specified in the EKI specification.
+ Only the last : (U+003A) before the opening single quote (U+0027), double quote (U+0022), or grave (U+0060) shall be a candidate for being escaped.
+ When this escape is in place of a valid EKI variable, then that would be variable is no longer considered an EKI variable.
+
+
+ Key:
+
+
+
\o = any printable word character, including _, -, + (and Unicode equivalents).
+
\O = any printable word character, including _, -, + (and Unicode equivalents) followed by a colon : (U+003A) (cannot be only a colon by itself).
+
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
+
\q = either a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060).
\e = an optional escape sequence of any number of backslashes, such as \ (U+005C).
+
[ = a single conditionally optional open bracket, [ (U+005B).
+
] = a single conditionally optional close bracket, ] (U+005D).
+
* = zero or more occurrences.
+
~ = one or more occurrences, or zero if at start of file.
+
+ = one or more occurrences.
+
: = The colon : (U+003A).
+
+
+ Before Structure:
+
+
+
\x*\W~
+
+
+ Structure:
+
+
+
[\O*\o+]\e:\q\c\q
+
+
+ After Structure:
+
+
+
+
+
+ Example File:
+
+# fss-000c eki-0000
+
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
+
+Other times I want to render a URL with bold such as this example URL: bold:url:'http://www.example.com/url with space/'.
+
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any EKI syntax anyway).
+
+Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
+
+The following bold:italic\:"is escaped to not be treated as EKI data".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+Multiple Objects within a bracket is also valid, like: before[bold:context]:"important"after.
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
+
+
+ Example Results:
+
+Objects (also called vocabulary or variable name) would be:
+ 1.1) italic
+ 2.1) bold
+ 2.2) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) bold
+ 7.2) context
+ 8.1) one
+ 9.1) two
+ 10.1) three
+ 11.1) six
+ 12.1) one
+ 13.1) two
+ 14.1) three
+ 15.1) six
+
+Contents (also called variable value) would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) important
+ 8.1) " escape
+ 9.1) \\
+ 10.1) \" escape
+ 11.1) \\\
+ 12.1) \' escape
+ 13.1) \\' escape
+ 14.1) \\\' escape
+ 15.1) \\\\\\' escape
+
Each Object starts at the beginning of a line and white space to the left of the Object is not treated as part of the object.
White space separates an Object from the Content.
- An Object may be preceded by a newline, in which case means that the Object has no Content.
+ An Object may be preceded by a new line character, in which case means that the Object has no Content.
If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
- An Object may be quoted to include whitespace where a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060) are used to quote.
+ An Object may be quoted to include white space where a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060) are used to quote.
+ An Object is only considered quoted if the first and last character of the Object are the same quote.
+ Any quote characters in a non-quoted Object are treated as part of the Object rather than as a quote.
+ An Object that properly starts with a quote character but is not properly terminated before the new line is reached is considered to be an Object terminating at the end of the line.
+ A quoted Objected terminating at the new line in this way preserves the quotes as part of the Object.
Content exists on the same line as the Object.
- Content is represented as a single Content column terminated by a newline.
- Content column consists of everything following the first non-white space character until the newline.
- Content column includes trailing white space before newline is reached.
+ Content is represented as a single Content column terminated by a new line.
+ Content column consists of everything following the first non-white space character until the new line.
+ Content column includes trailing white space before new line is reached.
Content column does not include any of the leading white space.
No delimits are supported in the Content.
@@ -101,10 +105,10 @@
Key:
-
\s = White space, except newline.
-
\b = Either white space or printable, except newline.
-
\q = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.
-
\n = Newline.
+
\s = White space, except new line.
+
\b = Either white space or printable, except new line.
+
\q = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.
+
\n = New line.
* = Zero or more occurrences.
+ = One or more occurrences.
@@ -125,14 +129,12 @@
-
-
- Example:
-
-# fss-0000
-# valid comments are ignored.
-"The Object" Content until newline.
-Second object set.
+
+Example:
+ # fss-0000
+ # valid comments are ignored.
+ "The Object" Content until new line.
+ Second object set.
Example Result:
@@ -142,7 +144,7 @@ Object would be:
2) Second
Content would be:
- 1.1) Content until newline.
+ 1.1) Content until new line.
2.1) object set.
Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
White space separates an Object from the Content.
- An Object may be followed by a newline, in which case means that the Object has no Content.
+ An Object may be followed by a new line, in which case means that the Object has no Content.
If only printing white spaces or non-printable characters follow a valid Object, then that Object is considered to have no Content.
- An Object may be quoted to include whitespace where a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060) are used to quote.
+ An Object may be quoted to include white space where a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060) are used to quote.
+ An Object is only considered quoted if the first and last character of the Object are the same quote.
+ Any quote characters in a non-quoted Object are treated as part of the Object rather than as a quote.
+ An Object that properly starts with a quote character but is not properly terminated before the new line is reached is considered to be an Object terminating at the end of the line.
+ A quoted Objected terminating at the new line in this way preserves the quotes as part of the Object.
Content exists on the same line as the Object.
Content is represented as multiple Content columns.
- Content columns are white space separated parts within the Content and terminated by a newline.
- Any number of Content columns may exist in the Content until the newline is reached.
+ Content columns are white space separated parts within the Content and terminated by a new line.
+ Any number of Content columns may exist in the Content until the new line is reached.
+ Content follows the same quoting rules as an Object.
Key:
-
\s = White space, except newline.
-
\b = Either white space or printable, except newline.
-
\q = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.
-
\n = Newline.
+
\s = White space, except new line.
+
\b = Either white space or printable, except new line.
+
\q = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.
+
\n = New line.
* = Zero or more occurrences.
+ = One or more occurrences.
()* = Grouping that repeats zero or more times.
@@ -128,7 +133,8 @@
Example:
-
+
+
# fss-0001
# valid comments are ignored.
"The Object" Content "content 2" content_3.
diff --git a/fll/specifications/fss/fss-0002.html b/fll/specifications/fss/fss-0002.html
index f5ea9e6..3abf380 100644
--- a/fll/specifications/fss/fss-0002.html
+++ b/fll/specifications/fss/fss-0002.html
@@ -81,33 +81,34 @@
- The version date of this specification is 2024/01/15.
+ The version date of this specification is 2024/08/30.
- Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
- A colon : (U+003A) followed by any white space until a newline terminates a valid Object.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
+ A colon : (U+003A) followed by any white space until a new line terminates a valid Object.
+ White space after the last printable character of the Object but before the colon : (U+003A) is not considered part of the Object.
Non-white space printable characters may not follow the colon of a valid Object.
+ Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.
- Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until the next valid Object is found.
+ Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until the next valid Object is found.
Any Content that could be interpreted as a valid Object must have the colon delimited.
- There is no single-quote, double-quote, or grave delimitation in this specification.
+ There is no single-quote (U+0027), double-quote (U+0022), or grave (U+0060) delimitation in this specification.
Only a colon : (U+003A) that would result in a valid Object can be delimited.
- Empty Objects are allowed, that is, the length of the object may be zero.
+ Empty Objects are allowed, that is, the length of the Object may be zero.
Key:
-
\s = White space, except newline.
+
\s = White space, except new line.
\o = Any printable character, except unescaped : (U+003A).
-
\l = Any printable character or white space, except unescaped : (U+003A).
-
\c = either white space or printable, including newline, that not interpretable as an Object.
-
\n = Newline.
+
\c = Either white space or printable, including new line, that not interpretable as an Object.
+
\n = New line.
* = Zero or more occurrences.
@@ -120,7 +121,7 @@
Structure:
-
\s*\o\l*:\s*\n\c*\n*
+
\s*\o\s*:\s*\n\c*\n*
After Structure:
@@ -139,22 +140,22 @@
This Does\:
Second:
Continues until EOS/EOF.
- All white space, including newline (and leading white space) is "part of content."
+ All white space, including new line (and leading white space) is "part of content."
# Valid comments are still ignored.
Example Results:
- Objects would be:
- 1) "The Object"
- 2) Second
+Objects would be:
+ 1) "The Object"
+ 2) Second
- Contents would be:
- 1.1) Does not need to be quoted.
- This: does not need to be delimited.
- This Does:
- 2.1) Continues until EOS/EOF.
- All white space, including newline (and leading white space) is "part of content."
+Contents would be:
+ 1.1) Does not need to be quoted.
+ This: does not need to be delimited.
+ This Does:
+ 2.1) Continues until EOS/EOF.
+ All white space, including new line (and leading white space) is "part of content."
- The version date of this specification is 2024/01/15.
+ The version date of this specification is 2024/08/30.
- Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an object.
- An open-brace { (U+007B) followed by any white space until a newline terminates a possible valid Object.
+ Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
+ An open-brace { (U+007B) followed by any white space until a new line terminates a possible valid Object.
+ White space after the last printable character of the Object but before the brace { (U+0037B) is not considered part of the Object.
An Object is not considered fully valid until a valid close-brace } (U+007D) is found, designating the end of the Content.
Non-white space printable characters may not follow the open-brace { (U+007B) of a valid Object.
+ Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.
- Content is represented as a single Content column of every line following a valid object until the end of file (or string) or until a non-delimited close-brace } (U+007D).
+ Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until a non-delimited close-brace } (U+007D).
Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content.
- White space may follow a valid close-brace } (U+007D) but a terminating newline must be present to designate a valid end of Content.
+ White space may follow a valid close-brace } (U+007D) but a terminating new line must be present to designate a valid end of Content.
- There is no single-quote, double-quote, or grave delimitation in this specification.
- Only an open-brace { (U+007B) that would result in a valid Object or a close-brace } (U+007D) that would terminate valid Content can be delimited.
+ There is no single-quote (U+0027), double-quote (U+0022), or grave (U+0060) delimitation in this specification.
+ Only an open-brace { (U+007B) that would result in a valid Object or the close-brace } (U+007D) that would terminate valid Content can be delimited.
When inside potentially valid Content (which follows a valid Object) the open-brace { (U+007B) cannot be delimited because this standard is not-recursive.
When not inside any potentially valid Content (that is, there is no previous unclosed Object), then the Object may be delimited.
Likewise, the close-brace } (U+007D) may only be delimited if it is within any potentially valid Content.
@@ -106,15 +108,15 @@
Only the first delimit slash in a delimitable close-brace } (U+007D) is treated as a potential delimit (\\\} would represent \\}).
- Empty Objects are allowed, that is, the length of the object may be zero.
+ Empty Objects are allowed, that is, the length of the Object may be zero.
+
Key:
-
\s = White space, except newline.
+
\s = White space, except new line.
\o = Any printable character, except unescaped { (U+007B).
-
\l = Any printable character or white space, except unescaped } (U+007D).
-
\c = Either white space or printable, including newline, that is not interpretable as an Object.
+
\c = Either white space or printable, including new line, that is not interpretable as an Object.
\n = Newline.
* = Zero or more occurrences.
@@ -124,11 +126,12 @@
+
Structure:
-
\s*\o\l*{\s*\n\c*\n\s*}\s*\n
+
\s*\o\s*{\s*\n\c*\n\s*}\s*\n
After Structure:
@@ -138,7 +141,8 @@
Example:
-
+
+
# fss-0003
# valid comments are ignored.
"The Object" {
@@ -149,7 +153,7 @@
Second {
Continues until EOS/EOF.
- All white space, including newline (and leading white space) is "part of content."
+ All white space, including new line (and leading white space) is "part of content."
# Valid comments are still ignored.
}
@@ -165,7 +169,7 @@ Contents would be:
This: does not need to be delimited.
}
2.1) Continues until EOS/EOF.
- All white space, including newline (and leading white space) is "part of content."
+ All white space, including new line (and leading white space) is "part of content."
diff --git a/fll/specifications/fss/fss-0004.html b/fll/specifications/fss/fss-0004.html
index 25dd210..f4d097e 100644
--- a/fll/specifications/fss/fss-0004.html
+++ b/fll/specifications/fss/fss-0004.html
@@ -84,13 +84,13 @@
The version date of this specification is 2023/07/14.
- This is a fss-0002 (Basic List) whose Content is then processed as fss-0000 (Basic).
+ This is a FSS-0002 (Basic List) whose Content is then processed as FSS-0000 (Basic).
- All fss-0002 (Basic List) escapes are applied before any fss-0000 (Basic) is identified.
+ All FSS-0002 (Basic List) escapes are applied before any FSS-0000 (Basic) is identified.
Example:
@@ -103,7 +103,7 @@
This Does\:
Second:
Continues until EOS/EOF.
- All white space, including newline (and leading white space) is "part of content."
+ All white space, including new line (and leading white space) is "part of content."
# Valid comments are still ignored.
@@ -115,7 +115,6 @@ Outer Objects would be:
Inner Objects would be:
1.1) Does
- 1.2) This:
1.3) This
2.1) Continues
@@ -127,7 +126,7 @@ Inner Contents would be:
1.3.1) Does:
2.1.1) until EOS/EOF.
- 2.2.1) white space, including newline (and leading white space) is "part of content."
+ 2.2.1) white space, including new line (and leading white space) is "part of content."
diff --git a/fll/specifications/fss/fss-0005.html b/fll/specifications/fss/fss-0005.html
index 0d4ce30..a23c378 100644
--- a/fll/specifications/fss/fss-0005.html
+++ b/fll/specifications/fss/fss-0005.html
@@ -84,13 +84,13 @@
The version date of this specification is 2023/07/14.
- This is a code"fss-0002 (Basic List)" whose Content is then processed as fss-0001 (Extended).
+ This is a FSS-0002 (Basic List) whose Content is then processed as FSS-0001 (Extended).
- All fss-0002 (Basic List) escapes are applied before any fss-0001 (Extended) is identified.
+ All FSS-0002 (Basic List) escapes are applied before any FSS-0001 (Extended) is identified.
Example:
@@ -103,9 +103,9 @@
This Does\:
Second:
Continues until EOS/EOF.
- All white space, including newline (and leading white space) is "part of content."
+ All white space, including new line (and leading white space) is "part of content."
# Valid comments are still ignored.
-
+
Example Results:
@@ -115,7 +115,6 @@ Outer Objects would be:
Inner Objects would be:
1.1) Does
- 1.2) This:
1.3) This
2.1) Continues
@@ -140,14 +139,16 @@ Inner Contents would be:
2.1.1) until
2.1.2) EOS/EOF.
- 2.2.1) white space,
- 2.2.2) including
- 2.2.3) newline
- 2.2.4) (and
- 2.2.5) leading
- 2.2.6) white space)
- 2.2.7) is
- 2.2.8) part of content.
+ 2.2.1) white
+ 2.2.2) space,
+ 2.2.3) including
+ 2.2.4) new
+ 2.2.5) line
+ 2.2.6) (and
+ 2.2.7) leading
+ 2.2.8) white space)
+ 2.2.9) is
+ 2.2.10) part of content.
diff --git a/fll/specifications/fss/fss-0006.html b/fll/specifications/fss/fss-0006.html
index 6ae1e8a..d84ccee 100644
--- a/fll/specifications/fss/fss-0006.html
+++ b/fll/specifications/fss/fss-0006.html
@@ -84,13 +84,13 @@
The version date of this specification is 2023/07/14.
- This is a fss-0003 (Extended List) whose Content is then processed as fss-0000 (Basic).
+ This is a FSS-0003 (Extended List) whose Content is then processed as FSS-0000 (Basic).
- All fss-0003 (Extended List) escapes are applied before any fss-0000 (Basic) is identified.
+ All FSS-0003 (Extended List) escapes are applied before any FSS-0000 (Basic) is identified.
Example:
@@ -105,7 +105,7 @@
Second {
Continues until EOS/EOF.
- All white space, including newline (and leading white space) is "part of content."
+ All white space, including new line (and leading white space) is "part of content."
# Valid comments are still ignored.
}
@@ -130,7 +130,7 @@ Inner Contents would be:
1.3.1)
2.1.1) until EOS/EOF.
- 2.2.1) white space, including newline (and leading white space) is "part of content."
+ 2.2.1) white space, including new line (and leading white space) is "part of content."
diff --git a/fll/specifications/fss/fss-0007.html b/fll/specifications/fss/fss-0007.html
index b707230..3b0a5b0 100644
--- a/fll/specifications/fss/fss-0007.html
+++ b/fll/specifications/fss/fss-0007.html
@@ -84,30 +84,30 @@
The version date of this specification is 2023/07/14.
- This is a fss-0003 (Extended List) whose Content is then processed as fss-0001 (Extended).
+ This is a FSS-0003 (Extended List) whose Content is then processed as FSS-0001 (Extended).
- All fss-0003 (Extended List) escapes are applied before any fss-0001 (Extended) is identified.
+ All FSS-0003 (Extended List) escapes are applied before any FSS-0001 (Extended) is identified.
-# fss-0007
-# valid comments are ignored.
-"The Object" {
- Does not need to be quoted.
- This: does not need to be delimited.
- \}
-}
-
-Second {
- Continues until EOS/EOF.
- All white space, including newline (and leading white space) is "part of content."
- # Valid comments are still ignored.
-}
+ # fss-0007
+ # valid comments are ignored.
+ "The Object" {
+ Does not need to be quoted.
+ This: does not need to be delimited.
+ \}
+ }
+
+ Second {
+ Continues until EOS/EOF.
+ All white space, including new line (and leading white space) is "part of content."
+ # Valid comments are still ignored.
+ }
Example Results:
@@ -143,14 +143,16 @@ Inner Contents would be:
2.1.1) until
2.1.2) EOS/EOF.
- 2.2.1) white space,
- 2.2.2) including
- 2.2.3) newline
- 2.2.4) (and
- 2.2.5) leading
- 2.2.6) white space)
- 2.2.7) is
- 2.2.8) part of content.
+ 2.2.1) white
+ 2.2.2) space,
+ 2.2.3) including
+ 2.2.4) new
+ 2.2.5) line
+ 2.2.6) (and
+ 2.2.7) leading
+ 2.2.8) white space)
+ 2.2.9) is
+ 2.2.10) part of content.
diff --git a/fll/specifications/fss/fss-0008.html b/fll/specifications/fss/fss-0008.html
index c486f0a..937f44f 100644
--- a/fll/specifications/fss/fss-0008.html
+++ b/fll/specifications/fss/fss-0008.html
@@ -84,10 +84,10 @@
The version date of this specification is 2023/07/14.
- This is a fss-0003 (Extended List) whose Content is then recursively processed as fss-0003 (Extended List).
+ This is a FSS-0003 (Extended List) whose Content is then recursively processed as FSS-0003 (Extended List).
Example:
diff --git a/fll/specifications/fss/fss-0009.html b/fll/specifications/fss/fss-0009.html
index 81c6499..568169a 100644
--- a/fll/specifications/fss/fss-0009.html
+++ b/fll/specifications/fss/fss-0009.html
@@ -84,7 +84,7 @@
The version date of this specification is 2024/06/11.
- This is based off of fss-0000 (Basic), except the Object is at the end of the line.
+ This is based off of FSS-0000 (Basic), except the Object is at the end of the line.
Each Object starts at the end of a line and white space to the left of the Object is not treated as part of the object.
@@ -111,8 +111,8 @@
\s = White space, except new line.
\b = Either white space or printable, except new line.
-
\q = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.
-
\n = Newline.
+
\q = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.
+
\n = New line.
* = Zero or more occurrences.
+ = One or more occurrences.
diff --git a/fll/specifications/fss/fss-000a.html b/fll/specifications/fss/fss-000a.html
index dafc531..2c6d13d 100644
--- a/fll/specifications/fss/fss-000a.html
+++ b/fll/specifications/fss/fss-000a.html
@@ -84,7 +84,7 @@
The version date of this specification is 2024/06/11.
- This is based off of fss-0001 (Extended), except the Object is at the end of the line.
+ This is based off of FSS-0001 (Extended), except the Object is at the end of the line.
Each Object starts at the end of a line and white space to the left of the Object is not treated as an object.
@@ -110,8 +110,8 @@
\s = White space, except new line.
\b = Either white space or printable, except new line.
-
\q = Non-white space or quoted white space (and non-whitespace) with no white space outside of the quotes.
-
\n = Newline.
+
\q = Non-white space or quoted white space (and non-white space) with no white space outside of the quotes.
+
\n = New line.
* = Zero or more occurrences.
+ = One or more occurrences.
()* = Grouping that repeats zero or more times.
diff --git a/fll/specifications/fss/fss-000b.html b/fll/specifications/fss/fss-000b.html
index d3c966e..3b10662 100644
--- a/fll/specifications/fss/fss-000b.html
+++ b/fll/specifications/fss/fss-000b.html
@@ -84,10 +84,10 @@
The version date of this specification is 2023/07/14.
- This is similar to fss-0008 (Embedded List), except it is an fss-0003 (Extended List) with a (non-recursive) fss-0002 (Basic List) inside the Content.
+ This is similar to FSS-0008 (Embedded List), except that it is an FSS-0003 (Extended List) with a (non-recursive) FSS-0002 (Basic List) inside the Content.
The IKI specifications are separate specifications from the FSS.
This is simply a more formal way to designate that this format utilizes IKI syntax.
+ This may also be used to designate EKI syntax.
+
+
+ When neither an IKI nor an EKI header is specified and (other than fss-000c is specified) and the syntax is not known through some other means, then this can be assumed to be in IKI syntax rather than EKI syntax.
The IKI syntax may be used in any FSS.
- The IKI format may be added to the.
- See the iki.txt specification for details on the IKI specifications.
+ See the iki.txt specification for details on the IKI specifications.
+
+
+ See the eki.txt specification for details on the EKI specifications.
Example:
# fss-000c iki-0000
-This is a emphasis:"formal example" utilizing the FSS headers.
+This is a italic:"formal example" utilizing the FSS and IKI headers.
Example:
# iki-0000
-This is an emphasis:"informal example" utilizing the IKI headers.
-
+This is a italic:"informal example" utilizing only the IKI headers.
+
+
+ Example:
+
+# fss-000c eki-0000
+
+This is a bold:italic:"informal example" utilizing the FSS and EKI headers.
+
+
+ Example:
+
+# fss-000c
+
+This is a italic:"formal example" utilizing only the FSS headers, which in this case is treated as IKI rather than EKI.
+
The version date of this specification is 2023/07/14.
-
- This is a special case that follows fss-0002 (Basic List), and different FSS formats inside this fss-0002 (Basic List).
- This fss-0002 (Basic List) is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".
+ This is a special case that follows FSS-0002 (Basic List), and different FSS formats inside this FSS-0002 (Basic List).
+ This FSS-0002 (Basic List) is considered the "Outer List" and the Content of this Outer List is considered the "Inner Content".
- The Inner Content may be any of the following FSS formats: fss-0000 (Basic), fss-0001 (Extended), and fss-0003 (Extended List).
+ The Inner Content may be any of the following FSS formats: FSS-0000 (Basic), FSS-0001 (Extended), and FSS-0003 (Extended List).
The way in which each format is determined is first to see if the Inner Content Object would be a valid Extended List Object.
- If the Inner Content Object is not a valid fss-0003 (Extended List) Object, then check to see if it is an fss-0000 (Basic) or fss-0001 (Extended) Object.
+ If the Inner Content Object is not a valid FSS-0003 (Extended List) Object, then check to see if it is an FSS-0000 (Basic) or FSS-0001 (Extended) Object.
- The fss-0000 (Basic) and fss-0001 (Extended) Objects have the same format for Object names but the fss-0003 (Extended List) Object is slightly different.
- Anything that would match an fss-0003 (Extended List) Object must therefore be an fss-0003 (Extended List) Object.
+ The FSS-0000 (Basic) and FSS-0001 (Extended) Objects have the same format for Object names but the FSS-0003 (Extended List) Object is slightly different.
+ Anything that would match an FSS-0003 (Extended List) Object must therefore be an FSS-0003 (Extended List) Object.
- This supports the use of iki-0000 (Unrestricted) but only within the Content of the outermost fss-0002 (Basic List).
+ This supports the use of iki-0000 (Unrestricted) but only within the Content of the outermost FSS-0002 (Basic List).
That is to say, the IKI is only processed once.
Additional restrictions on the use of IKI syntax is allowed if explicitly defined in the implementing specification.
This additional restriction may also include using a more restrictive IKI syntax, such as iki-0001 (Basic).
@@ -106,7 +105,7 @@
Anything implementing this specification may impose its own restrictions on when to determine if the Inner Content is what FSS format, based on Object names.
Example:
diff --git a/fll/specifications/fss/fss-000e.html b/fll/specifications/fss/fss-000e.html
index 0c237ac..3ac921d 100644
--- a/fll/specifications/fss/fss-000e.html
+++ b/fll/specifications/fss/fss-000e.html
@@ -84,7 +84,7 @@
The version date of this specification is 2024/03/12.
- This is a fss-0002 (Basic List) with two required objects:
+ This is a FSS-0002 (Basic List) with one required object and two optional objects:
header.
@@ -97,7 +97,7 @@
The header's Content is of type FSS-0001 (Extended).
The header is recommended to have the Objects length, status, part, total, and type.
- The header is suggested to have the Objects salt and time.
+
The header is suggested to have the Objects salt and time.
The recommended length represents the size of the payload.
The recommended part represents a single part of a set of packets for when the data being transmitted is split across multiple payloads.
The recommended status represents status codes (such as success or failure) and multiple.
@@ -127,25 +127,21 @@
The payload's Content may contain anything, including raw binary data.
The payload is required to be the last list Object in the file, if present.
The payload is recommended to have its size designated in some manner in the header (such as with the recommended length).
-
The payload is terminated by the EOF character or by the recommended length header.
+
The payload is terminated by the End of File character or by the recommended length header.
The payload may be empty (length may be zero).
Nothing in the payload may be considered a valid list Object by the outer FSS-0002 (Basic List) and therefore escaping is unnecessary (No further processing by the outer FSS-0002 (Basic List) is allowed at this point).
Comments in the payload are not considered comments and are instead considered part of the payload, as-is.
Essentially, the payload should be treated as binary data embedded in a text file.
There may only be a single payload Object and associated Content.
-
Any payload Object and associated Content that is not the last must not have its Content data treated as binary in the same way as the last payload" Object and associated Content.
+
Any payload Object and associated Content that is not the last must not have its Content data treated as binary in the same way as the last payload Object and associated Content.
The recommended lengthheader Object used to designate the payload size does not necessarily have to be defined in the header.
That is to say, if the payload is expected to be of some pre-defined or static length then a length does not need to be provided in the header.
- The recommended lengthheader Object used to designate the payload size does not necessarily have to be defined in the header.
- That is to say, if the payload is expected to be of some pre-defined or static length then a length does not need to be provided in the header.
-
-
The recommended statusheader Object may be a string, such as F_okay, or a positive whole number.
- What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent FLL status code.
+ What the status code represents is application specific (or specific to a sub-standard) but may often be used to represent Featureless Linux Library status code.
The FLL status code is a 16-bit digit whose first two high-order bits represent error and warning (representing signal).
diff --git a/fll/specifications/fss/fss-000f.html b/fll/specifications/fss/fss-000f.html
index 0d97648..264d07c 100644
--- a/fll/specifications/fss/fss-000f.html
+++ b/fll/specifications/fss/fss-000f.html
@@ -84,7 +84,7 @@
The version date of this specification is 2024/06/05.
- This is a network packet format that often contains fss-000e (Payload) within it.
+ This is a network packet format that often contains FSS-000e (Payload) within it.
The Magic Block when containing FSS-000e (Payload) in the Payload Block is: 11010010100111101111010000111110.
@@ -102,10 +102,10 @@
There are three or four blocks in this format:
-
Control Block.
-
Size Block.
-
Magic Block.
-
Payload Block.
+
Control Block.
+
Size Block.
+
Magic Block.
+
Payload Block.
The Control Block is the first block in the packet and is considered endianless.
@@ -115,7 +115,7 @@
The third bit following the endiannes bit represents the magic bit.
- Control Block Structure:
+ Control Block Structure:
[ Endianness Bit ] [ String / Binary Bit ] [ Magic Bit ] [ Remaining 5 Bits (unused) ]
[ size: 1 bit ] [ size: 1 bit ] [ size: 1 bit ] [ size: 5 bits ]
@@ -123,7 +123,7 @@
The endianness bit designates whether or not the packet is in big endian or little endian format.
A bit value of 0 designates that this packet is in little endian and a value of 1 designates that this packet is in big endian format.
- All binary data within this packet, following the Control Block, must respect this endianness bit (including the Size Block).
+ All binary data within this packet, following the Control Block, must respect this endianness bit (including the Size Block).
The magic bit designates whether or not the packet contains the optional Magic Block.
@@ -138,12 +138,12 @@
The remaining bits are not defined by this standard and are expected to be 0.
Non-formal or local uses may utilize these remaining 6 bits as desired.
- However, there may be additional standards that expand upon this and utilize these remaining Control bits.
- Anything that utilizes these unused Control bits may add or remove additional Blocks after the Control Block as they see fit.
- One possible use of the remaining bits is to designate a different variation of this Simple Packet standard.
+ However, there may be additional standards that expand upon this and utilize these remaining Control bits.
+ Anything that utilizes these unused Control bits may add or remove additional Blocks after the Control Block as they see fit.
+ One possible use of the remaining bits is to designate a different variation of this Simple Packet standard.
- Size Block Structure:
+ Size Block Structure:
[ Size Block ]
[ size: 32 bits ]
@@ -152,19 +152,22 @@
The Size Block is an unsigned 32-bit integer representing the size of the entire packet in bytes, including the Control Block and Size Block.
This size must exactly match the packet to be a valid packet.
The size represents number of bytes in the file.
- The Control Block is 1 byte long and the Size Block is 4 bytes long, therefore the maximum available size of the entire Simple Packet structure is (2^32)-6.
- The Magic Block is 4 bytes long, therefore when the magic bit is set, then the maximum available size of the entire Simple Packet structure is (2^32)-9.
+ The Control Block is 1 byte long and the Size Block is 4 bytes long, therefore the maximum available size of the entire Simple Packet structure is (2^32)-5.
+ The Magic Block is 4 bytes long, therefore when the magic bit is set, then the maximum available size of the entire Simple Packet structure is (2^32)-9.
- Magic Block Structure:
+ The reason behind why the size includes both the Control Block and the Size Block in addition to the Payload Block is to avoid the need to perform any calculations for handling the size of the entire packet. The idea here is to optimize the packet for the network hardware transferring the packet. The network device should not need to read the contents of the packet in order to transfer the packet and therefore it only needs the number of the entire packet. Anything that wants to analyze this packet will have to incure the cost of calculating the Payload Block size by performing the appropriate subtraction from the size represented in the Size Block.
+
+
+ Magic Block Structure:
[ Magic Block ]
[ size: 32 bits ]
- The Magic Block is an unsigned 32-bit digit used to uniquely identify the packet.
+ The Magic Block is an unsigned 32-bit digit used to uniquely identify the packet.
The 32-bits are treated as endianless such that the left to right order of the bits is always the same for both big and little endian systems.
- The Magic Block is required when the magic bit is set and it must not exist when the magic bit is not set.
+ The Magic Block is required when the magic bit is set and it must not exist when the magic bit is not set.
This offers optimization in identifying the packet and its structure.
@@ -173,7 +176,7 @@
This is particularly unhelpful for security and privacy given that it helps quickly identify the packet.
[ Payload Block ]
[ size: (2^32)-5 bytes (or (2^32)-9 bytes if magic bit is set) ]
@@ -184,10 +187,10 @@
The FSS-000e (Payload) may be represented in either string format or binary format.
The FSS-000e (Payload) may contain multiple header(s) but may only contain a single payload.
With this in mind, it is recommended that only a single header be supported in the Payload Block.
- The payloadContent may be in either a binary or string format regardless of the binary bit in the Simple PacketHeader Block.
+ The payload Content may be in either a binary or string format regardless of the binary bit in the Simple Packet Header Block.
- See the fss-000e (Payload) specification file for details on the syntax rules for the Payload Block.
+ See the FSS-000e (Payload) specification file for details on the syntax rules for the Payload Block.
Example Packet Structure:
diff --git a/fll/specifications/fss/fss-0010.html b/fll/specifications/fss/fss-0010.html
index 795d13d..19b15f2 100644
--- a/fll/specifications/fss/fss-0010.html
+++ b/fll/specifications/fss/fss-0010.html
@@ -82,6 +82,38 @@
The version date of this specification is 2023/07/16.
+ This is an encrypted form of the network packet format of FSS-000f (Simple Packet).
+
+ The entire Payload Block is undefined by this standard and is instead defined by the encryption algorithm or standard in use.
+ There is no rule, restriction, requirement, or definition on what encryption can be used.
+ The only rule is that the Payload Block must be of a valid length as defined by the Size Block.
+
+ The general rule is that it can be assumed that the encrypted data in the Payload Block would be of the FSS-000e (Payload) format. Being that the data is supposed to be encrypted, the actual contents of the Payload Block is left undefined.
+
+ The FSS-000f (Simple Packet) that this standard modifies does not require the Payload Block to be in FSS-000e (Payload) format.
+ This standard is even more lax than FSS-000f (Simple Packet) and drops replaces the words should be in from the FSS-000f (Simple Packet) standard and replaces them with could be in.
+
+ This allows for the encrypted data to be anything the user wants, such as but not limited to Hypertext Transfer Protocol.
+
+ When it comes to security, any and all data can be useful. For best encryption, one may want to consider not using this format because of the Control Block and the Size Block are not encrypted.
+
+ The endianness bit should only be used to represent the Size Block to avoid any security concerns. The endianness of the encrypted needs to be determined through some other means for any kind of reasonable security.
+
+ This standard uses the third bit from the left in the Control Block to designate that this is an encrypted packet.
+
+ The 5 remaining control bits are left undefined.
+
+ See the fss-000f.txt specification file for details regarding the FSS-000f (Simple Packet) standard.
+
+ Example Packet Structure:
+
+ [ Control Block ] [ Size Block ] [ Payload Block ]
+ [ 0b10100000 ] [ 0b00000000 0b00000000 0b00000100 0b11010010 ] [ size: 1229 (1234 - 5) ]
+
+
+ In the above example, take note that the third bit in the Control Block is a 1.
+
+
This is an encrypted form of the network packet format of FSS-000f (Simple Packet).
diff --git a/fll/specifications/iki/iki-0000.html b/fll/specifications/iki/iki-0000.html
index d600e4c..d326761 100644
--- a/fll/specifications/iki/iki-0000.html
+++ b/fll/specifications/iki/iki-0000.html
@@ -101,52 +101,75 @@
IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
- The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
- The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
- The variable name is considered the Object.
- The variable value is considered the Content.
+ The IKI syntax describes a Variable that is defined by a Vocabulary name followed by quoted value called the Content.
- The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
- Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+ The Variable refers to the Vocabulary, Content, and associated syntax that describes the Variable.
+ The Variable name may be wrapped by a single open bracket, [ (U+005B), at the start and a single close bracket, ] (U+005D), at the end.
+ The open and close brackets, also called the wrapping characters, for the Variable do not utilize escaping characters and instead any escaping is perform against the colon : (U+003A) that separates the Vocabulary from the Content.
+ The Vocabulary generally defines the context and many of the IKI specifications may provide a discrete set of allowed Vocabulary.
+ The Vocabulary may also be referred to as the Object.
+ The Vocabulary only allows word characters or one of _ (U+005F), - (U+002D), + (U+002B), [ (U+005B)).
+ White space, non-word, and non _ (U+005F), - (U+002D), + (U+002B)) character punctuation may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+ Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
+ The immediate left of a Vocabulary must not be a valid Vocabulary character, unless the Vocabulary is wrapped using the wrapping characters.
+ Unicode invisible punctuation (such as invisible plus: U+2064) are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid _ (U+005F), - (U+002D), or + (U+002B) Unicode equivalents.
- A potential IKI variable name starts on word (or _, -, +) characters.
- White space and non-word (and non _, -, +) character punctuations may not exist as part of the variable name.
- The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+ The wrapping characters characters are not part of the Vocabulary name and instead only provide the syntax used to help identify a valid Variable.
+ The wrapping characters characters are part of the Variable.
+ The wrapping characters do not support escaping.
+ Both wrapping characters must be specified or neither.
- Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code::" that is before the opening quote (single or double).
+ The Content refers to the value of the Variable.
+ The Content is wrapped one of the following quote characters: single quote ' (U+0027), double quote " (U+0022), or grave ` (U+0060).
+ The Content must escape any quotes that match the open and close quote used for the Variable by utilizing a backslash \ (U+005C).
+ If a matching closing quote is not found until the end of the data (or file), then this unclosed Variable is considered invalid.
+ The handling of this erroneous case is left to the implementation.
- Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
- Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _, -, or + Unicode equivalents.
+ The backslashes used for escaping quotes use \ (U+005C).
+ Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+ One backslash escapes the valid quote, resulting in the quote being part of the Content.
+ Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the Content.
+ An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+ An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
+
+
+ The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
+ Whereas iki-0001 and beyond represent a specific IKI vocabulary.
Key:
-
\o = any printable word character, including _, -, + (and Unicode equivalents).
-
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
\e = an optional escape sequence of any number of backslashes, such as \.
-
* = zero or more occurrences.
-
~ = one or more occurrences, or zero if at start of file.
+
\o = any printable word character, including _ (U+005F), - (U+002D), + (U+002B) (and Unicode equivalents).
+
\c = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.
+
\q = either a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060).
\e = an optional escape sequence of any number of backslashes, such as \ (U+005C).
+
[ = a single (conditionally optional) open bracket, [ (U+005B).
+
] = a single (conditionally optional) close bracket, ] (U+005D).
+
* = zero or more occurrences.
+
~ = one or more occurrences, or zero if at start of file.
+
+ = one or more occurrences.
+
: = The colon : (U+003A).
Before Structure:
-
\x*\W~\*:*
+
\x*\W~
Structure:
-
-
\o\e:\q\c\q
-
+
+
[\o+]\e:\q\c\q
+
After Structure:
@@ -158,28 +181,58 @@
# fss-000c iki-0000
-This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
-Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+Other times I want to render a URL such as this example URL: url:'http://www.example.com/url with space/'.
-There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway).
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any IKI syntax anyway).
Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
-The following emphasis\:"is escaped to not be treated as IKI data".
+The following italic\:"is escaped to not be treated as IKI Variable".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
Example Results:
-
-Objects would be:
- 1) emphasis
- 2) url
- 3) code
-
-Contents would be:
- 1.1) emphasize some text
- 2.1) http://www.example.com/url with space/
- 3.1) const char *string = "My \"quoted\" C string.";
+
+Objects (also called vocabulary or variable name) would be:
+ 1.1) italic
+ 2.1) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) one
+ 8.1) two
+ 9.1) three
+ 10.1) six
+ 11.1) one
+ 12.1) two
+ 13.1) three
+ 14.1) six
+
+Contents (also called variable value) would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) " escape
+ 8.1) \
+ 9.1) \" escape
+ 10.1) \\\
+ 11.1) \' escape
+ 12.1) \\' escape
+ 13.1) \\\' escape
+ 14.1) \\\\\\' escape
diff --git a/fll/specifications/iki/iki-0001.html b/fll/specifications/iki/iki-0001.html
index 98c5c28..1e75138 100644
--- a/fll/specifications/iki/iki-0001.html
+++ b/fll/specifications/iki/iki-0001.html
@@ -143,52 +143,75 @@
IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
- The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
- The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
- The variable name is considered the Object.
- The variable value is considered the Content.
+ The IKI syntax describes a Variable that is defined by a Vocabulary name followed by quoted value called the Content.
- The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
- Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+ The Variable refers to the Vocabulary, Content, and associated syntax that describes the Variable.
+ The Variable name may be wrapped by a single open bracket, [ (U+005B), at the start and a single close bracket, ] (U+005D), at the end.
+ The open and close brackets, also called the wrapping characters, for the Variable do not utilize escaping characters and instead any escaping is perform against the colon : (U+003A) that separates the Vocabulary from the Content.
+ The Vocabulary generally defines the context and many of the IKI specifications may provide a discrete set of allowed Vocabulary.
+ The Vocabulary may also be referred to as the Object.
+ The Vocabulary only allows word characters or one of _ (U+005F), - (U+002D), + (U+002B), [ (U+005B)).
+ White space, non-word, and non _ (U+005F), - (U+002D), + (U+002B)) character punctuation may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+ Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
+ The immediate left of a Vocabulary must not be a valid Vocabulary character, unless the Vocabulary is wrapped using the wrapping characters.
+ Unicode invisible punctuation (such as invisible plus: U+2064) are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid _ (U+005F), - (U+002D), or + (U+002B) Unicode equivalents.
- A potential IKI variable name starts on word (or _, -, +) characters.
- White space and non-word (and non _, -, +) character punctuations may not exist as part of the variable name.
- The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+ The wrapping characters characters are not part of the Vocabulary name and instead only provide the syntax used to help identify a valid Variable.
+ The wrapping characters characters are part of the Variable.
+ The wrapping characters do not support escaping.
+ Both wrapping characters must be specified or neither.
- Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code::" that is before the opening quote (single or double).
+ The Content refers to the value of the Variable.
+ The Content is wrapped one of the following quote characters: single quote ' (U+0027), double quote " (U+0022), or grave ` (U+0060).
+ The Content must escape any quotes that match the open and close quote used for the Variable by utilizing a backslash \ (U+005C).
+ If a matching closing quote is not found until the end of the data (or file), then this unclosed Variable is considered invalid.
+ The handling of this erroneous case is left to the implementation.
- Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
- Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _, -, or + Unicode equivalents.
+ The backslashes used for escaping quotes use \ (U+005C).
+ Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+ One backslash escapes the valid quote, resulting in the quote being part of the Content.
+ Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the Content.
+ An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+ An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
+
+
+ The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
+ Whereas iki-0001 and beyond represent a specific IKI vocabulary.
Key:
-
\o = any printable word character, including _, -, + (and Unicode equivalents).
-
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
\e = an optional escape sequence of any number of backslashes, such as \.
-
* = zero or more occurrences.
-
~ = one or more occurrences, or zero if at start of file.
+
\o = any printable word character, including _ (U+005F), - (U+002D), + (U+002B) (and Unicode equivalents).
+
\c = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.
+
\q = either a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060).
\e = an optional escape sequence of any number of backslashes, such as \ (U+005C).
+
[ = a single (conditionally optional) open bracket, [ (U+005B).
+
] = a single (conditionally optional) close bracket, ] (U+005D).
+
* = zero or more occurrences.
+
~ = one or more occurrences, or zero if at start of file.
+
+ = one or more occurrences.
+
: = The colon : (U+003A).
Before Structure:
-
\x*\W~\*:*
+
\x*\W~
Structure:
-
-
\o\e:\q\c\q
-
+
+
[\o+]\e:\q\c\q
+
After Structure:
@@ -198,30 +221,60 @@
Example File:
-# fss-000c iki-0001
+# fss-000c iki-0000
-This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
-Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+Other times I want to render a URL such as this example URL: url:'http://www.example.com/url with space/'.
-There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway).
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any IKI syntax anyway).
Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
-The following emphasis\:"is escaped to not be treated as IKI data".
+The following italic\:"is escaped to not be treated as IKI Variable".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
Example Results:
-
-Objects would be:
- 1) emphasis
- 2) url
- 3) code
-
-Contents would be:
- 1.1) emphasize some text
- 2.1) http://www.example.com/url with space/
- 3.1) const char *string = "My \"quoted\" C string.";
+
+Objects (also called vocabulary or variable name) would be:
+ 1.1) italic
+ 2.1) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) one
+ 8.1) two
+ 9.1) three
+ 10.1) six
+ 11.1) one
+ 12.1) two
+ 13.1) three
+ 14.1) six
+
+Contents (also called variable value) would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) " escape
+ 8.1) \
+ 9.1) \" escape
+ 10.1) \\\
+ 11.1) \' escape
+ 12.1) \\' escape
+ 13.1) \\\' escape
+ 14.1) \\\\\\' escape
diff --git a/fll/specifications/iki/iki-0002.html b/fll/specifications/iki/iki-0002.html
index 6c7e72d..f187129 100644
--- a/fll/specifications/iki/iki-0002.html
+++ b/fll/specifications/iki/iki-0002.html
@@ -127,52 +127,75 @@
IKI is a minimally structured WIKI-like syntax meant to be simpler than WIKI syntax.
- The IKI syntax provides a vocabulary name (with specific context associated with it) followed by quoted code that is associated with the given vocabulary name.
- The vocabulary represents a list of allowed variable names that may also have specific contextual meaning defined by a given IKI specification.
- The variable name is considered the Object.
- The variable value is considered the Content.
+ The IKI syntax describes a Variable that is defined by a Vocabulary name followed by quoted value called the Content.
- The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
- Whereas iki-0001 and beyond represent a specific IKI vocabulary.
+ The Variable refers to the Vocabulary, Content, and associated syntax that describes the Variable.
+ The Variable name may be wrapped by a single open bracket, [ (U+005B), at the start and a single close bracket, ] (U+005D), at the end.
+ The open and close brackets, also called the wrapping characters, for the Variable do not utilize escaping characters and instead any escaping is perform against the colon : (U+003A) that separates the Vocabulary from the Content.
+ The Vocabulary generally defines the context and many of the IKI specifications may provide a discrete set of allowed Vocabulary.
+ The Vocabulary may also be referred to as the Object.
+ The Vocabulary only allows word characters or one of _ (U+005F), - (U+002D), + (U+002B), [ (U+005B)).
+ White space, non-word, and non _ (U+005F), - (U+002D), + (U+002B)) character punctuation may not exist as part of the variable name.
+ The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+ Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
+ The immediate left of a Vocabulary must not be a valid Vocabulary character, unless the Vocabulary is wrapped using the wrapping characters.
+ Unicode invisible punctuation (such as invisible plus: U+2064) are not considered a punctuation in this standard (because they a zero-width characters), therefore they are not to be considered a valid _ (U+005F), - (U+002D), or + (U+002B) Unicode equivalents.
- A potential IKI variable name starts on word (or _, -, +) characters.
- White space and non-word (and non _, -, +) character punctuations may not exist as part of the variable name.
- The only Unicode dash-like characters allowed as a "dash" are those intended to connect, such as the Unicode hyphens (U+2010 and U+2011).
+ The wrapping characters characters are not part of the Vocabulary name and instead only provide the syntax used to help identify a valid Variable.
+ The wrapping characters characters are part of the Variable.
+ The wrapping characters do not support escaping.
+ Both wrapping characters must be specified or neither.
- Any valid IKI data may be escaped to make it treated as non-IKI data by prepending a backslash " before the colon code::" that is before the opening quote (single or double).
+ The Content refers to the value of the Variable.
+ The Content is wrapped one of the following quote characters: single quote ' (U+0027), double quote " (U+0022), or grave ` (U+0060).
+ The Content must escape any quotes that match the open and close quote used for the Variable by utilizing a backslash \ (U+005C).
+ If a matching closing quote is not found until the end of the data (or file), then this unclosed Variable is considered invalid.
+ The handling of this erroneous case is left to the implementation.
- Unicode punctuation connector characters are supported just like _, except when they connect outside the current line (such as U+FE33︳).
- Unicode invisible punctuations (such as invisible plus: U+2064) are not considered a punctuations in this standard (because they a zero-width characters), therefore they are not to be considered a valid _, -, or + Unicode equivalents.
+ The backslashes used for escaping quotes use \ (U+005C).
+ Unless otherwise specified, these backslash escapes are performed only when required and not unilaterally.
+ One backslash escapes the valid quote, resulting in the quote being part of the Content.
+ Two backslashes escape the backslash, resulting in the backslash (but not the quote) being part of the Content.
+ An odd number of backslashes before a valid quote results in the backslashes and the quote being escaped.
+ An even number of backslashes before a valid quote results in the backslashes but not the quote being escaped.
+
+
+ The IKI format will use iki-0000 to represent an IKI with no explicitly defined vocabulary.
+ Whereas iki-0001 and beyond represent a specific IKI vocabulary.
Key:
-
\o = any printable word character, including _, -, + (and Unicode equivalents).
-
\c = any character, including white space and non-printing, and any delimited quote (used as the opening quote) or a any quote (undelimited) not used as the opening quote.
\e = an optional escape sequence of any number of backslashes, such as \.
-
* = zero or more occurrences.
-
~ = one or more occurrences, or zero if at start of file.
+
\o = any printable word character, including _ (U+005F), - (U+002D), + (U+002B) (and Unicode equivalents).
+
\c = any character, including white space and non-printing, and any escaped quote (used as the opening quote) or a any quote (unescaped) not used as the opening quote.
+
\q = either a single quote ' (U+0027), a double quote " (U+0022), or a grave ` (U+0060).
\e = an optional escape sequence of any number of backslashes, such as \ (U+005C).
+
[ = a single (conditionally optional) open bracket, [ (U+005B).
+
] = a single (conditionally optional) close bracket, ] (U+005D).
+
* = zero or more occurrences.
+
~ = one or more occurrences, or zero if at start of file.
+
+ = one or more occurrences.
+
: = The colon : (U+003A).
Before Structure:
-
\x*\W~\*:*
+
\x*\W~
Structure:
-
-
\o\e:\q\c\q
-
+
+
[\o+]\e:\q\c\q
+
After Structure:
@@ -184,28 +207,58 @@
# fss-000c iki-0000
-This is my sentence, anything can go here but sometimes I want to emphasis:"emphasize some text".
+This is my sentence, anything can go here but sometimes I want to italic:"emphasize some text".
-Other times I want to render a url such as this example url: url:'http://www.example.com/url with space/'.
+Other times I want to render a URL such as this example URL: url:'http://www.example.com/url with space/'.
-There are no comments, except for maybe the FSS header (which would not resolve to any IKI syntax anyway).
+There are no comments, except for maybe the FSS:"Featureless Settings Specification" header (which would not resolve to any IKI syntax anyway).
Quotes may be included, such as: code:"const char *string = \"My \\\"quoted\\\" C string.\";".
-The following emphasis\:"is escaped to not be treated as IKI data".
+The following italic\:"is escaped to not be treated as IKI Variable".
+
+The conditionally optional open and close brackets allow for putting a variable directly next to another word character like: [context]:"bold"this[context]:"bold".
+
+These are examples of escapes: one:"\" escape", two:"\\" escape", three:"\\\" escape", six:"\\\\\\" escape".
+
+These are examples of non-escapes: one:"\' escape", two:"\\' escape", three:"\\\' escape", six:"\\\\\\' escape".
+
+These slashes \ \\ \\\ are not escaped because there is now quote immediately after each of them.
Example Results:
-
-Objects would be:
- 1) emphasis
- 2) url
- 3) code
-
-Contents would be:
- 1.1) emphasize some text
- 2.1) http://www.example.com/url with space/
- 3.1) const char *string = "My \"quoted\" C string.";
+
+Objects (also called vocabulary or variable name) would be:
+ 1.1) italic
+ 2.1) URL
+ 3.1) FSS
+ 4.1) code
+ 5.1) context
+ 6.1) context
+ 7.1) one
+ 8.1) two
+ 9.1) three
+ 10.1) six
+ 11.1) one
+ 12.1) two
+ 13.1) three
+ 14.1) six
+
+Contents (also called variable value) would be:
+ 1.1) emphasize some text
+ 2.1) http://www.example.com/url with space/
+ 3.1) Featureless Settings Specification
+ 4.1) const char *string = "My \"quoted\" C string.";
+ 5.1) bold
+ 6.1) bold
+ 7.1) " escape
+ 8.1) \
+ 9.1) \" escape
+ 10.1) \\\
+ 11.1) \' escape
+ 12.1) \\' escape
+ 13.1) \\\' escape
+ 14.1) \\\\\\' escape