From 45307e71bf3950bab062f616af661c7a5ffe2c5e Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Thu, 29 Aug 2024 21:23:17 -0500 Subject: [PATCH] Update: The FSS-0002 and FSS-0003 standards, modifying the space after Object rules. My previous changes did not alter the behavior of the standard. I spent some time considering this and decied that I should make this change. The new behavior is that white spaces after the last printable character (aka "graph" character) in a valid Object is no longer considered part of the Object. I decided to do this because supporting the space after the Object but not the space before the Object is awkward and also makes Object name matching more difficult. One of the pillars of this project is "human first". Doing this change makes it easier for a human to use by relaxing the exactness of a match when it comes to white spaces before or after a valid Object. The specifications specifically include optionally supporting untrimmed Objects that include the white space before or after the Object to help accommodate the previous behavior. I do not want to add quote support in the Object names here to keep it simple. This new behavior seems to be a good compromise. --- specifications/fss-0002.txt | 10 ++++------ specifications/fss-0003.txt | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/specifications/fss-0002.txt b/specifications/fss-0002.txt index 08dc45c..aa2ab9d 100644 --- a/specifications/fss-0002.txt +++ b/specifications/fss-0002.txt @@ -1,7 +1,7 @@ # fss-0002 iki-0000 # # license open-standard-license-1.0-or-later -# version 2024/08/29 +# 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 '"' '"' @@ -13,10 +13,9 @@ 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 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. - White space to the right of the last printable character before the colon character:":" (unicode:"U+003A") is considered part of the Object. - Implementations of the standard may choose to ignore the white space to the right of the last printable character of an Object by treating it as a trimmed Object (which is not the full Object). - Implementations of the standard may choose to include the white space to the left of the first printable character of an Object but this is not the true Object (useful for reproduction of original data). + 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. Any Content that could be interpreted as a valid Object must have the colon delimited. @@ -29,7 +28,6 @@ Featureless Settings Specification: 0002 - Basic List: 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. @@ -38,7 +36,7 @@ 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:"" diff --git a/specifications/fss-0003.txt b/specifications/fss-0003.txt index 1f1f508..66d7bce 100644 --- a/specifications/fss-0003.txt +++ b/specifications/fss-0003.txt @@ -1,7 +1,7 @@ # fss-0002 iki-0000 # # license open-standard-license-1.0-or-later -# version 2024/08/29 +# 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 '"' '"' @@ -13,11 +13,10 @@ 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 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. - White space to the right of the last printable character before the open-brace character:"{" (unicode:"U+007B") is considered part of the Object. - Implementations of the standard may choose to ignore the white space to the right of the last printable character of an Object by treating it as a trimmed Object (which is not the full Object). - Implementations of the standard may choose to include the white space to the left of the first printable character of an Object but this is not the true Object (useful for reproduction of original data). + 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"). Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content. @@ -37,7 +36,6 @@ Featureless Settings Specification: 0003 - Extended List: 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. @@ -46,7 +44,7 @@ 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:"" -- 1.8.3.1