From dea6201aea3a8e89299f2e182f7620cbc5434ed1 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Wed, 27 Jul 2022 19:36:31 -0500 Subject: [PATCH] Update: Improve specification files. Expand the vocabulary to include more words such as "character". This allows for more granular control over substitution. This is a must to easily convert to both plain text and HTML from the same source file. --- specifications/fss-0000.txt | 4 ++-- specifications/fss-0001.txt | 4 ++-- specifications/fss-0002.txt | 10 +++++----- specifications/fss-0003.txt | 14 +++++++------- specifications/fss-0004.txt | 8 ++++---- specifications/fss-0005.txt | 8 ++++---- specifications/fss-0006.txt | 8 ++++---- specifications/fss-0007.txt | 8 ++++---- specifications/fss-0008.txt | 6 +++--- specifications/fss-0009.txt | 6 +++--- specifications/fss-000a.txt | 6 +++--- specifications/fss-000b.txt | 6 +++--- specifications/fss-000c.txt | 4 ++-- specifications/fss-000d.txt | 18 +++++++++--------- specifications/fss-000e.txt | 10 +++++----- specifications/fss-000f.txt | 12 ++++++------ specifications/fss.txt | 42 +++++++++++++++++++++--------------------- specifications/iki-0000.txt | 4 ++-- specifications/iki-0001.txt | 4 ++-- specifications/iki-0002.txt | 4 ++-- 20 files changed, 93 insertions(+), 93 deletions(-) diff --git a/specifications/fss-0000.txt b/specifications/fss-0000.txt index 24dc7c1..9dbb6c6 100644 --- a/specifications/fss-0000.txt +++ b/specifications/fss-0000.txt @@ -3,10 +3,10 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-0000.txt) can be more easily read using the following iki_read commands: -# iki_read fss-0000.txt -w +# iki_read fss-0000.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0000 - Basic" section of this file, use this command sequence: -# fss_basic_list_read fss-0000.txt -cn "Featureless Settings Specification: 0000 - Basic" | iki_read -w +# fss_basic_list_read fss-0000.txt -cn "Featureless Settings Specification: 0000 - Basic" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 0000 - Basic: diff --git a/specifications/fss-0001.txt b/specifications/fss-0001.txt index 20d139f..a9327c4 100644 --- a/specifications/fss-0001.txt +++ b/specifications/fss-0001.txt @@ -3,10 +3,10 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-0001.txt) can be more easily read using the following iki_read commands: -# iki_read fss-0001.txt -w +# iki_read fss-0001.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0001 - Extended" section of this file, use this command sequence: -# fss_basic_list_read fss-0001.txt -cn "Featureless Settings Specification: 0001 - Extended" | iki_read -w +# fss_basic_list_read fss-0001.txt -cn "Featureless Settings Specification: 0001 - Extended" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 0001 - Extended: diff --git a/specifications/fss-0002.txt b/specifications/fss-0002.txt index 4f6c543..e030bd6 100644 --- a/specifications/fss-0002.txt +++ b/specifications/fss-0002.txt @@ -3,15 +3,15 @@ # license: open-standard-license-1.0 # # 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 -w +# iki_read fss-0002.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0002 - Basic List" section of this file, use this command sequence: -# fss_basic_list_read fss-0002.txt -cn "Featureless Settings Specification: 0002 - Basic List" | iki_read -w +# fss_basic_list_read fss-0002.txt -cn "Featureless Settings Specification: 0002 - Basic List" | iki_read +Q -w -WW character '"' '"' code '"' '"' # 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. - A colon code:":" (code:"U+003A") followed by any white space until a newline terminates a valid Object. + A colon character:":" (unicode:"U+003A") followed by any white space until a newline terminates a valid Object. Non-white space printable characters may not follow the colon of a valid 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. @@ -24,8 +24,8 @@ Featureless Settings Specification: 0002 - Basic List: Key\: code:"\s" = White space, except newline. - code:"\o" = Any printable character, except unescaped code:":" (code:"U+003A"). - code:"\l" = Any printable character or white space, except unescaped code:":" (code:"U+003A"). + 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 newline, that not interpretable as an Object. code:"\n" = Newline. code:"*" = Zero or more occurrences. diff --git a/specifications/fss-0003.txt b/specifications/fss-0003.txt index 59fd8de..0eb15fb 100644 --- a/specifications/fss-0003.txt +++ b/specifications/fss-0003.txt @@ -3,19 +3,19 @@ # license: open-standard-license-1.0 # # 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 -w +# iki_read fss-0003.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0003 - Extended List" section of this file, use this command sequence: -# fss_basic_list_read fss-0003.txt -cn "Featureless Settings Specification: 0003 - Extended List" | iki_read -w +# fss_basic_list_read fss-0003.txt -cn "Featureless Settings Specification: 0003 - Extended List" | iki_read +Q -w -WW character '"' '"' code '"' '"' # 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. - An open-brace code:"{" (code:"U+007B") followed by any white space until a newline terminates a possible valid Object. - An Object is not considered fully valid until a valid close-brace code:"}" (code:"U+007D") is found, designating the end of the Content. + An open-brace character:"{" (unicode:"U+007B") followed by any white space until a newline terminates a possible valid 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 of a valid 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 code:"}". + 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:"}". 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 but a terminating newline must be present to designate a valid end of Content. @@ -32,8 +32,8 @@ Featureless Settings Specification: 0003 - Extended List: Key\: code:"\s" = White space, except newline. - code:"\o" = Any printable character, except unescaped code:"{" (code:"U+007B"). - code:"\l" = Any printable character or white space, except unescaped code:"}" (code:"U+007D"). + 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 newline, that is not interpretable as an Object. code:"\n" = Newline. code:"*" = Zero or more occurrences. diff --git a/specifications/fss-0004.txt b/specifications/fss-0004.txt index 72009a4..fa8adf6 100644 --- a/specifications/fss-0004.txt +++ b/specifications/fss-0004.txt @@ -3,16 +3,16 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-0004.txt) can be more easily read using the following iki_read commands: -# iki_read fss-0004.txt -w +# iki_read fss-0004.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0004 - Very Basic List" section of this file, use this command sequence: -# fss_basic_list_read fss-0004.txt -cn "Featureless Settings Specification: 0004 - Very Basic List" | iki_read -w +# fss_basic_list_read fss-0004.txt -cn "Featureless Settings Specification: 0004 - Very Basic List" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 0004 - Very Basic List: - This is a code:"fss-0002 (Basic List)" whose Content is then processed as code:"fss-0000 (Basic)". + This is a code:"FSS-0002 (Basic List)" whose Content is then processed as code:"FSS-0000 (Basic)". - All code:"fss-0002 (Basic List)" escapes are applied before any code:"fss-0000 (Basic)" is identified. + All code:"FSS-0002 (Basic List)" escapes are applied before any code:"FSS-0000 (Basic)" is identified. See the file:"fss-0000.txt" and file:"fss-0002.txt" specification files for details on the syntax rules. diff --git a/specifications/fss-0005.txt b/specifications/fss-0005.txt index 4ec0062..dce441d 100644 --- a/specifications/fss-0005.txt +++ b/specifications/fss-0005.txt @@ -3,16 +3,16 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-0005.txt) can be more easily read using the following iki_read commands: -# iki_read fss-0005.txt -w +# iki_read fss-0005.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0005 - Somewhat Basic List" section of this file, use this command sequence: -# fss_basic_list_read fss-0005.txt -cn "Featureless Settings Specification: 0005 - Somewhat Basic List" | iki_read -w +# fss_basic_list_read fss-0005.txt -cn "Featureless Settings Specification: 0005 - Somewhat Basic List" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 0005 - Somewhat Basic List: - This is a code"fss-0002 (Basic List)" whose Content is then processed as code:"fss-0001 (Extended)". + This is a code"fss-0002 (Basic List)" whose Content is then processed as code:"FSS-0001 (Extended)". - All code:"fss-0002 (Basic List)" escapes are applied before any code:"fss-0001 (Extended)" is identified. + All code:"FSS-0002 (Basic List)" escapes are applied before any code:"FSS-0001 (Extended)" is identified. See the file:"fss-0001.txt" and file:"fss-0002.txt" specification files for details on the syntax rules. diff --git a/specifications/fss-0006.txt b/specifications/fss-0006.txt index 351b1d2..d3ed403 100644 --- a/specifications/fss-0006.txt +++ b/specifications/fss-0006.txt @@ -3,16 +3,16 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-0006.txt) can be more easily read using the following iki_read commands: -# iki_read fss-0006.txt -w +# iki_read fss-0006.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0006 - Somewhat Extended List" section of this file, use this command sequence: -# fss_basic_list_read fss-0006.txt -cn "Featureless Settings Specification: 0006 - Somewhat Extended List" | iki_read -w +# fss_basic_list_read fss-0006.txt -cn "Featureless Settings Specification: 0006 - Somewhat Extended List" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 0006 - Somewhat Extended List: - This is a code:"fss-0003 (Extended List)" whose Content is then processed as code:"fss-0000 (Basic)". + This is a code:"FSS-0003 (Extended List)" whose Content is then processed as code:"FSS-0000 (Basic)". - All code:"fss-0003 (Extended List)" escapes are applied before any code:"fss-0000 (Basic)" is identified. + All code:"FSS-0003 (Extended List)" escapes are applied before any code:"FSS-0000 (Basic)" is identified. See the file:"fss-0000.txt" and file:"fss-0003.txt" specification files for details on the syntax rules. diff --git a/specifications/fss-0007.txt b/specifications/fss-0007.txt index 51f2e46..93066f9 100644 --- a/specifications/fss-0007.txt +++ b/specifications/fss-0007.txt @@ -3,16 +3,16 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-0007.txt) can be more easily read using the following iki_read commands: -# iki_read fss-0007.txt -w +# iki_read fss-0007.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0007 - Very Extended List" section of this file, use this command sequence: -# fss_basic_list_read fss-0007.txt -cn "Featureless Settings Specification: 0007 - Very Extended List" | iki_read -w +# fss_basic_list_read fss-0007.txt -cn "Featureless Settings Specification: 0007 - Very Extended List" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 0007 - Very Extended List: - This is a code:"fss-0003 (Extended List)" whose Content is then processed as code:"fss-0001 (Extended)". + This is a code:"FSS-0003 (Extended List)" whose Content is then processed as code:"FSS-0001 (Extended)". - All code:"fss-0003 (Extended List)" escapes are applied before any code:"fss-0001 (Extended)" is identified. + All code:"FSS-0003 (Extended List)" escapes are applied before any code:"FSS-0001 (Extended)" is identified. See the file:"fss-0001.txt" and file:"fss-0003.txt" specification files for details on the syntax rules. diff --git a/specifications/fss-0008.txt b/specifications/fss-0008.txt index 477fc10..a886973 100644 --- a/specifications/fss-0008.txt +++ b/specifications/fss-0008.txt @@ -3,14 +3,14 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-0008.txt) can be more easily read using the following iki_read commands: -# iki_read fss-0008.txt -w +# iki_read fss-0008.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0008 - Embedded List" section of this file, use this command sequence: -# fss_basic_list_read fss-0008.txt -cn "Featureless Settings Specification: 0008 - Embedded List" | iki_read -w +# fss_basic_list_read fss-0008.txt -cn "Featureless Settings Specification: 0008 - Embedded List" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 0008 - Embedded List: - This is a code:"fss-0003 (Extended List)" whose Content is then recursively processed as code:"fss-0003 (Extended List)". + This is a code:"FSS-0003 (Extended List)" whose Content is then recursively processed as code:"FSS-0003 (Extended List)". See the file:"fss-0003.txt" specification file for details on the syntax rules. diff --git a/specifications/fss-0009.txt b/specifications/fss-0009.txt index 52e2732..8c4a0fb 100644 --- a/specifications/fss-0009.txt +++ b/specifications/fss-0009.txt @@ -3,14 +3,14 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-0009.txt) can be more easily read using the following iki_read commands: -# iki_read fss-0009.txt -w +# iki_read fss-0009.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 0009 - Reverse Mapping" section of this file, use this command sequence: -# fss_basic_list_read fss-0009.txt -cn "Featureless Settings Specification: 0009 - Reverse Mapping" | iki_read -w +# fss_basic_list_read fss-0009.txt -cn "Featureless Settings Specification: 0009 - Reverse Mapping" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 0009 - Reverse Mapping: - This is based off of code:"fss-0000 (Basic)", except the Object is at the end of the line. + This is based off of code:"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. White space separates an Object from the Content. diff --git a/specifications/fss-000a.txt b/specifications/fss-000a.txt index 75b5d79..7472d38 100644 --- a/specifications/fss-000a.txt +++ b/specifications/fss-000a.txt @@ -3,14 +3,14 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-000a.txt) can be more easily read using the following iki_read commands: -# iki_read fss-000a.txt -w +# iki_read fss-000a.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 000A - Extended Reverse Mapping" section of this file, use this command sequence: -# fss_basic_list_read fss-000a.txt -cn "Featureless Settings Specification: 000A - Extended Reverse Mapping" | iki_read -w +# fss_basic_list_read fss-000a.txt -cn "Featureless Settings Specification: 000A - Extended Reverse Mapping" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 000A - Extended Reverse Mapping: - This is based off of code:"fss-0001 (Extended)", except the Object is at the end of the line. + This is based off of code:"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. White space separates an Object from the Content. diff --git a/specifications/fss-000b.txt b/specifications/fss-000b.txt index 512bc10..28dced2 100644 --- a/specifications/fss-000b.txt +++ b/specifications/fss-000b.txt @@ -3,14 +3,14 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-000b.txt) can be more easily read using the following iki_read commands: -# iki_read fss-000b.txt -w +# iki_read fss-000b.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 000B - Simple List" section of this file, use this command sequence: -# fss_basic_list_read fss-000b.txt -cn "Featureless Settings Specification: 000B - Simple List" | iki_read -w +# fss_basic_list_read fss-000b.txt -cn "Featureless Settings Specification: 000B - Simple List" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 000B - Simple List: - This is similar to code:"fss-0008 (Embedded List)", except that it is an code:"fss-0003 (Extended List)" with a (non-recursive) code:"fss-0002 (Basic List)" inside the Content. + This is similar to code:"FSS-0008 (Embedded List)", except that it is an code:"FSS-0003 (Extended List)" with a (non-recursive) code:"FSS-0002 (Basic List)" inside the Content. See the file:"fss-0002.txt" and file:"fss-0003.txt" specification files for details on the syntax rules. diff --git a/specifications/fss-000c.txt b/specifications/fss-000c.txt index 74a36ec..3ee5013 100644 --- a/specifications/fss-000c.txt +++ b/specifications/fss-000c.txt @@ -3,10 +3,10 @@ # license: open-standard-license-1.0 # # 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 -w -r abbreviation-FSS FSS +# iki_read fss-000c.txt +Q -w -r abbreviation-FSS FSS -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 000C - IKI Text" section of this file, use this command sequence: -# fss_basic_list_read fss-000c.txt -cn "Featureless Settings Specification: 000C - IKI Text" | iki_read -w -r abbreviation-FSS FSS +# fss_basic_list_read fss-000c.txt -cn "Featureless Settings Specification: 000C - IKI Text" | iki_read +Q -w -r abbreviation-FSS FSS -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 000C - IKI Text: diff --git a/specifications/fss-000d.txt b/specifications/fss-000d.txt index 4871f40..3609dec 100644 --- a/specifications/fss-000d.txt +++ b/specifications/fss-000d.txt @@ -3,24 +3,24 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-000d.txt) can be more easily read using the following iki_read commands: -# iki_read fss-000d.txt -w -r abbreviation-FSS FSS +# iki_read fss-000d.txt +Q -w -r abbreviation-FSS FSS -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 000D - Basic Rule" section of this file, use this command sequence: -# fss_basic_list_read fss-000d.txt -cn "Featureless Settings Specification: 000D - Basic Rule" | iki_read -w -r abbreviation-FSS FSS +# fss_basic_list_read fss-000d.txt -cn "Featureless Settings Specification: 000D - Basic Rule" | iki_read +Q -w -r abbreviation-FSS FSS -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 000D - Basic Rule: - This is a special case that follows code:"fss-0002 (Basic List)", and different abbreviation-FSS:"Featureless Settings Specifications" formats inside this code:"fss-0002 (Basic List)". - This code:"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 code:"FSS-0002 (Basic List)", and different abbreviation-FSS:"Featureless Settings Specifications" formats inside this code:"FSS-0002 (Basic List)". + This code:"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 abbreviation-FSS:"Featureless Settings Specifications" formats: code:"fss-0000 (Basic)", code:"fss-0001 (Extended)", and code:"fss-0003 (Extended List)". + The Inner Content may be any of the following abbreviation-FSS:"Featureless Settings Specifications" formats: code:"FSS-0000 (Basic)", code:"FSS-0001 (Extended)", and code:"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 code:"fss-0003 (Extended List)" Object, then check to see if it is an code:"fss-0000 (Basic)" or code:"fss-0001 (Extended)" Object. + If the Inner Content Object is not a valid code:"FSS-0003 (Extended List)" Object, then check to see if it is an code:"FSS-0000 (Basic)" or code:"FSS-0001 (Extended)" Object. - The code:"fss-0000 (Basic)" and code:"fss-0001 (Extended)" Objects have the same format for Object names but the code:"fss-0003 (Extended List)" Object is slightly different. - Anything that would match an code:"fss-0003 (Extended List)" Object must therefore be an code:"fss-0003 (Extended List)" Object. + The code:"FSS-0000 (Basic)" and code:"FSS-0001 (Extended)" Objects have the same format for Object names but the code:"FSS-0003 (Extended List)" Object is slightly different. + Anything that would match an code:"FSS-0003 (Extended List)" Object must therefore be an code:"FSS-0003 (Extended List)" Object. - This supports the use of code:"iki-0000 (Unrestricted)" but only within the Content of the outermost code:"fss-0002 (Basic List)". + This supports the use of code:"iki-0000 (Unrestricted)" but only within the Content of the outermost code:"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 code:"iki-0001 (Basic)". diff --git a/specifications/fss-000e.txt b/specifications/fss-000e.txt index b90a832..2fb76c2 100644 --- a/specifications/fss-000e.txt +++ b/specifications/fss-000e.txt @@ -3,19 +3,19 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-000e.txt) can be more easily read using the following iki_read commands: -# iki_read fss-000e.txt -w -rr abbreviation-FLL FLL abbreviation-EOF EOF +# iki_read fss-000e.txt +Q -w -rr abbreviation-FLL FLL abbreviation-EOF EOF -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 000e - Payload" section of this file, use this command sequence: -# fss_basic_list_read fss-000e.txt -cn "Featureless Settings Specification: 000e - Payload" | iki_read -w -r abbreviation-FLL FLL abbreviation-EOF EOF +# fss_basic_list_read fss-000e.txt -cn "Featureless Settings Specification: 000e - Payload" | iki_read +Q -w -r abbreviation-FLL FLL abbreviation-EOF EOF -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 000e - Payload: - This is a code:"fss-0002 (Basic List)" with two required objects\: + This is a code:"FSS-0002 (Basic List)" with two required objects\: 1) emphasis:"header". 2) emphasis:"payload". The emphasis:"header"\: - - The emphasis:"header"'s Content is of type code:"fss-0001 (Extended)". + - The emphasis:"header"'s Content is of type code:"FSS-0001 (Extended)". - The emphasis:"header" is recommended to have the Objects emphasis:"length", emphasis:"status", emphasis:"part", and emphasis:"total". - The recommended emphasis:"length" represents the size of the emphasis:"payload". - The recommended emphasis:"part" represents a single part of a set of packets for when the data being transmitted is split across multiple payloads. @@ -29,7 +29,7 @@ Featureless Settings Specification: 000e - Payload: - The emphasis:"payload" is recommended to have its size designated in some manner in the emphasis:"header" (such as with the recommended emphasis:"length"). - The emphasis:"payload" is terminated by the abbreviation-EOF:"End of File" character or by the recommended emphasis:"length" header. - The emphasis:"payload" may be empty (length may be zero), but the list Object emphasis:"payload" must still exist. - - Nothing in the emphasis:"payload" may be considered a valid list Object by the outer code:"fss-0002 (Basic List)" and therefore escaping is unnecessary (No further processing by the outer code:"fss-0002 (Basic List)" is allowed at this point). + - Nothing in the emphasis:"payload" may be considered a valid list Object by the outer code:"FSS-0002 (Basic List)" and therefore escaping is unnecessary (No further processing by the outer code:"FSS-0002 (Basic List)" is allowed at this point). - Comments in the emphasis:"payload" are not considered comments and are instead considered part of the payload, as-is. - Essentially, the emphasis:"payload" should be treated as binary data embedded in a text file. diff --git a/specifications/fss-000f.txt b/specifications/fss-000f.txt index 550bfe9..bf486d5 100644 --- a/specifications/fss-000f.txt +++ b/specifications/fss-000f.txt @@ -3,14 +3,14 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss-000f.txt) can be more easily read using the following iki_read commands: -# iki_read fss-000f.txt -w +# iki_read fss-000f.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "Featureless Settings Specification: 000f - Simple Packet" section of this file, use this command sequence: -# fss_basic_list_read fss-000f.txt -cn "Featureless Settings Specification: 000f - Simple Packet" | iki_read -w +# fss_basic_list_read fss-000f.txt -cn "Featureless Settings Specification: 000f - Simple Packet" | iki_read +Q -w -WW character '"' '"' code '"' '"' # Featureless Settings Specification: 000f - Simple Packet: - This is a network packet format that contains code:"fss-000e (Payload)" within it. + This is a network packet format that contains code:"FSS-000e (Payload)" within it. The Simple Packet structure is described in blocks, of which are structured in bytes. @@ -42,9 +42,9 @@ Featureless Settings Specification: 000f - Simple 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 and so the maximum available size is (2^32)-6. - The Payload Block is not defined by this standard of that that it exists and should be in code:"fss-000e (Payload)" format. - The code:"fss-000e (Payload)" may be represented in either string format or binary format. - The code:"fss-000e (Payload)" may contain multiple emphasis:"header"(s) but may only contain a single emphasis:"payload". + The Payload Block is not defined by this standard of that that it exists and should be in code:"FSS-000e (Payload)" format. + The code:"FSS-000e (Payload)" may be represented in either string format or binary format. + The code:"FSS-000e (Payload)" may contain multiple emphasis:"header"(s) but may only contain a single emphasis:"payload". With this in mind, it is recommended that only a single emphasis:"header" be supported in the Payload Block. See the file:"fss-000e.txt" specification file for details on the syntax rules for the Payload Block. diff --git a/specifications/fss.txt b/specifications/fss.txt index 589f05b..14b00c7 100644 --- a/specifications/fss.txt +++ b/specifications/fss.txt @@ -3,11 +3,11 @@ # license: open-standard-license-1.0 # # This file (assumed to be named fss.txt) can be more easily read using the following iki_read commands: -# iki_read fss.txt -w -rrrrrrrr abbreviation-FSS FSS abbreviation-KISS KISS anti-abbreviation-KISS anti-KISS abbreviation-XML XML abbreviation-UTF-8 UTF-8 abbreviation-ASCII ASCII abbreviation-BOM BOM abbreviation-URL URL +# iki_read fss.txt +Q -w -rrrrrrrr abbreviation-FSS FSS abbreviation-KISS KISS anti-abbreviation-KISS anti-KISS abbreviation-XML XML abbreviation-UTF-8 UTF-8 abbreviation-ASCII ASCII abbreviation-BOM BOM abbreviation-URL URL -WW character '"' '"' code '"' '"' # # Individual sections in this file may be parsed using fss_basic_list_read command and then passed to the iki_read command. # To read the "Featureless Settings Specifications" section of this file, use this command sequence: -# fss_basic_list_read fss.txt -cn "Featureless Settings Specifications" | iki_read -w -rrrrrrrr abbreviation-FSS FSS abbreviation-KISS KISS anti-abbreviation-KISS anti-KISS abbreviation-XML XML abbreviation-UTF8 UTF8 abbreviation-ASCII ASCII abbreviation-BOM BOM abbreviation-URL URL +# fss_basic_list_read fss.txt -cn "Featureless Settings Specifications" | iki_read +Q -w -rrrrrrrr abbreviation-FSS FSS abbreviation-KISS KISS anti-abbreviation-KISS anti-KISS abbreviation-XML XML abbreviation-UTF8 UTF8 abbreviation-ASCII ASCII abbreviation-BOM BOM abbreviation-URL URL -WW character '"' '"' code '"' '"' # Featureless Settings Specifications: @@ -17,9 +17,9 @@ Featureless Settings Specifications: - Will consist of numerous different kinds of specification files, depending on the type of information stored. - As with the practice of code:"#!/bin/bash", the setting files emphasis:"should" have the following: code:"# fss-????" format, such as "# fss-0001". - Multiple sub-standards may be appended to the abbreviation-FSS:"Featureless Settings Specifications" header, using the same format structure, such as supporting IKI: "# fss-0000 iki-0000" or HTML5: "# fss-0000 html-0005". - - With the code:"?" representing the (hexadecimal/base-16) number that represents the particular specification structure. + - With the character:"?" representing the (hexadecimal/base-16) number that represents the particular specification structure. - All settings specifications emphasis:"should" avoid any form of noise, relative to the data being stored. - - abbreviation-XML="Extensible Markup Language" would be considered anti-abbreviation-KISS:"Keep It Simple Stupid" due to the extreme level of noise generated by the abbreviation-XML="Extensible Markup Language" language (not easy to read). + - abbreviation-XML:"Extensible Markup Language" would be considered anti-abbreviation-KISS:"Anti Keep It Simple Stupid" due to the extreme level of noise generated by the abbreviation-XML:"Extensible Markup Language" language (not easy to read). - The settings files are setup so that they should (reasonably) produce easy readability on both the console and in a GUI. - The specifications should strive for completeness (see the completeness theorem). @@ -29,20 +29,20 @@ Featureless Settings Specifications: Objects and Contents can include any characters allowed by the specifications. The specification may choose how a given Object or Content are represented and parsed. - For example, in code:"fss-0000 (Basic)", Content is treated as a single item whereas in code:"fss-0001 (Extended)", Content is broken apart in multiple sub-parts. + For example, in code:"FSS-0000 (Basic)", Content is treated as a single item whereas in code:"FSS-0001 (Extended)", Content is broken apart in multiple sub-parts. Contents may be broken up into zero or more discrete sets of Content. Each of these discrete sets of Content are referred to as a column. These columns do not need to be setup in a column structure, the word emphasis:"column" is simply used as a grouping terminology. While a Content refers to the entire set, a column (more specifically, a Content column) refers to the individual discrete sets within the Content. - For example, in code:"fss-000 (Basic)" the entire Content may be further represented as a single column. - For example, in code:"fss-001 (Extended)" the entire Content may be further represented as multiple columns. + For example, in code:"FSS-000 (Basic)" the entire Content may be further represented as a single column. + For example, in code:"FSS-001 (Extended)" the entire Content may be further represented as multiple columns. In all cases, specifications that separate Objects from Contents using white space, the first white space separating the Object and Content must not be considered part of the Object nor part of the Content. All spaces after the first separating white space is generally ignored until the first non white space character is found, unless otherwise specified. - Unless otherwise specified, all specifications are newline sensitive (code:"\n" only). - Newline characters are only code:"\n" and are never anything else (code:"\r" is not considered newline in any manner). + Unless otherwise specified, all specifications are newline sensitive (character:"\n" only). + Newline characters are only character:"\n" and are never anything else (character:"\r" is not considered newline in any manner). These specifications refer to characters that have printable representation as emphasis:"printable". These specifications refer to characters that have no printable representation as emphasis:"non-printable". White spaces characters that are printable, such as tabs and spaces, must be considered the same type for the purposes of parsing. @@ -60,8 +60,8 @@ Featureless Settings Specifications: Unless otherwise specified, white space immediately both before (and after, outside of the terminating quote) an Object is not considered part of the Object. This simplifies identifying the object, use quoted Objects to support white space before/after an object for styling purposes. - Unless otherwise specified, quotes may only be either a single quote code:"'" or a double quote code:'"' and only a backslash code:"\\" may be used as a delimiter. - For example, code:"fss-0000 (Basic)"\: + Unless otherwise specified, quotes may only be either a single quote character:"'" or a double quote character:'"' and only a backslash character:"\\" may be used as a delimiter. + For example, code:"FSS-0000 (Basic)"\: \"Object 1" has content starting at the '1', with an Object named '"Object'. \\"Object 1" has content starting at the '1', with an Object named '\"Object'. "Object 1\" is an unterminated object due to the escaped closing quote. @@ -69,7 +69,7 @@ Featureless Settings Specifications: Unless otherwise specified, character/data delimits are performed only when required and not unilaterally. In the case of Objects, delimits would only apply when that Object could be potentially identified as an Object. - For example, code:"fss-0001 (Extended)" needs quotes to group parts that include spaces, if there is no initial quote, then a quote following the data emphasis:"must not" be delimited. + For example, code:"FSS-0001 (Extended)" needs quotes to group parts that include spaces, if there is no initial quote, then a quote following the data emphasis:"must not" be delimited. Such as these following three lines\: "Object 1" "This is a single quoted Content." \"Additional unquoted Content." Object_2 This is multiple" Contents and the trailing quote does not need to be delimited. @@ -114,29 +114,29 @@ Featureless Settings Specifications: Those encodings must only support the appropriate characters required by a given standard for differentiating Objects, Contents, and delimits. All specifications do assume abbreviation-ASCII:"American Standard Code for Information Interchange" and Unicode support. - Unless otherwise specified, comments are designated by the pound symbol code:"#" but only if only white space is to the left of the pound or the pound code:"#" is at the start of the line. + Unless otherwise specified, comments are designated by the pound symbol character:"#" but only if only white space is to the left of the pound or the pound character:"#" is at the start of the line. There is no support for inline comments. - Unless otherwise specified, the start comment may be delimited by code:"\" in the same manner as Objects and Contents are. - This delimit only applies to the start of a comment (the pound code:"#" character) as there is no terminating character for a comment (other than a newline code:"\n"). + Unless otherwise specified, the start comment may be delimited by character:"\" in the same manner as Objects and Contents are. + This delimit only applies to the start of a comment (the pound character:"#" character) as there is no terminating character for a comment (other than a newline character:"\n"). A line containing a valid comment is in its entirety ignored. - This means that if there is white space before the designation symbol (the pound code:"#" character) then that white space is ignored. + This means that if there is white space before the designation symbol (the pound character:"#" character) then that white space is ignored. Unless otherwise specified, all designation characters emphasis:"must" represent abbreviation-ASCII:"American Standard Code for Information Interchange" codes. - With designation characters being any character code used to designate how to identify an Object or Content (such as a colon code:":" at the end of a basic list). + With designation characters being any character code used to designate how to identify an Object or Content (such as a colon character:":" at the end of a basic list). This keeps the processing and logic simple and safe, for both abbreviation-UTF-8:"Unicode Transformation Format 8-bit" and abbreviation-ASCII:"American Standard Code for Information Interchange". White space used for designation characters emphasis:"must" include support for abbreviation-UTF-8:"Unicode Transformation Format 8-bit" white space characters, unless otherwise specified. However, these white space used as a designation character, must be printing white space that are not combining white space characters. - Any visible/graph character that is considered a white space (such as code:"U+1680" code:" ") is not to be considered a white space, unless otherwise specified. + Any visible/graph character that is considered a white space (such as unicode:"U+1680" character:" ") is not to be considered a white space, unless otherwise specified. When used for syntax matching purposes, zero-width Unicode characters are only to be considered zero-width unless otherwise specified. - For example, the emphasis:"invisible plus" character (code:"U+2064") is not to be considered as a plus. + For example, the emphasis:"invisible plus" character (unicode:"U+2064") is not to be considered as a plus. The abbreviation-UTF-8:"Unicode Transformation Format 8-bit" abbreviation-BOM:"Byte Order Mark" is not allowed as a Byte Order Mark; instead, it must always be treated as the character represented by its code (unless explicitly allowed to represent a abbreviation-BOM:"Byte Order Mark" by a standard). - The only Unicode dash-like characters allowed as a emphasis:"dash" are those intended to connect, such as the Unicode hyphens (code:"U+2010" and code:"U+2011") (unless otherwise specified). + The only Unicode dash-like characters allowed as a emphasis:"dash" are those intended to connect, such as the Unicode hyphens (unicode:"U+2010" and unicode:"U+2011") (unless otherwise specified). In any specification where security is intended, if there exists a Unicode character that matches an abbreviation-ASCII:"American Standard Code for Information Interchange" character, that Unicode character emphasis:"may" be prohibited by that standard in favor of the abbreviation-ASCII:"American Standard Code for Information Interchange" equivalent. - One such example is in the case of a abbreviation-URL:"Uniform Resource Locator", where the name could be used to trick a person (code:"http://this-site.com/" vs code:"http://this‐site.com/"). + One such example is in the case of a abbreviation-URL:"Uniform Resource Locator", where the name could be used to trick a person (url:"http://this-site.com/" vs url:"http://this‐site.com/"). This (potential insecure behavior) is allowed in general because a well written program would be able to detect and communicate the possible misunderstanding and thereby avoid mistakes without imposing any character restrictions. This is a common behavior for security reasons, each character used for any special purposes must be visibly distinct, with white space and non-printing characters as the exception to the words emphasis:"visibly distinct". diff --git a/specifications/iki-0000.txt b/specifications/iki-0000.txt index 9b0d365..1fb5034 100644 --- a/specifications/iki-0000.txt +++ b/specifications/iki-0000.txt @@ -3,10 +3,10 @@ # license: open-standard-license-1.0 # # This file (assumed to be named iki-0000.txt) can be more easily read using the following iki_read commands: -# iki_read iki-0000.txt -w +# iki_read iki-0000.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "IKI Specification: 0000 - Unrestricted" section of this file, use this command sequence: -# fss_basic_list_read iki-0000.txt -cn "IKI Specification: 0000 - Unrestricted" | iki_read -w +# fss_basic_list_read iki-0000.txt -cn "IKI Specification: 0000 - Unrestricted" | iki_read +Q -w -WW character '"' '"' code '"' '"' # IKI Specification: 0000 - Unrestricted: diff --git a/specifications/iki-0001.txt b/specifications/iki-0001.txt index 2ec3f73..3e83a30 100644 --- a/specifications/iki-0001.txt +++ b/specifications/iki-0001.txt @@ -3,10 +3,10 @@ # license: open-standard-license-1.0 # # This file (assumed to be named iki-0001.txt) can be more easily read using the following iki_read commands: -# iki_read iki-0001.txt -w -rrr abbreviation-URI URI abbreviation-URL URL abbreviation-URN URN +# iki_read iki-0001.txt +Q -w -rrr abbreviation-URI URI abbreviation-URL URL abbreviation-URN URN -WW character '"' '"' code '"' '"' # # To read the "IKI Specification: 0001 - Basic" section of this file, use this command sequence: -# fss_basic_list_read iki-0001.txt -cn "IKI Specification: 0001 - Basic" | iki_read -w -rrr abbreviation-URI URI abbreviation-URL URL abbreviation-URN URN +# fss_basic_list_read iki-0001.txt -cn "IKI Specification: 0001 - Basic" | iki_read +Q -w -rrr abbreviation-URI URI abbreviation-URL URL abbreviation-URN URN -WW character '"' '"' code '"' '"' # IKI Specification: 0001 - Basic: diff --git a/specifications/iki-0002.txt b/specifications/iki-0002.txt index 6fd6145..dc158c6 100644 --- a/specifications/iki-0002.txt +++ b/specifications/iki-0002.txt @@ -3,10 +3,10 @@ # license: open-standard-license-1.0 # # This file (assumed to be named iki-0002.txt) can be more easily read using the following iki_read commands: -# iki_read iki-0002.txt -w +# iki_read iki-0002.txt +Q -w -WW character '"' '"' code '"' '"' # # To read the "IKI Specification: 0002 - Simple Script" section of this file, use this command sequence: -# fss_basic_list_read iki-0002.txt -cn "IKI Specification: 0002 - Simple Script" | iki_read -w +# fss_basic_list_read iki-0002.txt -cn "IKI Specification: 0002 - Simple Script" | iki_read +Q -w -WW character '"' '"' code '"' '"' # IKI Specification: 0002 - Simple Script: -- 1.8.3.1