From 039336e996272efbf709a97213d08d1af93a0c31 Mon Sep 17 00:00:00 2001 From: Kevin Day Date: Sat, 30 Jul 2022 17:37:19 -0500 Subject: [PATCH] Update: Specifications and documentation, fixing mistakes and adding IKI support. Fix discovered mistakes. Utilize IKI variables for the fake specifications and documentation just like is done with the FLL specifications. --- level_3/fake/documents/fakefile.txt | 586 ++++++++++++++------------- level_3/fake/documents/settings.txt | 560 ++++++++++++------------- level_3/fake/specifications/defines.txt | 12 +- level_3/fake/specifications/dependencies.txt | 15 +- level_3/fake/specifications/fakefile.txt | 179 ++++---- level_3/fake/specifications/settings.txt | 188 ++++----- specifications/fss-0000.txt | 4 +- specifications/fss-0001.txt | 4 +- specifications/fss-0002.txt | 4 +- specifications/fss-0003.txt | 4 +- specifications/fss-0004.txt | 4 +- specifications/fss-0005.txt | 4 +- specifications/fss-0006.txt | 4 +- specifications/fss-0007.txt | 4 +- specifications/fss-0008.txt | 4 +- specifications/fss-0009.txt | 4 +- specifications/fss-000a.txt | 4 +- specifications/fss-000b.txt | 4 +- specifications/fss-000c.txt | 4 +- specifications/fss-000d.txt | 4 +- specifications/fss-000e.txt | 4 +- specifications/fss-000f.txt | 4 +- specifications/fss.txt | 36 +- specifications/iki-0000.txt | 4 +- specifications/iki-0001.txt | 4 +- specifications/iki-0002.txt | 4 +- specifications/iki.txt | 4 +- 27 files changed, 847 insertions(+), 809 deletions(-) diff --git a/level_3/fake/documents/fakefile.txt b/level_3/fake/documents/fakefile.txt index eb220fb..a44099b 100644 --- a/level_3/fake/documents/fakefile.txt +++ b/level_3/fake/documents/fakefile.txt @@ -2,93 +2,99 @@ # # license: open-standard-license-1.0 # +# This file (assumed to be named fakefile.txt) can be more easily read using the following iki_read commands: +# iki_read fakefile.txt +Q -w -rr abbreviation-ASCII ASCII abbreviation-HTML HTML -WWW character "'" "'" code '"' '"' bold '"' '"' +# +# To read the "Fakefile Documentation" section of this file, use this command sequence: +# fss_basic_list_read fakefile.txt +Q -cn "Fakefile Documentation" | iki_read +Q -w -rr abbreviation-ASCII ASCII abbreviation-HTML HTML -WWW character "'" "'" code '"' '"' bold '"' '"' +# Fakefile Documentation: - This describes intent and purposes of the fakefile file settings. - For specific details on the allowed formatting, see the fakefile.txt under the specifications folder. + This describes intent and purposes of the bold:"fakefile" file settings. + For specific details on the allowed formatting, see the file:"fakefile.txt" under the specifications folder. All files specified are relative to the project root. The reserved Section Names are defined as follows\: - - settings\: - Any configuration specific to this fakefile is stored here. + - code:"settings"\: + Any configuration specific to this bold:"fakefile" is stored here. This includes the declaration of define and parameter IKI variable substitution values. The build settings may also be specified in the Settings Section. The following settings are available (in addition to the build settings)\: - - compiler\: - This represents the name of the compiler program to use, such as "gcc". + - code:"compiler"\: + This represents the name of the compiler program to use, such as code:"gcc". - The programs "gcc" and "clang" are known to work. + The programs code:"gcc" and code:"clang" are known to work. Many of the parameters in the settings file can be changed if using a non-GCC, but there may be certain hard-coded functionality that may need to be changed. - When specified and "load_build" is "true", then this will override the "build_compiler" specified in the loaded build settings. + When specified and code:"load_build" is code:"true", then this will override the code:"build_compiler" specified in the loaded build settings. - - define\: + - code:"define"\: This represents an environment variable to define on run. The environment variable name is case-sensitive. This replaces the value of any existing environment variable with this name. - - environment\: + - code:"environment"\: This represents all environment variables that are exposed when executing sub-programs. - This is not auto-populated for environment variables defined in the "define" setting. + This is not auto-populated for environment variables defined in the code:"define" setting. When defined with no Content, then this means that no environment variables are exposed. When not defined at all, then all environment variables are exposed. - Environment variables may still be exposed if "load_build" is "true" and the build setting file defines any environment variable names. + Environment variables may still be exposed if code:"load_build" is code:"true" and the build setting file defines any environment variable names. - - fail\: - Designates the fail mode when running external programs, such as through the "run" or "shell" operations. + - code:"fail"\: + Designates the fail mode when running external programs, such as through the code:"run" or code:"shell" operations. - There are three options: - - exit: Designates to exit the program on failure, printing an error message. - - warn: Designates to continue on and if in verbose mode then print a warning. - - ignore: Designates to do nothing. + There are three options\: + - code:"exit": Designates to exit the program on failure, printing an error message. + - code:"warn": Designates to continue on and if in verbose mode then print a warning. + - code:"ignore": Designates to do nothing. - The return code for programs can still be retrieved through using the reserved IKI vaiable "return". + The return code for programs can still be retrieved through using the reserved IKI vaiable code:"return". - - indexer\: - This represents the name of the indexer program to use, such as "ar". + - code:"indexer"\: + This represents the name of the indexer program to use, such as code:"ar". An indexer is often called a linker. - Similar to "build_compiler", any linker that supports the "ar" program parameters is effectively supported. + Similar to code:"build_compiler", any linker that supports the code:"ar" program parameters is effectively supported. - When specified and "load_build" is "true", then this will override the "build_indexer" specified in the loaded build settings. + When specified and code:"load_build" is code:"true", then this will override the code:"build_indexer" specified in the loaded build settings. - - indexer_arguments\: - This represents arguments needed to build an archive file from object files, such as "rcs". - These arguments are placed immediately before the object files passed to the "indexer" program. + - code:"indexer_arguments"\: + This represents arguments needed to build an archive file from object files, such as code:"rcs". + These arguments are placed immediately before the object files passed to the code:"indexer" program. - - load_build\: + - code:"load_build"\: This represents whether or not to load the load the build settings file. - The first Content value may be "true" to load the build settings and "false" to not load the build settings file. + The first Content value may be code:"true" to load the build settings and code:"false" to not load the build settings file. - - parameter\: + - code:"parameter"\: This defines an IKI variable name to substitute with the value. This replaces the value of any existing environment variable with this name. The first Content value represents the IKI variable name. All Content values after the first represent the values the matching IKI variable is replaced with. - The parameter variable name "return" is used to store the return result of a "run" or "shell" operation. - Setting this here only sets the default "return" parameter variable value. + The parameter variable name code:"return" is used to store the return result of a code:"run" or code:"shell" operation. + Setting this here only sets the default code:"return" parameter variable value. - - main\: - This is the main entry point when processing the fakefile. + - code:"main"\: + This is the main entry point when processing the bold:"fakefile". This is processed top-down until the end of the list is reached. The following operations are available\: - - and\: - A special type of an "if" operation. - May only be specified following a valid "if", "and", or "or" operation. - This is executed only if the previous "if" operation result is true. + - code:"and"\: + A special type of an code:"if" operation. + May only be specified following a valid code:"if", code:"and", or code:"or" operation. + This is executed only if the previous code:"if" operation result is true. When executed, this performs the test and returns true or false as appropriate. - When not executed, this passes through the result of the previous "if", "and", or "or" operation. + When not executed, this passes through the result of the previous code:"if", code:"and", or code:"or" operation. - - build\: - Run the fake build operation as if "fake build" was run instead of "fake make". + - code:"build"\: + Run the fake build operation as if code:"fake build" was run instead of code:"fake make". Command line arguments are automatically passed to the fake build operation. Accepts an optional Content that is a file name to a build settings file to use instead of the default. @@ -96,103 +102,103 @@ Fakefile Documentation: If the optional file name Content is specified, then it also supports additional modes to use instead of the default mode. - When no additional Content after the "build" is specified, then the default (or program supplied) settings file and modes are used. - When the first Content after the "build" is specified as an empty string, then the default (or program supplied) settings file is used. - When the second Content after the "build" (and there is no third Content), then no modes are used. + When no additional Content after the code:"build" is specified, then the default (or program supplied) settings file and modes are used. + When the first Content after the code:"build" is specified as an empty string, then the default (or program supplied) settings file is used. + When the second Content after the code:"build" (and there is no third Content), then no modes are used. - - break\: + - code:"break"\: Perform an exit from the current make operation. This only exists the current depth. - If the depth is at the top (aka: 0), then this is identical to the "exit" section operation. + If the depth is at the top (aka: 0), then this is identical to the code:"exit" section operation. The second Content may be either 'succeed' or 'fail' to designate on whether or not to exit as success or failure. - When set to "failure" this will trigger any failure (with message), depending on the current fail state. + When set to code:"failure" this will trigger any failure (with message), depending on the current fail state. - - clean\: - Run the fake clean operation as if "fake clean" was run instead of "fake make". + - code:"clean"\: + Run the fake clean operation as if code:"fake clean" was run instead of code:"fake make". Command line arguments are automatically passed to the fake build operation. - - clone\: - Copy all files (and directories), preserving all propeties, into the last content. + - code:"clone"\: + Copy all files (and directories), preserving all properties, into the last content. If there are more than one file (or directory) being copied, then the final path must be a directory. All Content, except last, represents the files to clone. The last Content represents the destination file (or directory) to clone to. - - compile\: - Execute the compiler program, such as "gcc". + - code:"compile"\: + Execute the compiler program, such as code:"gcc". - All Content are passed as arguments to the respective "gcc" program. + All Content are passed as arguments to the respective code:"gcc" program. - - copy\: + - code:"copy"\: Copy all files (and directories) into the last content. If there are more than one file (or directory) being copied, then the final path must be a directory. All Content, except last, represents the files to copy. The last Content represents the destination file (or directory) to copy to. - - define\: + - code:"define"\: This represents an environment variable to define on run. The environment variable name is case-sensitive. This replaces the value of any existing environment variable with this name. - - delete\: + - code:"delete"\: Delete one or more files or directories. All Content must be the file or directory to be deleted. If the path is a directory and is not empty, then this will not delete the directory. - - deletes\: - Identical to "delete", except that when the path is a directory and is not empty, then this will delete the directory. + - code:"deletes"\: + Identical to code:"delete", except that when the path is a directory and is not empty, then this will delete the directory. - - else\: - Performs a programmatic "else" condition. + - code:"else"\: + Performs a programmatic code:"else" condition. Must be specified following a valid if operation (and the operation it affects). This has no Content. An else operation may not follow this. - An if operation may immediately follow to represent an "else if" condition. + An if operation may immediately follow to represent an code:"else if" condition. - - exit\: + - code:"exit"\: Perform an exit from the entire make operation. This always exits completely, regardless of the operation depth. The second Content may be either 'success' or 'failure' to designate on whether or not to exit as success or failure. - When set to "failure" this will trigger a failure message. - When set to "failure", the fail state will be forcibly changed to "fail" regardless of the current fail state. + When set to code:"failure" this will trigger a failure message. + When set to code:"failure", the fail state will be forcibly changed to code:"fail" regardless of the current fail state. - - fail\: + - code:"fail"\: Toggle how the to handle an operation failure. The first Content may be one of the following\: - exit: Set failure handler to exit on failure. - warn: Set failure handler to print a warning on failure but continue on. - ignore: Set failure handler to continue on regardless of failure. + code:"exit": Set failure handler to exit on failure. + code:"warn": Set failure handler to print a warning on failure but continue on. + code:"ignore": Set failure handler to continue on regardless of failure. - - group\: + - code:"group"\: Change the group role for a given file. The first Content represents the group to assign. The second Content represents the file to assign the group to. - - groups\: + - code:"groups"\: Identical to group operation, except this will recursively apply the mode to all files within the given file, if that file is a directory file path. - - if\: - Performs a programmatic "if" condition. - May be specified following a valid "else" operation. + - code:"if"\: + Performs a programmatic code:"if" condition. + May be specified following a valid code:"else" operation. The Content represents a set of conditions to perform. - The "if" operation may be used in conjunction with the "and", "or", and the "else" operations. + The code:"if" operation may be used in conjunction with the code:"and", code:"or", and the code:"else" operations. The conditional logic is different from normal logic found in most software programs. There is only one order of operation, a top-down design where the current operation relates to the previous operation. - This is mostly relevant when "if" operation is followed by an "and" or an "or" operation. + This is mostly relevant when code:"if" operation is followed by an code:"and" or an code:"or" operation. Consider the following\: - if parameter xxx + code:"if parameter xxx or parameter yyy and parameter zzz print first @@ -200,12 +206,12 @@ Fakefile Documentation: if parameter www print second else - print third + print third" The resulting logic is as follows\: - 1) If "xxx" is defined, then... - 2) If result from (1) is TRUE or if "yyy" is defined, then... - 3) If result from (2) is TRUE and if "zzz" is defined, then... + 1) If code:"xxx" is defined, then... + 2) If result from (1) is TRUE or if code:"yyy" is defined, then... + 3) If result from (2) is TRUE and if code:"zzz" is defined, then... 4) If result from (3) is FALSE, then... 5) If result from (4) is TRUE, then... 6) If result from (5) is FALSE, then... @@ -213,185 +219,185 @@ Fakefile Documentation: For all conditions that rely on numbers, only whole numbers are (currently) supported. conditions\: - - == "left" "right"\: + - code:"== \"left\" \"right\""\: Compare all parameters to be equal. - Requires 2 or more after the "==". - For example, "if == 'a' 'b' 'c' 'd'" would test: 'a' == 'b' && 'b' == 'c' && 'c' == 'd'. + Requires 2 or more after the code:"==". + For example, code:"if == 'a' 'b' 'c' 'd'" would test: code:"'a' == 'b' && 'b' == 'c' && 'c' == 'd'". This performs only string-based comparisons. - - > "left string" "right string"\: - Compare "left" to "right" for greater than. - Requires 2 or more after the ">". - For example, "if > 0 1 2 3" would test: 0 > 1 && 1 > 2 && 2 > 3. + - code:"> \"left string\" \"right string\""\: + Compare code:"left" to code:"right" for greater than. + Requires 2 or more after the code:">". + For example, code:"if > 0 1 2 3" would test: code:"0 > 1 && 1 > 2 && 2 > 3". This performs only number-based comparisons. - - < "left string" "right string"\: - Compare "left" to "right" for less than. - Requires 2 or more after the ">". - For example, "if < 0 1 2 3" would test: 0 < 1 && 1 < 2 && 2 < 3. + - code:"< \"left string\" \"right string\""\: + Compare code:"left" to code:"right" for less than. + Requires 2 or more after the code:">". + For example, code:"if < 0 1 2 3" would test: code:"0 < 1 && 1 < 2 && 2 < 3". This performs only number-based comparisons. - - >= "left string" "right string"\: - Compare "left" to "right" for greater than or equal to. - Requires 2 or more after the ">=". - For example, "if >= 0 1 2 3" would test: 0 >= 1 && 1 >= 2 && 2 >= 3. + - code:">= \"left string\" \"right string\""\: + Compare code:"left" to code:"right" for greater than or equal to. + Requires 2 or more after the code:">=". + For example, code:"if >= 0 1 2 3" would test: code:"0 >= 1 && 1 >= 2 && 2 >= 3". This performs only number-based comparisons. - - <= "left string" "right string"\: - Compare "left" to "right" for less than or equal to. - Requires 2 or more after the ">=". - For example, "if <= 0 1 2 3" would test: 0 <= 1 && 1 <= 2 && 2 <= 3. + - code:"<= \"left string\" \"right string\""\: + Compare code:"left" to code:"right" for less than or equal to. + Requires 2 or more after the code:">=". + For example, code:"if <= 0 1 2 3" would test: code:"0 <= 1 && 1 <= 2 && 2 <= 3". This performs only number-based comparisons. - - <> "left" "right"\: + - code:"<> \"left\" \"right\""\: Compare all parameters to be not equal. - Requires 2 or more after the "==". - For example, "if <> 'a' 'b' 'c'" would test: 'a' <> 'b' && 'b' <> 'c' && 'a' <> 'c'. + Requires 2 or more after the code:"==". + For example, code:"if <> 'a' 'b' 'c'" would test: code:"'a' <> 'b' && 'b' <> 'c' && 'a' <> 'c'". This performs only string-based comparisons. - - define "some define name"\: + - code:"define \"some define name\""\: Test if one or more names are defined as an environment variable. - For example, "if define PWD SHELL" would test if both the "PWD" and the "SHELL" variables are defined via the environment variables. + For example, code:"if define PWD SHELL" would test if both the code:"PWD" and the code:"SHELL" variables are defined via the environment variables. - - exist "file path"\: + - code:"exist \"file path\""\: Test if file exists. - For example, "if exist "a.txt" "b.txt" would test if both the file a.txt and b.txt exist. + For example, code:"if exist \"a.txt\" \"b.txt\"" would test if both the file code:"a.txt" and code:"b.txt" exist. - - failure\: + - code:"failure"\: Test if the previous section operation failed. - - group "some mode" "some file"\: - For example, "if group friends a.txt b.txt" would test if both file a.txt and b.txt have a group named "we". + - code:"group \"some mode\" \"some file\""\: + For example, code:"if group friends a.txt b.txt" would test if both file code:"a.txt" and code:"b.txt" have a group named code:"we". - - is block character directory fifo link regular socket for "file path"\: + - code:"is block character directory fifo link regular socket for \"file path\""\: Test if one or more files exist and if each file is any of the given types. - The given types must be followed by "for" to designate where the the file paths begin. - For example, "if is regular directory for "a.txt" "b.txt" would test if both the file a.txt and b.txt exist and are either of type "regular" or type "directory". + The given types must be followed by code:"for" to designate where the the file paths begin. + For example, code:"if is regular directory for \"a.txt\" \"b.txt\"" would test if both the file code:"a.txt" and code:"b.txt" exist and are either of type code:"regular" or type code:"directory". - - mode is/has "some mode" "some file"\: - Test if one or more files has the exact mode ("is") or has at least the given modes ("has"). - For example, "if mode is u+r a.txt b.txt" would test if both file a.txt and b.txt only have owner set to read. - For example, "if mode has u+r a.txt b.txt" would test if both file a.txt and b.txt has owner set to read, and all other modes can be anything. + - code:"mode is/has \"some mode\" \"some file\""\: + Test if one or more files has the exact mode (code:"is") or has at least the given modes (code:"has"). + For example, code:"if mode is u+r a.txt b.txt" would test if both file code:"a.txt" and code:"b.txt" only have owner set to read. + For example, code:"if mode has u+r a.txt b.txt" would test if both file code:"a.txt" and code:"b.txt" has owner set to read, and all other modes can be anything. - - not\: + - code:"not"\: Perform the test expecting a false result rather than a true result. This is to be immediately followed by a valid if condition as well as all appropriate valid content associated with that if condition. Only the following if conditions are supported\: - - define. - - exist. - - group. - - is. - - mode. - - owner. - - parameter. + - code:"define". + - code:"exist". + - code:"group". + - code:"is". + - code:"mode". + - code:"owner". + - code:"parameter". Examples\: - - "if not parameter work" - - "if not exist documentation.txt" + - code:"if not parameter work" + - code:"if not exist documentation.txt" - - owner "some mode" "some file"\: + - code:"owner \"some mode\" \"some file\""\: Test if one or more files has the given owner. - For example, "if owner me a.txt b.txt" would test if both file a.txt and b.txt have an owner named "me". + For example, code:"if owner me a.txt b.txt" would test if both file code:"a.txt" and code:"b.txt" have an owner named code:"me". - - parameter "some parameter name"\: - Test if one or more names are defined as a "parameter" variable. - For example, "if parameter verbose silent" would test if both the "verbose" and the "silent" variables are defined via the "parameter" setting. + - code:"parameter \"some parameter name\""\: + Test if one or more names are defined as a code:"parameter" variable. + For example, code:"if parameter verbose silent" would test if both the code:"verbose" and the code:"silent" variables are defined via the code:"parameter" setting. Reserved parameters that represent program arguments, three forms are available. - For example, the program argument -w/--work has the reserved word "work" and has three forms: - 1) "work". - 2) "work:option". - 3) "work:value". - - In the case of form 1, the "if parameter work" would be true if the argument is passed to the program or a default is provided. - In the case of form 2, the "if parameter work:option" would be true if the argument is passed to the program. - In the case of form 3, the "if parameter work:value" would be true if the argument is passed to the program and has a non-zero value. - - Some reserved parameters, such as the "verbosity", has no "value" and in this case would always return false for "if parameter verbosity:value". - - The following are reserved parameters: - - build: Associated with -b/--build parameter. - - color: Associated with +d/++dark, +l/++light, and +n/++no_color parameters. - - current: The absolute path to the current working directory (present working directory) (Always has a trailing forward slash). - - data: Associated with -D/--data parameter. - - define: Associated with -d/--define parameter. - - fakefile: Associated with -f/--fakefile parameter. - - mode: Associated with -m/--mode parameter and possibly with the build settings default mode "modes_default". - - process: Associated with -p/--process parameter. - - return: Contains the return value of a previous operation that produces a return code. - - settings: Associated with -s/--settings parameter. - - sources: Associated with -S/--sources parameter. - - top: The absolute path to the "top" directory, which is the base project directory (Always has a trailing forward slash). - - verbosity: Associated with +Q/++quiet, +E/++error, +N/++normal, +V/++verbose, and +D/++debug parameters. - - work: Associated with -w/--work parameter. - - - succeed\: + For example, the program argument -w/--work has the reserved word code:"work" and has three forms\: + 1) code:"work". + 2) code:"work:option". + 3) code:"work:value". + + In the case of form 1, the code:"if parameter work" would be true if the argument is passed to the program or a default is provided. + In the case of form 2, the code:"if parameter work:option" would be true if the argument is passed to the program. + In the case of form 3, the code:"if parameter work:value" would be true if the argument is passed to the program and has a non-zero value. + + Some reserved parameters, such as the code:"verbosity", has no code:"value" and in this case would always return false for code:"if parameter verbosity:value". + + The following are reserved parameters\: + - code:"build": Associated with code:"-b/--build" parameter. + - code:"color": Associated with code:"+d/++dark", code:"+l/++light", and code:"+n/++no_color" parameters. + - code:"current": The absolute path to the current working directory (present working directory) (Always has a trailing forward slash). + - code:"data": Associated with code:"-D/--data" parameter. + - code:"define": Associated with code:"-d/--define" parameter. + - code:"fakefile": Associated with code:"-f/--fakefile" parameter. + - code:"mode": Associated with code:"-m/--mode" parameter and possibly with the build settings default mode code:"modes_default". + - code:"process": Associated with code:"-p/--process" parameter. + - code:"return": Contains the return value of a previous operation that produces a return code. + - code:"settings": Associated with code:"-s/--settings" parameter. + - code:"sources": Associated with code:"-S/--sources" parameter. + - code:"top": The absolute path to the code:"top" directory, which is the base project directory (Always has a trailing forward slash). + - code:"verbosity": Associated with code:"+Q/++quiet", code:"+E/++error", code:"+N/++normal", code:"+V/++verbose", and code:"+D/++debug" parameters. + - code:"work": Associated with code:"-w/--work" parameter. + + - code:"succeed"\: Test if the previous section operation succeeded. - - index\: - Execute the linker program, such as "ar". + - code:"index"\: + Execute the linker program, such as code:"ar". - All Content are passed as arguments to the respective "ar" program. + All Content are passed as arguments to the respective code:"ar" program. - - link\: + - code:"link"\: Create a symbolic link from some point to some target. - The first Content, when there are more than 2 arguments, may be either "force" or "strict". + The first Content, when there are more than 2 arguments, may be either code:"force" or code:"strict". The second to last Content represents the target file. The last Content represents the point file. - The "force" Content designates that the point file will be overwritten if the file already exists. - The "strict" Content requires that the target file already exists. + The code:"force" Content designates that the point file will be overwritten if the file already exists. + The code:"strict" Content requires that the target file already exists. - - mode\: + - code:"mode"\: Change the mode permissions for a given file. The first Content represents the mode to assign. The second Content represents the file to assign the mode to. - - modes\: + - code:"modes"\: Identical to mode operation, except this will recursively apply the mode to all files within the given file, if that file is a directory file path. - - move\: + - code:"move"\: Move all files (and directories) into the last content. If there are more than one file (or directory) being copied, then the final path must be a directory. All Content, except last, represents the files to move. The last Content represents the destination file (or directory) to move to. - - operate\: + - code:"operate"\: Begin execution of another Section. The first Content represents the name of the Section Object to execute. - This may be neither the "settings" Section no the "main" Section. + This may be neither the code:"settings" Section no the code:"main" Section. Recursion is prohibited, a Section that is already on the operation stack may not be called again. Once the operation is off the stack, it can then be called again. - - or\: - A special type of an "if" operation. - May only be specified following a valid "if", "and", or "or" operation. - This is executed only if the previous "if" operation result is false. + - code:"or"\: + A special type of an code:"if" operation. + May only be specified following a valid code:"if", code:"and", or code:"or" operation. + This is executed only if the previous code:"if" operation result is false. When executed, this performs the test and returns true or false as appropriate. - When not executed, this passes through the result of the previous "if", "and", or "or" operation. + When not executed, this passes through the result of the previous code:"if", code:"and", or code:"or" operation. - - owner\: + - code:"owner"\: Change the owner role for a given file. The first Content represents the role to assign. The second Content represents the file to assign the role to. - - owners\: + - code:"owners"\: Identical to owner operation, except this will recursively apply the mode to all files within the given file, if that file is a directory file path. - - parameter\: - This represents a variable defined within the scope of the fakefile. + - code:"parameter"\: + This represents a variable defined within the scope of the bold:"fakefile". This is not exported as an environment variable and is therefore not visible to any executed programs or scripts. This replaces the value of any existing parameter variable with this name. The reserved parameter variable names (see IKI vocabulary context section below) may not be changed by this. - - pop\: + - code:"pop"\: Pop a directory path of the path stack, thereby changing to the previous directory on the stack. This is a change directory command similar to a back button in a browser. @@ -400,75 +406,75 @@ Fakefile Documentation: This does not generate an error if the path stack is empty. If the directory popping to no longer exists, then an error occurs. - - print\: + - code:"print"\: Print the content to the output screen. This always prints a newline at the end. All Content is printed, and if no Content is provided, an empty line is printed. - The following escape sequences are supported for printing special characters: - - "\f": Form Feed. - - "\n": New Line. - - "\r": Carriage Return. - - "\t": Tab. - - "\v": Vertical Tab. - - "\\": Backslash Character (may require additional slashes in certain circumstances.) - - "\0": NULL Character. - - "\U+": Unicode Sequence (followed by a valid Unicode sequence with a minimum 4 hexidecimal digits and a maximum of 6 hexidecimal digits). - - "\!": Non-printing separator, allowing for "\U+000A\!5" to be equivalent to "\n5". + The following escape sequences are supported for printing special characters\: + - character:"\f": Form Feed. + - character:"\n": New Line. + - character:"\r": Carriage Return. + - character:"\t": Tab. + - character:"\v": Vertical Tab. + - character:"\\": Backslash Character (may require additional slashes in certain circumstances.) + - character:"\0": NULL Character. + - character:"\U+": Unicode Sequence (followed by a valid Unicode sequence with a minimum 4 hexidecimal digits and a maximum of 6 hexidecimal digits). + - character:"\!": Non-printing separator, allowing for code:"\U+000A\!5" to be equivalent to code:"\n5". If the Unicode is invalid, then nothing is printed for that character (the invalid character is skipped when printing). Example Unicodes\: - - "\U+000A": Prints a new line, equivalent to "\n". - - "\U+2E19": Prints the Unicode feather-like character "⸙". + - code:"\U+000A": Prints a new line, equivalent to character:"\n". + - code:"\U+2E19": Prints the Unicode feather-like character character:"⸙". - Only ASCII alpha-numeric hexidecimal digits are allowed in the Unicode sequence (upper or lower case). + Only abbreviation-ASCII:"American Standard Code for Information Interchange" alpha-numeric hexidecimal digits are allowed in the Unicode sequence (upper or lower case). Invalid or unknown escape sequences are not printed. - - run\: + - code:"run"\: Manually execute a remote program or script. This program must be in the appropriate PATH environment or otherwise automatically detected when calling without a specific path to the program or script. The first Content represents the program or script name. All Content after the first are passed to the program or script when running. - After this executes the return result is made available via the "return" parameter variable name. - Any existing value associated with "return" gets replaced. + After this executes the return result is made available via the code:"return" parameter variable name. + Any existing value associated with code:"return" gets replaced. - - shell\: + - code:"shell"\: Manually execute a remote program or script using a specific path to the program or script. This does not require the program to exist in PATH, but the path to the program or script must be relative to the project path. The first Content represents the program or script name. All Content after the first are passed to the program or script when running. - After this executes the return result is made available via the "return" parameter variable name. - Any existing value associated with "return" gets replaced. + After this executes the return result is made available via the code:"return" parameter variable name. + Any existing value associated with code:"return" gets replaced. - - skeleton\: - Run the fake skeleton operation as if "fake skeleton" was run instead of "fake make". + - code:"skeleton"\: + Run the fake skeleton operation as if code:"fake skeleton" was run instead of code:"fake make". Command line arguments are automatically passed to the fake skeleton operation. - - to\: + - code:"to"\: Change to the directory within the project root path tree, pushing the previous directory onto the path stack. - The previous path is saved onto the path stack and may later be "popped" off. + The previous path is saved onto the path stack and may later be code:"popped" off. The first Content represents the path to change directory into. - - top\: + - code:"top"\: Change to the project root path, clearing the directory path stack. This has no Content. If the project root path no longer exists, then an error occurs. - - touch\: + - code:"touch"\: Manually create a new file or a directory within the project root or update its last changed timestamp if the file already exists. - The first Content must be either "file" or "directory". + The first Content must be either code:"file" or code:"directory". The remaining Content must be a path to the file. - - write\: + - code:"write"\: Write strings to a file within the project root. The Content after the first Content is appended to the file. @@ -477,131 +483,131 @@ Fakefile Documentation: In all cases, if the file does not exist, the file is created. - When only the first Content exists, this acts similar to the "touch" operation. - The major difference between the two is that the "touch" operation does not alter the content within the file. + When only the first Content exists, this acts similar to the code:"touch" operation. + The major difference between the two is that the code:"touch" operation does not alter the content within the file. This does alter the content within the file. A single space is printed between each argument. To preserve spaces, wrap the message in quotes (single or double). - The following escape sequences are supported for printing special characters: - - "\f": Form Feed. - - "\n": New Line. - - "\r": Carriage Return. - - "\t": Tab. - - "\v": Vertical Tab. - - "\\": Backslash Character (may require additional slashes in certain circumstances.) - - "\0": NULL Character. - - "\U+": Unicode Sequence (followed by a valid Unicode sequence with a minimum 4 hexidecimal digits and a maximum of 6 hexidecimal digits). - - "\!": Non-printing separator, allowing for "\U+000A\!5" to be equivalent to "\n5". + The following escape sequences are supported for printing special characters\: + - character:"\f": Form Feed. + - character:"\n": New Line. + - character:"\r": Carriage Return. + - character:"\t": Tab. + - character:"\v": Vertical Tab. + - character:"\\": Backslash Character (may require additional slashes in certain circumstances.) + - character:"\0": NULL Character. + - character:"\U+": Unicode Sequence (followed by a valid Unicode sequence with a minimum 4 hexidecimal digits and a maximum of 6 hexidecimal digits). + - character:"\!": Non-printing separator, allowing for code:"\U+000A\!5" to be equivalent to code:"\n5". If the Unicode is invalid, then nothing is printed for that character (the invalid character is skipped when printing). Example Unicodes\: - - "\U+000A": Prints a new line, equivalent to "\n". - - "\U+2E19": Prints the Unicode feather-like character "⸙". + - code:"\U+000A": Prints a new line, equivalent to character:"\n". + - code:"\U+2E19": Prints the Unicode feather-like character character:"⸙". - Only ASCII alpha-numeric hexidecimal digits are allowed in the Unicode sequence (upper or lower case). + Only abbreviation-ASCII:"American Standard Code for Information Interchange" alpha-numeric hexidecimal digits are allowed in the Unicode sequence (upper or lower case). Invalid or unknown escape sequences are not printed. The IKI vocabulary context is supported and is further clarified as follows\: - - context\: + - code:"context"\: The context Object represents a name representing simple context or complex combination of context. Context should wrap some text such that if some text begins with some context, the context should be reset at the end. - The most basic context is color context, such as: context:"notice" This is emphasized text context:"reset". + The most basic context is color context, such as: code:"context:\"notice\" This is emphasized text context:\"reset\"". The use of IKI in this way is acceptable but it is not perfect. IKI is not designed to be a replacement to markup. - The markup Example vs the IKI context:"notable" Example context:"notable" has obvious differences in the spaces. - The IKI by design cannot be used like this: context:"notable"Examplecontext:"notable" because the word "Example" and the word "context" collide. + The markup code:"Example" vs the IKI code:"context:\"notable\" Example context:\"notable\"" has obvious differences in the spaces. + The IKI by design cannot be used like this: code:"context:\"notable\"Examplecontext:\"notable\"" because the word code:"Example" and the word code:"context" collide. - This context will respect the programs ++light, ++dark, and ++no_color parameters. + This context will respect the programs code:"++light", code:"++dark", and code:"++no_color" parameters. The following context are available\: - - error: Designate as an error, often printed in red. - - important: Designate as important. - - normal: Explicitly designate normal text. - - notable: Designate as notable (similar to "strong" or "bold" in HTML). - - reset: Remove the context. - - standout: Designate to make notable (similar to "italic" or "emphasis" in HTML). - - success: Designate as a success, often printed in bright green. - - title: Designate as a title. - - warning: Designate as a warning, often printed in some shade of orange. - - - define\: + - code:"error": Designate as an error, often printed in red. + - code:"important": Designate as important. + - code:"normal": Explicitly designate normal text. + - code:"notable": Designate as notable (similar to code:"strong" or code:"bold" in abbreviation-HTML:"Hyper Text Markup Language"). + - code:"reset": Remove the context. + - code:"standout": Designate to make notable (similar to code:"italic" or code:"emphasis" in abbreviation-HTML:"Hyper Text Markup Language"). + - code:"success": Designate as a success, often printed in bright green. + - code:"title": Designate as a title. + - code:"warning": Designate as a warning, often printed in some shade of orange. + + - code:"define"\: The define Object represents environment variables passed to the program or created by the program. The value represents the environment variable name and is case-sensitive. This IKI variable gets substituted with the environment variable's value or NULL if not defined. - The "settings" list supports declaring custom environment variables (which overwrite any existing environment variable with the same name). + The code:"settings" list supports declaring custom environment variables (which overwrite any existing environment variable with the same name). - - parameter\: + - code:"parameter"\: The parameter Object represents a variable that is to be substituted. The value represents the variable name and is case-sensitive. - This IKI variable gets substituted with the value defined in the "settings" list or NULL if not defined. - The value may contain an additional ":option" or ":value" at the end of the name to designate getting only part of the parameter. + This IKI variable gets substituted with the value defined in the code:"settings" list or NULL if not defined. + The value may contain an additional code:":option" or code:":value" at the end of the name to designate getting only part of the parameter. The following are reserved parameter variable names\: - - build\: - This variable holds the "build" program parameters, such as "-b build/". - This supports both ":option" and ":value". + - code:"build"\: + This variable holds the code:"build" program parameters, such as code:"-b build/". + This supports both code:":option" and code:":value". - - color\: - This variable holds the color related program parameters, such as "+n". - This supports both ":option" and ":value" (value is always an empty string). + - code:"color"\: + This variable holds the color related program parameters, such as code:"+n". + This supports both code:":option" and code:":value" (value is always an empty string). - - data\: - This variable holds the "data" program parameters, such as "-D data/". - This supports both ":option" and ":value". + - code:"data"\: + This variable holds the code:"data" program parameters, such as code:"-D data/". + This supports both code:":option" and code:":value". - - define\: - This variable holds the "data" program parameters, such as "-d define/". - This supports both ":option" and ":value". + - code:"define"\: + This variable holds the code:"data" program parameters, such as code:"-d define/". + This supports both code:":option" and code:":value". - - fakefile\: - This variable holds the "fakefile" program parameters, such as "-f fakefile". - This supports both ":option" and ":value". + - code:"fakefile"\: + This variable holds the code:"fakefile" program parameters, such as code:"-f fakefile". + This supports both code:":option" and code:":value". - - mode\: - This variable holds the "fakefile" program parameters, such as "-m monolithic". - This supports both ":option" and ":value". + - code:"mode"\: + This variable holds the code:"fakefile" program parameters, such as code:"-m monolithic". + This supports both code:":option" and code:":value". - - process\: - This variable holds the "process" program parameters, such as "-p process_name". - This supports both ":option" and ":value". + - code:"process"\: + This variable holds the code:"process" program parameters, such as code:"-p process_name". + This supports both code:":option" and code:":value". - - return\: - This variable holds the return status from a previously run user-space applications, which happens with the "run" and "shell" section operations. + - code:"return"\: + This variable holds the return status from a previously run user-space applications, which happens with the code:"run" and code:"shell" section operations. This does not represent the return code for each line, just only those lines that run user-space applications. - - settings\: - This variable holds the "settings" program parameters, such as "-s settings". - This supports both ":option" and ":value". + - code:"settings"\: + This variable holds the code:"settings" program parameters, such as code:"-s settings". + This supports both code:":option" and code:":value". - - sources\: - This variable holds the "data" program parameters, such as "-S sources/". - This supports both ":option" and ":value". + - code:"sources"\: + This variable holds the code:"data" program parameters, such as code:"-S sources/". + This supports both code:":option" and code:":value". - - verbosity\: - This variable holds the verbosity related program parameters, such as "+V". - This supports both ":option" and ":value" (value is always an empty string). + - code:"verbosity"\: + This variable holds the verbosity related program parameters, such as code:"+V". + This supports both code:":option" and code:":value" (value is always an empty string). - - work\: - This variable holds the "work" program parameters, such as "-w work/". - This supports both ":option" and ":value". + - code:"work"\: + This variable holds the code:"work" program parameters, such as code:"-w work/". + This supports both code:":option" and code:":value". - An example of getting just the ":option" or ":value" part of a parameter for the "work" parameters: - - work:option\: - This variable holds the option part of the "work" program parameters, such as "-w". + An example of getting just the code:":option" or code:":value" part of a parameter for the code:"work" parameters\: + - code:"work:option"\: + This variable holds the option part of the code:"work" program parameters, such as code:"-w". - - work:value\: - This variable holds the value part of the "work" program parameters, such as "work/". + - code:"work:value"\: + This variable holds the value part of the code:"work" program parameters, such as code:"work/". - The Content "no_dereference" may be specified in certain cases relating to files. + The Content code:"no_dereference" may be specified in certain cases relating to files. These cases operate on a file that can be a link itself or the link target. The default behavior is normally to dereference the link target. - For example, consider a symbolic link, called "some_file", that points to a file that does not exist (which means that the link in question is a broken link). - The Operation "if exist some_file" would return false. - The Operation "if no_dereference exist some_file" would return true. - This is because the symbolic link itself, "some_file", does exist but the file it is pointing to does not. - The "no_dereference" is ignored for conditions that do not need it. + For example, consider a symbolic link, called code:"some_file", that points to a file that does not exist (which means that the link in question is a broken link). + The Operation code:"if exist some_file" would return false. + The Operation code:"if no_dereference exist some_file" would return true. + This is because the symbolic link itself, code:"some_file", does exist but the file it is pointing to does not. + The code:"no_dereference" is ignored for conditions that do not need it. diff --git a/level_3/fake/documents/settings.txt b/level_3/fake/documents/settings.txt index 1eea16f..a1c3887 100644 --- a/level_3/fake/documents/settings.txt +++ b/level_3/fake/documents/settings.txt @@ -2,545 +2,551 @@ # # license: open-standard-license-1.0 # +# This file (assumed to be named settings.txt) can be more easily read using the following iki_read commands: +# iki_read settings.txt +Q -w -rr abbreviation-ASCII ASCII abbreviation-FLL FLL -WWW character "'" "'" code '"' '"' bold '"' '"' +# +# To read the "Settings Documentation" section of this file, use this command sequence: +# fss_basic_list_read settings.txt +Q -cn "Settings Documentation" | iki_read +Q -w -rr abbreviation-ASCII ASCII abbreviation-FLL FLL -WWW character "'" "'" code '"' '"' bold '"' '"' +# Settings Documentation: - This describes intent and purposes of the build settings file settings. - The settings file is designed for very simple compilations that represent a single named program and/or a single named library. - For specific details on the allowed formatting, see the settings.txt under the specifications folder. + This describes intent and purposes of the build bold:"settings" file settings. + The bold:"settings" file is designed for very simple compilations that represent a single named program and/or a single named library. + For specific details on the allowed formatting, see the file:"settings.txt" under the specifications folder. - - build_compiler\: - This represents the name of the compiler program to use, such as "gcc". + - code:"build_compiler"\: + This represents the name of the compiler program to use, such as code:"gcc". - This defaults to "gcc" (the GNU C Compiler). + This defaults to code:"gcc" (the GNU C Compiler). - The programs "gcc" and "clang" are known to work. - Many of the parameters in the settings file can be changed if using a non-GCC, but there may be certain hard-coded functionality that may need to be changed. + The programs code:"gcc" and code:"clang" are known to work. + Many of the parameters in the bold:"settings" file can be changed if using a non-GCC, but there may be certain hard-coded functionality that may need to be changed. - - build_indexer\: - This represents the name of the indexer program to use, such as "ar". + - code:"build_indexer"\: + This represents the name of the indexer program to use, such as code:"ar". An indexer is often called a linker. - This defaults to "ar" (the GNU "ar" program). - Similar to "build_compiler", any linker that supports the "ar" program parameters is effectively supported. + This defaults to code:"ar" (the GNU code:"ar" program). + Similar to code:"build_compiler", any linker that supports the code:"ar" program parameters is effectively supported. - - build_indexer_arguments\: - This represents arguments needed to build an archive file from object files, such as "rcs". - These arguments are placed immediately before the object files passed to the "indexer" program. + - code:"build_indexer_arguments"\: + This represents arguments needed to build an archive file from object files, such as code:"rcs". + These arguments are placed immediately before the object files passed to the code:"indexer" program. - - build_language\: + - code:"build_language"\: The programming language to build with. - The languages "c" and "c++" are supported (with "bash" as a consideration for support). - The "bash" language is not currently implemented and needs some consideration because there is nothing to compile. - The "bash" language will likely build a set of individual scripts, and perhaps script dependencies, into a single Bash script. + The languages code:"c" and code:"c++" are supported (with code:"bash" as a consideration for support). + The code:"bash" language is not currently implemented and needs some consideration because there is nothing to compile. + The code:"bash" language will likely build a set of individual scripts, and perhaps script dependencies, into a single Bash script. - - build_libraries\: + - code:"build_libraries"\: A collection of libraries to be linked against. - This should include the compiler specific parameter parts, such as the "-l" prefix in "-lc". + This should include the compiler specific parameter parts, such as the code:"-l" prefix in code:"-lc". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. - - build_libraries_shared\: + - code:"build_libraries_shared"\: A collection of libraries to be linked against. - This should include the compiler specific parameter parts, such as the "-l" prefix in "-lc". + This should include the compiler specific parameter parts, such as the code:"-l" prefix in code:"-lc". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These are applied to only shared builds. - - build_libraries_static\: + - code:"build_libraries_static"\: A collection of libraries to be linked against. - This should include the compiler specific parameter parts, such as the "-l" prefix in "-lc". + This should include the compiler specific parameter parts, such as the code:"-l" prefix in code:"-lc". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These are applied to only static builds. - - build_objects_library\: + - code:"build_objects_library"\: A collection of object files to be compile with when building libraries. These are intended to represent already compiled object files. - These paths are relative to the path_object_script, path_object_shared, or path_object_static. + These paths are relative to the code:"path_object_script", code:"path_object_shared", or code:"path_object_static". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. - - build_objects_library_shared\: + - code:"build_objects_library_shared"\: A collection of object files to be compile with when building shared libraries. These are intended to represent already compiled object files. - These paths are relative to the path_object_shared. + These paths are relative to the code:"path_object_shared". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These are applied to only shared builds. - - build_objects_library_static\: + - code:"build_objects_library_static"\: A collection of object files to be compile with when building static libraries. These are intended to represent already compiled object files. - These paths are relative to the path_object_static. + These paths are relative to the code:"path_object_static". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These are applied to only static builds. - - build_objects_program\: + - code:"build_objects_program"\: A collection of object files to be compile with when building programs. These are intended to represent already compiled object files. - These paths are relative to the path_object_script, path_object_shared, or path_object_static. + These paths are relative to the code:"path_object_script", code:"path_object_shared", or code:"path_object_static". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. - - build_objects_program_shared\: + - code:"build_objects_program_shared"\: A collection of object files to be compile with when building shared programs. These are intended to represent already compiled object files. - These paths are relative to the path_object_shared. + These paths are relative to the code:"path_object_shared". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These are applied to only shared builds. - - build_objects_program_static\: + - code:"build_objects_program_static"\: A collection of object files to be compile with when building static programs. These are intended to represent already compiled object files. - These paths are relative to the path_object_static. + These paths are relative to the code:"path_object_static". The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These are applied to only static builds. - - build_name\: + - code:"build_name"\: The name of the build, which often represent the project name. If program sources are specified, then this will be used as the program name. - If library sources are specified, then this will be used in the library name, such as "libX.so" where "X" would be the "build_name" value. + If library sources are specified, then this will be used in the library name, such as code:"libX.so" where code:"X" would be the code:"build_name" value. - - build_script\: - When "yes", the build process will build any scripts, such as a Bash script. + - code:"build_script"\: + When code:"yes", the build process will build any scripts, such as a Bash script. This is currently not implemented. - - build_shared\: - When "yes", the build process will compile any source code for any supported language that supports shared library linking. + - code:"build_shared"\: + When code:"yes", the build process will compile any source code for any supported language that supports shared library linking. - - build_sources_headers\: + - code:"build_sources_headers"\: A collection of header files. - May include a relative sub-path to each individual header (such as: "level_0/a.h level_0/b.h level_1/c.h"). + May include a relative sub-path to each individual header (such as: code:"level_0/a.h level_0/b.h level_1/c.h"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. - - build_sources_headers_shared\: + - code:"build_sources_headers_shared"\: A collection of header files. - May include a relative sub-path to each individual header (such as: "level_0/a.h level_0/b.h level_1/c.h"). + May include a relative sub-path to each individual header (such as: code:"level_0/a.h level_0/b.h level_1/c.h"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. Be careful not to have any conflicting names between this and build_sources_headers_static in case of when static and shared builds are both enabled. These are applied to only shared builds. - - build_sources_headers_static\: + - code:"build_sources_headers_static"\: A collection of header files. - May include a relative sub-path to each individual header (such as: "level_0/a.h level_0/b.h level_1/c.h"). + May include a relative sub-path to each individual header (such as: code:"level_0/a.h level_0/b.h level_1/c.h"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These files are used when compiling the library. Be careful not to have any conflicting names between this and build_sources_headers_shared in case of when static and shared builds are both enabled. These are applied to only static builds. - - build_sources_library\: + - code:"build_sources_library"\: A collection of library related source files. - May include a relative sub-path to each individual source file (such as: "level_0/a.c level_0/b.c level_1/c.c"). + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c level_1/c.c"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. - - build_sources_library_shared\: + - code:"build_sources_library_shared"\: A collection of library related source files. - May include a relative sub-path to each individual source file (such as: "level_0/a.c level_0/b.c level_1/c.c"). + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c level_1/c.c"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These are applied to only shared builds. - - build_sources_library_static\: + - code:"build_sources_library_static"\: A collection of library related source files. - May include a relative sub-path to each individual source file (such as: "level_0/a.c level_0/b.c level_1/c.c"). + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c level_1/c.c"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These are applied to only static builds. - - build_sources_object\: + - code:"build_sources_object"\: A single source file used for generating an object file. - The source file is located within the path designated by "path_sources_object". + The source file is located within the path designated by code:"path_sources_object". The built object does not get linked and therefore no linker arguments apply. - The built object file is named using the "build_name" with the ".o" extension. - May include a relative sub-path to each individual source file (such as: "level_0/a.c"). + The built object file is named using the code:"build_name" with the code:".o" extension. + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c"). - - build_sources_object_shared\: + - code:"build_sources_object_shared"\: A single source file used for generating an object file. - The source file is located within the path designated by "path_sources_object". + The source file is located within the path designated by code:"path_sources_object". The built object does not get linked and therefore no linker arguments apply. - The built object file is named using the "build_name" with the ".o" extension. - May include a relative sub-path to each individual source file (such as: "level_0/a.c"). + The built object file is named using the code:"build_name" with the code:".o" extension. + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c"). These are applied to only shared builds. - - build_sources_object_static\: + - code:"build_sources_object_static"\: A single source file used for generating an object file. - The source file is located within the path designated by "path_sources_object". + The source file is located within the path designated by code:"path_sources_object". The built object does not get linked and therefore no linker arguments apply. - The built object file is named using the "build_name" with the ".o" extension. - May include a relative sub-path to each individual source file (such as: "level_0/a.c"). + The built object file is named using the code:"build_name" with the code:".o" extension. + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c"). These are applied to only static builds. - - build_sources_program\: + - code:"build_sources_program"\: A collection of program related source files. - May include a relative sub-path to each individual source file (such as: "level_0/a.c level_0/b.c level_1/c.c"). + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c level_1/c.c"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These files are used when compiling the program. - - build_sources_program_shared\: + - code:"build_sources_program_shared"\: A collection of program related source files. - May include a relative sub-path to each individual source file (such as: "level_0/a.c level_0/b.c level_1/c.c"). + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c level_1/c.c"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These files are used when compiling the program for shared builds. - - build_sources_program_static\: + - code:"build_sources_program_static"\: A collection of program related source files. - May include a relative sub-path to each individual source file (such as: "level_0/a.c level_0/b.c level_1/c.c"). + May include a relative sub-path to each individual source file (such as: code:"level_0/a.c level_0/b.c level_1/c.c"). The order of these may matter if the compiler (such as GCC or a linker via GCC) is order sensitive. These files are used when compiling the program for static builds. - - build_sources_script\: + - code:"build_sources_script"\: A collection of script files. These are settings files used by the project and are simply copied over to the build directory. Unless a pre-process script (or in theory post-process script) is configured to alter these, they are not modified. - Unlike the "compile_language" setting "bash", this is not for built Bash script, but is instead for any valid scripting language (including Bash). + Unlike the code:"compile_language" setting code:"bash", this is not for built Bash script, but is instead for any valid scripting language (including Bash). These could be in any language. - - build_sources_setting\: + - code:"build_sources_setting"\: A collection of settings files. These are settings files used by the project and are simply copied over to the build directory. Unless a pre-process script (or in theory post-process script) is configured to alter these, they are not modified. - - build_static\: - When "yes", the build process will compile any source code for any supported language that supports static library linking. + - code:"build_static"\: + When code:"yes", the build process will compile any source code for any supported language that supports static library linking. - - defines\: + - code:"defines"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to both shared and static builds. - - defines_library\: + - code:"defines_library"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only library builds. - - defines_library_shared\: + - code:"defines_library_shared"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only shared library builds. - - defines_library_static\: + - code:"defines_library_static"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only static library builds. - - defines_object\: + - code:"defines_object"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only object builds. - - defines_object_shared\: + - code:"defines_object_shared"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only shared object builds. - - defines_object_static\: + - code:"defines_object_static"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only static object builds. - - defines_program\: + - code:"defines_program"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only program builds. - - defines_program_shared\: + - code:"defines_program_shared"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only shared program builds. - - defines_program_static\: + - code:"defines_program_static"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only shared program builds. - - defines_shared\: + - code:"defines_shared"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only shared builds. - - defines_static\: + - code:"defines_static"\: A collection of macro names. - This includes the any compiler specific parameters required by the "build_compiler", such as the "-D" used by gcc and clang. - These will be appended to the compiler for compiled languages such as C and C++. + This includes the any compiler specific parameters required by the code:"build_compiler", such as the code:"-D" used by code:"gcc" and code:"clang". + These will be appended to the compiler for compiled languages such as code:"C" and code:"C++". These are applied to only static builds. - - environment\: + - code:"environment"\: A collection of environment names to pass from the callers environment into the executed programs environment. - When provided, all environment variables are removed when calling user-space programs, such as "gcc". + When provided, all environment variables are removed when calling user-space programs, such as code:"gcc". To remove all environment variables define this with no Content. When not provided, all environment variables are loaded. - - flags\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to both shared and static builds. - - flags_library\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_library"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied when building a library. - - flags_library_shared\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_library_shared"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to only library shared builds. - - flags_library_static\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_library_static"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to only library static builds. - - flags_object\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_object"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied when building an object. - - flags_object_shared\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_object_shared"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to only object shared builds. - - flags_object_static\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_object_static"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to only object static builds. - - flags_program\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_program"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied when building a program. - - flags_program_shared\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_program_shared"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to only program shared builds. - - flags_program_static\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_program_static"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to only program static builds. - - flags_shared\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_shared"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to only shared builds. - - flags_static\: - A collection of any flag supported by the "build_compiler", such as gcc. - This includes the any compiler specific parameters to defined this, such as the "-f" used by gcc and clang. + - code:"flags_static"\: + A collection of any flag supported by the code:"build_compiler", such as code:"gcc". + This includes the any compiler specific parameters to defined this, such as the code:"-f" used by code:"gcc" and code:"clang". These are applied to only static builds. - - has_path_standard\: - When "yes", the sources path will be built using the sources path with the language, such as "sources/c/". - When "no", the default sources path structure is not used and instead "path_sources" is used. - When the parameter -S/--sources is specified, such as "-S xxx", then when this is set to "yes" is used then the path would be "xxx/c/" and when this is set to "no" then the path would be "xxx/". + - code:"has_path_standard"\: + When code:"yes", the sources path will be built using the sources path with the language, such as code:"sources/c/". + When code:"no", the default sources path structure is not used and instead code:"path_sources" is used. + When the parameter code:"-S/--sources" is specified, such as code:"-S xxx", then when this is set to code:"yes" is used then the path would be code:"xxx/c/" and when this is set to code:"no" then the path would be code:"xxx/". - This defaults to "yes". + This defaults to code:"yes". - - modes\: + - code:"modes"\: A collection of available build modes. Build modes provide custom variants of the build process where certain settings are appended onto others. - See the settings.txt specification for a list of which setting names this applies to. + See the file:"settings.txt" specification for a list of which setting names this applies to. - - modes_default\: + - code:"modes_default"\: The name of the default mode to use when no mode is specified. - This must be one of the modes specified in the "modes" setting. + This must be one of the modes specified in the code:"modes" setting. - - path_headers\: + - code:"path_headers"\: A sub-path in which headers are to be installed under. - For example, the FLL project might use the "level_0", "level_1", etc.. headers without requiring that structure within the source. - A resulting build destination for a path_headers of "level_0" would be something like "build/includes/level_0/". - If "path_headers" is "level_0", "preserve_path_headers" is "yes", and "build_sources_headers" has "xxx/a.h yyy/zzz/b.h", then the headers would be at: "build/includes/level_0/xxx/a.h build/includes/level_0/yyy/zzz/b.h" + For example, the abbreviation-FLL:"Featureless Linux Library" project might use the code:"level_0", code:"level_1", etc.. headers without requiring that structure within the source. + A resulting build destination for a code:"path_headers" of code:"level_0" would be something like code:"build/includes/level_0/". + If code:"path_headers" is code:"level_0", code:"preserve_path_headers" is code:"yes", and code:"build_sources_headers" has code:"xxx/a.h yyy/zzz/b.h", then the headers would be at: code:"build/includes/level_0/xxx/a.h build/includes/level_0/yyy/zzz/b.h" - - path_language\: + - code:"path_language"\: A sub-path in which to find the source files for the currently defined language. - If the "build_language" is changed, it is recommended to change this as well to match. + If the code:"build_language" is changed, it is recommended to change this as well to match. - - path_library_script\: + - code:"path_library_script"\: A sub-path representing the destination where the built library script files are placed. - This defaults to "script". + This defaults to code:"script". This is currently not implemented. - - path_library_shared\: + - code:"path_library_shared"\: A sub-path representing the destination where the built shared library files are placed. - This defaults to "shared". + This defaults to code:"shared". - - path_library_static\: + - code:"path_library_static"\: A sub-path representing the destination where the built shared library files are placed. - This defaults to "static". + This defaults to code:"static". - - path_object_script\: + - code:"path_object_script"\: A sub-path representing the destination where the built object script files are placed. - This defaults to "script". + This defaults to code:"script". This is currently not implemented. - - path_object_shared\: + - code:"path_object_shared"\: A sub-path representing the destination where the built object library files are placed. - This defaults to "shared". + This defaults to code:"shared". - - path_object_static\: + - code:"path_object_static"\: A sub-path representing the destination where the built object library files are placed. - This defaults to "static". + This defaults to code:"static". - - path_program_script\: + - code:"path_program_script"\: A sub-path representing the destination where the built program script files are placed. - This defaults to "script". + This defaults to code:"script". This is currently not implemented. - - path_program_shared\: + - code:"path_program_shared"\: A sub-path representing the destination where the built shared program files are placed. - This defaults to "shared". + This defaults to code:"shared". - - path_program_static\: + - code:"path_program_static"\: A sub-path representing the destination where built shared program files are placed. - This defaults to "static". + This defaults to code:"static". - - path_sources\: + - code:"path_sources"\: A sub-path representing where the source files are found. - This defaults to "sources". + This defaults to code:"sources". - - path_sources_object\: + - code:"path_sources_object"\: A sub-path representing where the object source files are found. - This is used by "build_sources_object". + This is used by code:"build_sources_object". - This defaults to "sources". + This defaults to code:"sources". - - preserve_path_headers\: - When this is "yes", then the relative directory structure in the source (as defined in "build_sources_headers") is preserved. - If the "build_sources_headers" has the header files "xxx/a.h yyy/zzz/b.h" and this is "yes", then the directories "xxx/" and "yyy/zzz/" are created and the files are stored within them. - If the "build_sources_headers" has the header files "xxx/a.h yyy/zzz/b.h" and this is "no", then the directories "xxx/" and "yyy/zzz/" are stripped before installing. - When this is "no" and the "build_sources_headers" has header files "xxx/a.h yyy/a.h", then one of the "a.h" files will be overwritten, depending on order they were supplied. + - code:"preserve_path_headers"\: + When this is code:"yes", then the relative directory structure in the source (as defined in code:"build_sources_headers") is preserved. + If the code:"build_sources_headers" has the header files code:"xxx/a.h yyy/zzz/b.h" and this is code:"yes", then the directories code:"xxx/" and code:"yyy/zzz/" are created and the files are stored within them. + If the code:"build_sources_headers" has the header files code:"xxx/a.h yyy/zzz/b.h" and this is code:"no", then the directories code:"xxx/" and code:"yyy/zzz/" are stripped before installing. + When this is code:"no" and the code:"build_sources_headers" has header files code:"xxx/a.h yyy/a.h", then one of the code:"a.h" files will be overwritten, depending on order they were supplied. - - process_post\: - The filename (relative to the "data/build/" directory) of a script to execute after the "build" operation successfully completes. + - code:"process_post"\: + The filename (relative to the code:"data/build/" directory) of a script to execute after the code:"build" operation successfully completes. A small subset of parameters from the main execution are passed to this script during execution as parameters (using short parameter codes)\: - Color context parameters, such as: "+l", "+n", and "+d". - Operation mode, such as: "build", "clean", "make", or "skeleton". - Verbosity parameters, such as: "+q", "+D", or "+V". - Define parameters, such as "-d X" or "-d Y", whereas "X" or "Y" are any valid argument associated with "-d". - Process parameter, such as "-p X", whereas "X" is any valid argument associated with "-p". - Settings parameter, such as "-s X', whereas "X" is any valid argument associated with "-s". - Build Path parameter, such as "-b X', whereas "X" is any valid argument associated with "-b". - Data Path parameter, such as "-D X', whereas "X" is any valid argument associated with "-D". - Sources Path parameter, such as "-S X', whereas "X" is any valid argument associated with "-S". - Work Path parameter, such as "-w X', whereas "X" is any valid argument associated with "-w". - - - process_pre\: - The filename (relative to the "data/build/" directory) of a script to execute before the "build" operation is executed. + Color context parameters, such as: code:"+l", code:"+n", and code:"+d". + Operation mode, such as: code:"build", code:"clean", code:"make", or code:"skeleton". + Verbosity parameters, such as: code:"+q", code:"+D", or code:"+V". + Define parameters, such as code:"-d X" or code:"-d Y", whereas code:"X" or code:"Y" are any valid argument associated with code:"-d". + Process parameter, such as code:"-p X", whereas code:"X" is any valid argument associated with code:"-p". + Settings parameter, such as code:"-s X', whereas code:"X" is any valid argument associated with code:"-s". + Build Path parameter, such as code:"-b X', whereas code:"X" is any valid argument associated with code:"-b". + Data Path parameter, such as code:"-D X', whereas code:"X" is any valid argument associated with code:"-D". + Sources Path parameter, such as code:"-S X', whereas code:"X" is any valid argument associated with code:"-S". + Work Path parameter, such as code:"-w X', whereas code:"X" is any valid argument associated with code:"-w". + + - code:"process_pre"\: + The filename (relative to the code:"data/build/" directory) of a script to execute before the code:"build" operation is executed. A small subset of parameters from the main execution are passed to this script during execution as parameters (using short parameter codes)\: - Color context parameters, such as: "+l", "+n", and "+d". - Operation mode, such as: "build", "clean", "make", or "skeleton". - Verbosity parameters, such as: "+q", "+D", or "+V". - Define parameters, such as "-d X" or "-d Y", whereas "X" or "Y" are any valid argument associated with "-d". - Process parameter, such as "-p X", whereas "X" is any valid argument associated with "-p". - Settings parameter, such as "-s X', whereas "X" is any valid argument associated with "-s". - Build Path parameter, such as "-b X', whereas "X" is any valid argument associated with "-b". - Data Path parameter, such as "-D X', whereas "X" is any valid argument associated with "-D". - Sources Path parameter, such as "-S X', whereas "X" is any valid argument associated with "-S". - Work Path parameter, such as "-w X', whereas "X" is any valid argument associated with "-w". - - - search_exclusive\: - When "yes", the search path during compile for shared libraries will only include shared library paths. - When "no", the search path during compile time for shared libraries will include shared library paths followed by static library paths. - Setting this to "yes" helps prevent static libraries from ending up in shared libraries (very useful when bootstrapping a system). - Setting this to "no" allows for including static libraries if no shared libraries are found but static are. - This does not alter search paths introduced automatically by the "build_compiler" or "build_indexer", so it is still possible for static libraries to end up even when this is set to "yes". - - - search_shared\: - When "yes", shared library paths are searched during compile. - Both this and "search_static" cannot be "no" at the same time. - - This defaults to "yes". - - - search_shared\: - When "yes", static library paths are searched during compile. - Both this and search_shared cannot be "no" at the same time. - - - version_file\: + Color context parameters, such as: code:"+l", code:"+n", and code:"+d". + Operation mode, such as: code:"build", code:"clean", code:"make", or code:"skeleton". + Verbosity parameters, such as: code:"+q", code:"+D", or code:"+V". + Define parameters, such as code:"-d X" or code:"-d Y", whereas code:"X" or code:"Y" are any valid argument associated with code:"-d". + Process parameter, such as code:"-p X", whereas code:"X" is any valid argument associated with code:"-p". + Settings parameter, such as code:"-s X', whereas code:"X" is any valid argument associated with code:"-s". + Build Path parameter, such as code:"-b X', whereas code:"X" is any valid argument associated with code:"-b". + Data Path parameter, such as code:"-D X', whereas code:"X" is any valid argument associated with code:"-D". + Sources Path parameter, such as code:"-S X', whereas code:"X" is any valid argument associated with code:"-S". + Work Path parameter, such as code:"-w X', whereas code:"X" is any valid argument associated with code:"-w". + + - code:"search_exclusive"\: + When code:"yes", the search path during compile for shared libraries will only include shared library paths. + When code:"no", the search path during compile time for shared libraries will include shared library paths followed by static library paths. + Setting this to code:"yes" helps prevent static libraries from ending up in shared libraries (very useful when bootstrapping a system). + Setting this to code:"no" allows for including static libraries if no shared libraries are found but static are. + This does not alter search paths introduced automatically by the code:"build_compiler" or code:"build_indexer", so it is still possible for static libraries to end up even when this is set to code:"yes". + + - code:"search_shared"\: + When code:"yes", shared library paths are searched during compile. + Both this and code:"search_static" cannot be code:"no" at the same time. + + This defaults to code:"yes". + + - code:"search_shared"\: + When code:"yes", static library paths are searched during compile. + Both this and search_shared cannot be code:"no" at the same time. + + - code:"version_file"\: Designates which version should be used when building the symbolic links. Any version prefixes are used as defined. - A Symbolic link is created against this created file such that "libX.so" is a link to "libX.so.A". - For all files other than when file is "major", another symbolic link is created against this such that "libX.so.A" is a link to "libX.so.A.X" such that X is the respective "B", "B.C', or "B.C.D" as described below. - The default file is "major". - When "major" is used, the file created is "libX.so.A", whereas "X" is the "build_name" and "A" is the major version. - When "minor" is used, the file created is "libX.so.A.B", whereas "X" is the "build_name" and "A.B" is the major and minor versions, respectively. - When "micro" is used, the file created is "libX.so.A.B.C", whereas "X" is the "build_name" and "A.B.C" is the major, minor, and micro versions, respectively. - When "nano" is used, the file created is "libX.so.A.B.C.D", whereas "X" is the "build_name" and "A.B.C.D" is the major, minor, micro, and nano versions, respectively. - - - version_major\: + A Symbolic link is created against this created file such that code:"libX.so" is a link to code:"libX.so.A". + For all files other than when file is code:"major", another symbolic link is created against this such that code:"libX.so.A" is a link to code:"libX.so.A.X" such that X is the respective code:"B", code:"B.C', or code:"B.C.D" as described below. + The default file is code:"major". + When code:"major" is used, the file created is code:"libX.so.A", whereas code:"X" is the code:"build_name" and code:"A" is the major version. + When code:"minor" is used, the file created is code:"libX.so.A.B", whereas code:"X" is the code:"build_name" and code:"A.B" is the major and minor versions, respectively. + When code:"micro" is used, the file created is code:"libX.so.A.B.C", whereas code:"X" is the code:"build_name" and code:"A.B.C" is the major, minor, and micro versions, respectively. + When code:"nano" is used, the file created is code:"libX.so.A.B.C.D", whereas code:"X" is the code:"build_name" and code:"A.B.C.D" is the major, minor, micro, and nano versions, respectively. + + - code:"version_major"\: The major version number (or in theory any characters allowed in a filename). This should generally be a positive number or 0. Anything else is currently untested but allowed. - With a structure of "A.B.C", the major version would be the "A". + With a structure of code:"A.B.C", the major version would be the character:"A". - - version_major_prefix\: + - code:"version_major_prefix"\: The version major prefix is the character used to designate the start of the major version. This can zero or more characters. - With a structure of "A.B.C", the major version prefix would be before the "A". - This is only added if "version_major" is not empty. + With a structure of code:"A.B.C", the major version prefix would be before the character:"A". + This is only added if code:"version_major" is not empty. - This defaults to the ASCII period character ".". + This defaults to the abbreviation-ASCII:"American Standard Code for Information Interchange" period character character:".". - - version_minor\: + - code:"version_minor"\: The minor version number (or in theory any characters allowed in a filename). This should generally be a positive number or 0. Anything else is currently untested but allowed. - With a structure of "A.B.C", the minor version would be the "B". + With a structure of code:"A.B.C", the minor version would be the character:"B". - - version_minor_prefix\: + - code:"version_minor_prefix"\: The version minor prefix is the character used to separate the major from the minor. This can zero or more characters. - With a structure of "A.B.C", the minor version prefix would be the "." before the "B". - This is only added if "version_minor" is not empty. + With a structure of code:"A.B.C", the minor version prefix would be the character:"." before the character:"B". + This is only added if code:"version_minor" is not empty. - This defaults to the ASCII period character ".". + This defaults to the abbreviation-ASCII:"American Standard Code for Information Interchange" period character character:".". - - version_micro\: + - code:"version_micro"\: The micro version number (or in theory any characters allowed in a filename). This should generally be a positive number or 0. Anything else is currently untested but allowed. - With a structure of "A.B.C", the micro version would be the "C". + With a structure of code:"A.B.C", the micro version would be the character:"C". - - version_micro_prefix\: + - code:"version_micro_prefix"\: The version micro prefix is the character used to separate the minor from the micro. This can zero or more characters. - With a structure of "A.B.C", the micro version prefix would be the "." before the "C". - This is only added if "version_micro" is not empty. + With a structure of code:"A.B.C", the micro version prefix would be the character:"." before the character:"C". + This is only added if code:"version_micro" is not empty. - This defaults to the ASCII period character ".". + This defaults to the abbreviation-ASCII:"American Standard Code for Information Interchange" period character character:".". - - version_nano\: + - code:"version_nano"\: The nano version number (or in theory any characters allowed in a filename). This should generally be a positive number or 0. Anything else is currently untested but allowed. - With a structure of "A.B.C.D", the micro version prefix would be the "." before the "D". + With a structure of code:"A.B.C.D", the micro version prefix would be the character:"." before the character:"D". - - version_nano_prefix\: + - code:"version_nano_prefix"\: The version nano prefix is the character used to separate the micro from the nano. This can zero or more characters. - With a structure of "A.B.C.D", the minor version would be the "." before the "D". - This is only added if "version_nano" is not empty. + With a structure of code:"A.B.C.D", the minor version would be the character:"." before the character:"D". + This is only added if code:"version_nano" is not empty. - This defaults to the ASCII period character ".". + This defaults to the abbreviation-ASCII:"American Standard Code for Information Interchange" period character character:".". - - version_target\: + - code:"version_target"\: Designates which version should be used when linking the shared library. Any version prefixes are used as defined. - The default target is "micro". - When "major" is used, a shared library is generated with "-Wl,-soname,libX.so.A", whereas "X" is the "build_name" and "A" is the major version. - When "minor" is used, a shared library is generated with "-Wl,-soname,libX.so.A.B", whereas "X" is the "build_name" and "A.B" is the major and minor versions, respectively. - When "micro" is used, a shared library is generated with "-Wl,-soname,libX.so.A.B.C", whereas "X" is the "build_name" and "A.B.C" is the major, minor, and micro versions, respectively. - When "nano" is used, a shared library is generated with "-Wl,-soname,libX.so.A.B.C.D", whereas "X" is the "build_name" and "A.B.C.D" is the major, minor, micro, and nano versions, respectively. + The default target is code:"micro". + When code:"major" is used, a shared library is generated with code:"-Wl,-soname,libX.so.A", whereas code:"X" is the code:"build_name" and code:"A" is the major version. + When code:"minor" is used, a shared library is generated with code:"-Wl,-soname,libX.so.A.B", whereas code:"X" is the code:"build_name" and code:"A.B" is the major and minor versions, respectively. + When code:"micro" is used, a shared library is generated with code:"-Wl,-soname,libX.so.A.B.C", whereas code:"X" is the code:"build_name" and code:"A.B.C" is the major, minor, and micro versions, respectively. + When code:"nano" is used, a shared library is generated with code:"-Wl,-soname,libX.so.A.B.C.D", whereas code:"X" is the code:"build_name" and code:"A.B.C.D" is the major, minor, micro, and nano versions, respectively. diff --git a/level_3/fake/specifications/defines.txt b/level_3/fake/specifications/defines.txt index cb398f4..efc35a3 100644 --- a/level_3/fake/specifications/defines.txt +++ b/level_3/fake/specifications/defines.txt @@ -1,14 +1,20 @@ -# fss-0002 +# fss-0002 iki-0000 # # license: open-standard-license-1.0 # +# This file (assumed to be named defines.txt) can be more easily read using the following iki_read commands: +# iki_read defines.txt +Q -w -WW code '"' '"' bold '"' '"' +# +# To read the "Defines Specification" section of this file, use this command sequence: +# fss_basic_list_read defines.txt +Q -cn "Defines Specification" | iki_read +Q -w -WW code '"' '"' bold '"' '"' +# Defines Specification: - The build settings "defines" file follows the FSS-0000 (Basic) format. + The build settings bold:"defines" file follows the code:"FSS-0000 (Basic)" format. Each Object represents a specific a macro name to be defined during compilation. Each Content represents documentation explaining the intent and purpose of that define. - The Object name has further restrictions than FSS-0000 requires. + The Object name has further restrictions than code:"FSS-0000" requires. These restrictions are that the Object must only evaluate to a valid C/C++ macro name. This is essentially means only Word characters. diff --git a/level_3/fake/specifications/dependencies.txt b/level_3/fake/specifications/dependencies.txt index b68df89..f48bfdc 100644 --- a/level_3/fake/specifications/dependencies.txt +++ b/level_3/fake/specifications/dependencies.txt @@ -1,14 +1,21 @@ -# fss-0002 +# fss-0002 iki-0000 # # license: open-standard-license-1.0 # +# This file (assumed to be named dependencies.txt) can be more easily read using the following iki_read commands: +# iki_read dependencies.txt +Q -w -r abbreviation-FLL FLL -WW code '"' '"' bold '"' '"' +# +# To read the "Dependencies Specification" section of this file, use this command sequence: +# fss_basic_list_read dependencies.txt +Q -cn "Dependencies Specification" | iki_read +Q -w -r abbreviation-FLL FLL -WW code '"' '"' bold '"' '"' +# Dependencies Specification: - The build settings "dependencies" file follows the FSS-0000 (Basic) format. + The build settings bold:"dependencies" file follows the code:"FSS-0001 (Extended)" format. Each Object represents a specific project name as it would be linked against. - Each Content must not be specified, only FSS-0000 Object names are allowed. + Each Content represents associated information, such as a version number. + Future versions of this will clarify what and how Content, such as version numbers, are to be used and processed. - This file only holds dependencies provided by the FLL project. + This file is originally intended for dependencies provided by the abbreviation-FLL:"Featureless Linux Library" project. Order matters, and the provided order represents the order of dependencies. The first entry therefore has no preceding dependency and the last dependency could potentially depend on all dependencies above it. diff --git a/level_3/fake/specifications/fakefile.txt b/level_3/fake/specifications/fakefile.txt index eb2d3e5..fee2cec 100644 --- a/level_3/fake/specifications/fakefile.txt +++ b/level_3/fake/specifications/fakefile.txt @@ -1,12 +1,18 @@ -# fss-0002 +# fss-0002 iki-0000 # # license: open-standard-license-1.0 # +# This file (assumed to be named fakefile.txt) can be more easily read using the following iki_read commands: +# iki_read fakefile.txt +Q -w -WWW character "'" "'" code '"' '"' bold '"' '"' +# +# To read the "Fakefile Specification" section of this file, use this command sequence: +# fss_basic_list_read fakefile.txt +Q -cn "Fakefile Specification" | iki_read +Q -w -WWW character "'" "'" code '"' '"' bold '"' '"' +# Fakefile Specification: - The "fakefile" file follows the FSS-0005 (Somewhat Basic List) format with a sub-fomat of IKI-0002 (Simple Script). + The bold:"fakefile" file follows the code:"FSS-0005 (Somewhat Basic List)" format with a sub-format of code:"IKI-0002 (Simple Script)". - A fakefile is broken up into multiple Basic Lists, referred to as Sections, with two special purpose reserved Sections. + A bold:"fakefile" is broken up into multiple Basic Lists, referred to as Sections, with two special purpose reserved Sections. The Sections are broken up into multiple Extended Objects and their respective Contents, referred to as Section Operations. Each of these non-reserved Sections acts as a set to perform some set of Section Operations. @@ -19,102 +25,103 @@ Fakefile Specification: The Operation Extended Object does not support IKI variable substitution. The reserved Settings Section does not support IKI variable substitution. - The IKI-0002 vocabulary context is further clarified as follows\: - - context: The value is case-sensitive variable name. - - define: The value must be a case-sensitive valid environment variable name (alpha-numeric or underscore, but no leading digits). - - parameter: The value is a case-sensitive variable name. - - Many parameters also support ":option" and ":value" appended at the end of the value. + The code:"IKI-0002 (Simple Script)" vocabulary context is further clarified as follows\: + - code:"context": The value is case-sensitive variable name. + - code:"define": The value must be a case-sensitive valid environment variable name (alpha-numeric or underscore, but no leading digits). + - code:"parameter": The value is a case-sensitive variable name. + - Many parameters also support code:":option" and code:":value" appended at the end of the value. The reserved Section Objects are\: - - settings: contains a list of Settings Objects and Content in FSS-0001 (Extended) format. - - main: contains a list of Operation Objects and Content in FSS-0001 (Extended) format. + - code:"settings": contains a list of Settings Objects and Content in code:"FSS-0001 (Extended)" format. + - code:"main:" contains a list of Operation Objects and Content in code:"FSS-0001 (Extended)" format. The Settings Objects are\: - - compiler: Only one Content, which must only be a valid filename. - - define: First Content represents variable name (case-sensitive), remaining Content represents the value. - - environment: Zero or more Content representing valid environment variable names (alpha-numeric with underscore, but cannot begin with a number). - - fail: Only one Content, which must be either "exit", "warn" or "ignore" (quotes not required) (case-sensitive). - - indexer: Only one Content, which must only be a valid filename. - - indexer_arguments: Zero or more arguments supported by the indexer specified in "build_indexer". - - load_build: Only one Content, which must be either "yes" or "no" (quotes not required) (case-sensitive). - - parameter: First Content represents variable name (case-sensitive), remaining Content represents the value. + - code:"compiler": Only one Content, which must only be a valid filename. + - code:"define": First Content represents variable name (case-sensitive), remaining Content represents the value. + - code:"environment": Zero or more Content representing valid environment variable names (alpha-numeric with underscore, but cannot begin with a number). + - code:"fail": Only one Content, which must be either code:"exit", code:"warn" or code:"ignore" (quotes not required) (case-sensitive). + - code:"indexer": Only one Content, which must only be a valid filename. + - code:"indexer_arguments: Zero or more arguments supported by the indexer specified in code:"build_indexer". + - code:"load_build": Only one Content, which must be either code:"yes" or code:"no" (quotes not required) (case-sensitive). + - code:"parameter": First Content represents variable name (case-sensitive), remaining Content represents the value. The build settings may also be specified in the Settings Section. The Section Operation Objects are\: - - and: One or more Content. First Content is the condition or "no_dereference" (when "no_dereference", then the Second Content is the condition, etc..), remaining Content are specific to the condition. - - break: Zero or one Content. If specified, First content must be one of "success" or "failure". - - build: Zero or more Content. First Content represents file name of the settings file to use, Second Content and on represent custom modes to use. - - clean: Zero Content. - - clone: Two or more Content representing paths to files. - - compile: One or more Content as parameters to compiler. - - copy: Two or more Content representing paths to files. - - define: First Content represents variable name (case-sensitive), remaining Content represents the value. - - delete: One or more Content representing paths to files. - - deletes: One or more Content representing paths to files. - - else: Zero Content. - - exit: Zero or One Content. If specified, First content must be one of "succeed" or "fail". - - fail: One Content. First Content must be one of "exit", "warn", or "ignore" (case-sensitive). - - group: Two or more Content. First Content is group name, number, or "no_dereference" (when "no_dereference", then the second Content is the group name or number, etc..), remaining Content are paths to files. - - groups: Two or more Content. First Content is group name, number, or "no_dereference" (when "no_dereference", then the second Content is the group name or number, etc..), remaining Content are paths to files. - - if: One or more Content. First Content is the condition or is "no_dereference" (when "no_dereference", then the Second Content is the condition, etc..), remaining Content are specific to the condition. - - index: One or more Content. - - link: Two to Four Content. The first and second Content may be either "force" or "strict", the second to last Content is the link target file, and the last Content is the pointer file (the link). - - mode: Two or more Content. First Content is the mode, remaining Content are paths to files. - - modes: Two or more Content. First Content is the mode, remaining Content are paths to files. - - move: Two or more Content representing paths to files. - - operate: One Content. First Content is the name of a valid Section Object, except for the reserved Section Objects. - - or: One or more Content. First Content is the condition or "no_dereference" (when "no_dereference", then the Second Content is the condition, etc..), remaining Content are specific to the condition. - - owner: Two or more Content. First Content is owner name, number, or "no_dereference" (when "no_dereference", then the second Content is the owner name or number, etc..), remaining Content are paths to files. - - owners: Two or more Content. First Content is owner name, number, or "no_dereference" (when "no_dereference", then the second Content is the owner name or number, etc..), remaining Content are paths to files. - - parameter: First Content represents variable name (case-sensitive), remaining Content represents the value. - - pop: Zero Content. - - print: Zero or more Content. - - run: One or more Content. First Content is the name of the program (or script) and all remaining Content are passed as arguments to the named program (or script). - - shell: One or more Content. First Content is the file path of the program (or script) and all remaining Content are passed as arguments to the named program (or script). - - skeleton: Zero Content. - - to: One Content. First Content is the directory path. - - top: Zero Content. - - touch: Two or more Content. First Content is one of "file" or "directory", remaining Content are paths to files. - - write: One or more Content. First Content the file to write to, remaining Content represent the string to write. + - code:"and": One or more Content. First Content is the condition or code:"no_dereference" (when code:"no_dereference", then the Second Content is the condition, etc..), remaining Content are specific to the condition. + - code:"break": Zero or one Content. If specified, First content must be one of code:"success" or code:"failure". + - code:"build": Zero or more Content. First Content represents file name of the settings file to use, Second Content and on represent custom modes to use. + - code:"clean": Zero Content. + - code:"clone": Two or more Content representing paths to files. + - code:"compile": One or more Content as parameters to compiler. + - code:"copy": Two or more Content representing paths to files. + - code:"define": First Content represents variable name (case-sensitive), remaining Content represents the value. + - code:"delete": One or more Content representing paths to files. + - code:"deletes": One or more Content representing paths to files. + - code:"else": Zero Content. + - code:"exit": Zero or One Content. If specified, First content must be one of code:"succeed" or code:"fail". + - code:"fail": One Content. First Content must be one of code:"exit", code:"warn", or code:"ignore" (case-sensitive). + - code:"group": Two or more Content. First Content is group name, number, or code:"no_dereference" (when code:"no_dereference", then the second Content is the group name or number, etc..), remaining Content are paths to files. + - code:"groups": Two or more Content. First Content is group name, number, or code:"no_dereference" (when code:"no_dereference", then the second Content is the group name or number, etc..), remaining Content are paths to files. + - code:"if": One or more Content. First Content is the condition or is code:"no_dereference" (when code:"no_dereference", then the Second Content is the condition, etc..), remaining Content are specific to the condition. + - code:"index": One or more Content. + - code:"link": Two to Four Content. The first and second Content may be either code:"force" or code:"strict", the second to last Content is the link target file, and the last Content is the pointer file (the link). + - code:"mode": Two or more Content. First Content is the mode, remaining Content are paths to files. + - code:"modes": Two or more Content. First Content is the mode, remaining Content are paths to files. + - code:"move": Two or more Content representing paths to files. + - code:"operate": One Content. First Content is the name of a valid Section Object, except for the reserved Section Objects. + - code:"or": One or more Content. First Content is the condition or code:"no_dereference" (when code:"no_dereference", then the Second Content is the condition, etc..), remaining Content are specific to the condition. + - code:"owner": Two or more Content. First Content is owner name, number, or code:"no_dereference" (when code:"no_dereference", then the second Content is the owner name or number, etc..), remaining Content are paths to files. + - code:"owners": Two or more Content. First Content is owner name, number, or code:"no_dereference" (when code:"no_dereference", then the second Content is the owner name or number, etc..), remaining Content are paths to files. + - code:"parameter": First Content represents variable name (case-sensitive), remaining Content represents the value. + - code:"pop": Zero Content. + - code:"print": Zero or more Content. + - code:"run": One or more Content. First Content is the name of the program (or script) and all remaining Content are passed as arguments to the named program (or script). + - code:"shell": One or more Content. First Content is the file path of the program (or script) and all remaining Content are passed as arguments to the named program (or script). + - code:"skeleton": Zero Content. + - code:"to": One Content. First Content is the directory path. + - code:"top": Zero Content. + - code:"touch": Two or more Content. First Content is one of code:"file" or code:"directory", remaining Content are paths to files. + - code:"write": One or more Content. First Content the file to write to, remaining Content represent the string to write. - The "if" Section Operation conditions are\: - - ==: Two or more Content. - - >: Two or more Content. - - <: Two or more Content. - - >=: Two or more Content. - - <=: Two or more Content. - - <>: Two or more Content. - - define: One or more Content are valid environment variable name. - - exist: One or more Content representing the files to check the existence of. - - failure: has no other Content. - - group: First Content is the name of a group. Second or more Content are paths to files. - - is: First Content is a list of "block", "character", "no_dereference", "directory", "fifo", "link", "regular" , or "socket" followed by "for" and then the Remaining Content that are paths to files. - - mode: First Content is either "has", "is", or "no_dereference". Second Content is a valid file mode. Third or more Content are paths to files. - - no_dereference: A non-condition inserted before any of "exist", "is", and "mode" (then the second Content is the actual condition followed by any Content associated with that condition). - - not: First Content is one of "define", "exist", "group", "is", "mode", "no_dereference", "owner", or "parameter" and all remaining Content are based on the First Content's "if" Section Operation Content rules. - - owner: First Content is the name of an owner. Second or more Content are paths to files. - - parameter: One or more Content are valid IKI names. - - success: has no other Content. + The code:"if" Section Operation conditions are\: + - code:"==": Two or more Content. + - code:">": Two or more Content. + - code:"<": Two or more Content. + - code:">=": Two or more Content. + - code:"<=": Two or more Content. + - code:"<>": Two or more Content. + - code:"define": One or more Content are valid environment variable name. + - code:"exist": One or more Content representing the files to check the existence of. + - code:"failure": has no other Content. + - code:"group": First Content is the name of a group. Second or more Content are paths to files. + - code:"is": First Content is a list of code:"block", code:"character", code:"no_dereference", code:"directory", code:"fifo", code:"link", code:"regular" , or code:"socket" followed by "for" and then the Remaining Content that are paths to files. + - code:"mode": First Content is either code:"has", code:"is", or code:"no_dereference". Second Content is a valid file mode. Third or more Content are paths to files. + - code:"no_dereference": A non-condition inserted before any of code:"exist", code:"is", and code:"mode" (then the second Content is the actual condition followed by any Content associated with that condition). + - code:"not": First Content is one of code:"define", code:"exist", code:"group", code:"is", code:"mode", code:"no_dereference", code:"owner", or code:"parameter" and all remaining Content are based on the First Content's code:"if" Section Operation Content rules. + - code:"owner": First Content is the name of an owner. Second or more Content are paths to files. + - code:"parameter": One or more Content are valid IKI names. + - code:"success": has no other Content. - The "if" Section Operation conditions and numbers\: + The code:"if" Section Operation conditions and numbers\: The numbers may be represented in any of the forms\: - 1) decimal: all numbers without a base-type prefix are of base-type 10, referred to as decimal. - 2) binary: all numbers with the prefix "0b" (uppercase or lowercase 'b') are of base-type 2, referred to as binary. - 3) octal: all numbers with the prefix "0o" (that is zero followed by the letter o, uppercase or lowercase 'o') are of base-type 8, referred to as octal. - 4) duodecimal: all numbers with the prefix "0d" (uppercase or lowercase 'd') are of base-type 12, referred to as duodecimal. - 5) hexadecimal: all numbers with the prefix "0x" (uppercase or lowercase 'x') are of base-type 16, referred to as hexadecimal. + 1) code:"decimal": all numbers without a base-type prefix are of base-type 10, referred to as decimal. + 2) code:"binary": all numbers with the prefix code:"0b" (uppercase or lowercase character:'b') are of base-type 2, referred to as binary. + 3) code:"octal": all numbers with the prefix code:"0o" (that is zero followed by the letter character:'o', uppercase or lowercase character:'o') are of base-type 8, referred to as octal. + 4) code:"duodecimal": all numbers with the prefix code:"0d" (uppercase or lowercase character:'d') are of base-type 12, referred to as duodecimal. + 5) code:"hexadecimal": all numbers with the prefix code:"0x" (uppercase or lowercase character:'x') are of base-type 16, referred to as hexadecimal. (At this time) The numbers may be of a max value of 2^64, or 18446744073709551615, positive or negative. (At this time) The numbers may only be whole numbers. - Note: there are plans to impose no limits on the number size or any decimal values, but this requires significant work is not to be implemented at this time. + Note: There are plans to impose no limits on the number size or any decimal values, but this requires significant work is not to be implemented at this time. + Once this restriction is lifted, it should be conditional upon an implementation for what the maximum supported numbers or digits may be. - Only the following "if" Section Operation conditions operate using these numbers\: - - > - - < - - >= - - <= + Only the following code:"if" Section Operation conditions use these operators\: + - code:">" + - code:"<" + - code:">=" + - code:"<=" - The "if" Section Operation condition "parameter"\: - The following reserved words are available for parameter names: build, color, current, data, define, fakefile, mode, process, return, settings, sources, top, verbosity, and work. - Each of the reserved words supports having ":option" and ":value" appended, such as: "work:value". + The code:"if" Section Operation condition code:"parameter"\: + The following reserved words are available for parameter names: code:"build", code:"color", code:"current", code:"data", code:"define", code:"fakefile", code:"mode", code:"process", code:"return", code:"settings", code:"sources", code:"top", code:"verbosity", and code:"work". + Each of the reserved words supports having code:":option" and code:":value" appended, such as: code:"work:value". diff --git a/level_3/fake/specifications/settings.txt b/level_3/fake/specifications/settings.txt index 6cfc166..28ff9f7 100644 --- a/level_3/fake/specifications/settings.txt +++ b/level_3/fake/specifications/settings.txt @@ -1,10 +1,16 @@ -# fss-0002 +# fss-0002 iki-0000 # # license: open-standard-license-1.0 # +# This file (assumed to be named settings.txt) can be more easily read using the following iki_read commands: +# iki_read settings.txt +Q -w -WWW character "'" "'" code '"' '"' bold '"' '"' +# +# To read the "Settings Specification" section of this file, use this command sequence: +# fss_basic_list_read settings.txt +Q -cn "Settings Specification" | iki_read +Q -w -WWW character "'" "'" code '"' '"' bold '"' '"' +# Settings Specification: - The build settings "settings" file follows the FSS-0001 (Extended) format. + The build settings bold:"settings" file follows the code:"FSS-0001 (Extended)" format. Each Object represents a settings property name. There is only a distinct set of setting property names (see below). @@ -13,93 +19,93 @@ Settings Specification: Additional restrictions are applied to each Content depending on each specific Object name (see below). Object Names and their respective Content purpose/restrictions\: - - build_compiler: Must only be a valid filename. - - build_indexer: Must only be a valid filename. - - build_indexer_arguments: Zero or more arguments supported by the indexer specified in "build_indexer". - - build_language: Must only be one of: "bash", "c", or "c++". - - build_libraries: Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" Object. - - build_libraries_shared: Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" Object. - - build_libraries_static: Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" Object. - - build_name: Must only contain characters allowed in a filename. - - build_objects_library: Must only contain any number of valid object file names relative to the appropriate "path_object_*" path. - - build_objects_library_shared: Must only contain any number of valid object file names relative to the "path_object_shared" path. - - build_objects_library_static: Must only contain any number of valid object file names relative to the "path_object_static" path. - - build_objects_program: Must only contain any number of valid object file names relative to the appropriate "path_object_*" path. - - build_objects_program_shared: Must only contain any number of valid object file names relative to the "path_object_shared" path. - - build_objects_program_static: Must only contain any number of valid object file names relative to the "path_object_static" path. - - build_script: Must only one of: "yes" or "no". - - build_shared: Must only one of: "yes" or "no". - - build_sources_headers: Must only contain any number of valid filenames. - - build_sources_headers_shared: Must only contain any number of valid filenames. - - build_sources_headers_static: Must only contain any number of valid filenames. - - build_sources_library: Must only contain any number of valid filenames. - - build_sources_library_shared: Must only contain any number of valid filenames. - - build_sources_library_static: Must only contain any number of valid filenames. - - build_sources_object: Must only contain any number of valid filenames. - - build_sources_object_shared: Must only contain any number of valid filenames. - - build_sources_object_static: Must only contain any number of valid filenames. - - build_sources_program: Must only contain any number of valid filenames. - - build_sources_program_shared: Must only contain any number of valid filenames. - - build_sources_program_static: Must only contain any number of valid filenames. - - build_sources_script: Must only contain any number of valid filenames. - - build_sources_setting: Must only contain any number of valid filenames. - - build_static: Must only one of: "yes" or "no". - - defines: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_library: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_library_shared: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_library_static: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_object: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_object_shared: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_object_static: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_program: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_program_shared: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_program_static: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_shared: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - defines_static: Must only contain any number of valid macro names supported by the compiler specified in "build_compiler". - - environment: Environment variable names, case-sensitive, usually uppercase. May only contain characters allowed in an environment variable. - - flags: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_library: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_library_shared: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_library_static: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_object: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_object_shared: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_object_static: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_program: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_program_shared: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_program_static: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_shared: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - flags_static: Must only contain any number of parameters supported by the compiler specified in "build_compiler". - - has_path_standard: Must only one of: "yes" or "no". - - modes: Any valid word character, '-', or '+'. - - modes_default: May only be a single complete Content word defined in "modes" Object. - - path_headers: Must be a single valid path. - - path_language: Must be a single valid path. - - path_library_script: Must be a single valid path. - - path_library_shared: Must be a single valid path. - - path_library_static: Must be a single valid path. - - path_object_script: Must be a single valid path. - - path_object_shared: Must be a single valid path. - - path_object_static: Must be a single valid path. - - path_program_script: Must be a single valid path. - - path_program_shared: Must be a single valid path. - - path_program_static: Must be a single valid path. - - path_sources: Must only be a valid directory path or not specified. - - path_sources_object: Must only be a valid directory path or not specified. - - preserve_path_headers: Must only be one of "yes" or "no". - - process_post: Must contain only a single valid filename. - - process_pre: Must contain only a single valid filename. - - search_exclusive: Must only one of: "yes" or "no". - - search_shared: Must only one of: "yes" or "no". - - search_static: Must only one of: "yes" or "no". - - version_file: Must only be one of: "major", "minor", "micro", or "nano". - - version_major: Must only be a single value containing valid filename characters. - - version_major_prefix: Must be zero or more valid filename characters. - - version_micro: Must only be a single value containing valid filename characters. - - version_micro_prefix: Must be zero or more valid filename characters. - - version_minor: Must only be a single value containing valid filename characters. - - version_minor_prefix: Must be zero or more valid filename characters. - - version_nano: Must only be a single value containing valid filename characters. - - version_nano_prefix: Must be zero or more valid filename characters. - - version_target: Must only be one of: "major", "minor", "micro", or "nano". + - code:"build_compiler": Must only be a valid filename. + - code:"build_indexer": Must only be a valid filename. + - code:"build_indexer_arguments": Zero or more arguments supported by the indexer specified in code:"build_indexer". + - code:"build_language": Must only be one of: code:"bash", code:"c", or code:"c++". + - code:"build_libraries": Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" Object. + - code:"build_libraries_shared": Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" Object. + - code:"build_libraries_static": Must only contain any number of valid library include arguments that are valid for the compiler defined in "build_compiler" Object. + - code:"build_name": Must only contain characters allowed in a filename. + - code:"build_objects_library": Must only contain any number of valid object file names relative to the appropriate code:"path_object_*" path. + - code:"build_objects_library_shared": Must only contain any number of valid object file names relative to the code:"path_object_shared" path. + - code:"build_objects_library_static": Must only contain any number of valid object file names relative to the code:"path_object_static" path. + - code:"build_objects_program": Must only contain any number of valid object file names relative to the appropriate code:"path_object_*" path. + - code:"build_objects_program_shared": Must only contain any number of valid object file names relative to the code:"path_object_shared" path. + - code:"build_objects_program_static": Must only contain any number of valid object file names relative to the code:"path_object_static" path. + - code:"build_script": Must only one of: code:"yes" or code:"no". + - code:"build_shared": Must only one of: code:"yes" or code:"no". + - code:"build_sources_headers": Must only contain any number of valid filenames. + - code:"build_sources_headers_shared": Must only contain any number of valid filenames. + - code:"build_sources_headers_static": Must only contain any number of valid filenames. + - code:"build_sources_library": Must only contain any number of valid filenames. + - code:"build_sources_library_shared": Must only contain any number of valid filenames. + - code:"build_sources_library_static": Must only contain any number of valid filenames. + - code:"build_sources_object": Must only contain any number of valid filenames. + - code:"build_sources_object_shared": Must only contain any number of valid filenames. + - code:"build_sources_object_static": Must only contain any number of valid filenames. + - code:"build_sources_program": Must only contain any number of valid filenames. + - code:"build_sources_program_shared": Must only contain any number of valid filenames. + - code:"build_sources_program_static": Must only contain any number of valid filenames. + - code:"build_sources_script": Must only contain any number of valid filenames. + - code:"build_sources_setting": Must only contain any number of valid filenames. + - code:"build_static": Must only one of: code:"yes" or code:"no". + - code:"defines": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_library": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_library_shared": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_library_static": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_object": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_object_shared": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_object_static": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_program": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_program_shared": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_program_static": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_shared": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"defines_static": Must only contain any number of valid macro names supported by the compiler specified in code:"build_compiler". + - code:"environment": Environment variable names, case-sensitive, usually uppercase. May only contain characters allowed in an environment variable. + - code:"flags": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_library": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_library_shared": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_library_static": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_object": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_object_shared": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_object_static": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_program": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_program_shared": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_program_static": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_shared": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"flags_static": Must only contain any number of parameters supported by the compiler specified in code:"build_compiler". + - code:"has_path_standard": Must only one of: code:"yes" or code:"no". + - code:"modes": Any valid word character, character:'-', or character:'+'. + - code:"modes_default": May only be a single complete Content word defined in code:"modes" Object. + - code:"path_headers": Must be a single valid path. + - code:"path_language": Must be a single valid path. + - code:"path_library_script": Must be a single valid path. + - code:"path_library_shared": Must be a single valid path. + - code:"path_library_static": Must be a single valid path. + - code:"path_object_script": Must be a single valid path. + - code:"path_object_shared": Must be a single valid path. + - code:"path_object_static": Must be a single valid path. + - code:"path_program_script": Must be a single valid path. + - code:"path_program_shared": Must be a single valid path. + - code:"path_program_static": Must be a single valid path. + - code:"path_sources": Must only be a valid directory path or not specified. + - code:"path_sources_object": Must only be a valid directory path or not specified. + - code:"preserve_path_headers": Must only be one of code:"yes" or code:"no". + - code:"process_post": Must contain only a single valid filename. + - code:"process_pre": Must contain only a single valid filename. + - code:"search_exclusive": Must only one of: code:"yes" or code:"no". + - code:"search_shared": Must only one of: code:"yes" or code:"no". + - code:"search_static": Must only one of: code:"yes" or code:"no". + - code:"version_file": Must only be one of: code:"major", code:"minor", code:"micro", or code:"nano". + - code:"version_major": Must only be a single value containing valid filename characters. + - code:"version_major_prefix": Must be zero or more valid filename characters. + - code:"version_micro": Must only be a single value containing valid filename characters. + - code:"version_micro_prefix": Must be zero or more valid filename characters. + - code:"version_minor": Must only be a single value containing valid filename characters. + - code:"version_minor_prefix": Must be zero or more valid filename characters. + - code:"version_nano": Must only be a single value containing valid filename characters. + - code:"version_nano_prefix": Must be zero or more valid filename characters. + - code:"version_target": Must only be one of: code:"major", code:"minor", code:"micro", or code:"nano". - All Object names support having a "-" and a "mode" name, such as "build_libraries-individual" for a mode called "individual", except for the "modes" and the "modes_default" Object names. + All Object names support having a code:"-" and a code:"mode" name, such as code:"build_libraries-individual" for a mode called code:"individual", except for the code:"modes" and the code:"modes_default" Object names. diff --git a/specifications/fss-0000.txt b/specifications/fss-0000.txt index 9dbb6c6..72304f1 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0000.txt +Q -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 a9327c4..d584c82 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0001.txt +Q -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 e030bd6..bb8d325 100644 --- a/specifications/fss-0002.txt +++ b/specifications/fss-0002.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0002.txt +Q -cn "Featureless Settings Specification: 0002 - Basic List" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 0002 - Basic List: diff --git a/specifications/fss-0003.txt b/specifications/fss-0003.txt index 0eb15fb..5d2bb8d 100644 --- a/specifications/fss-0003.txt +++ b/specifications/fss-0003.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0003.txt +Q -cn "Featureless Settings Specification: 0003 - Extended List" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 0003 - Extended List: diff --git a/specifications/fss-0004.txt b/specifications/fss-0004.txt index fa8adf6..4fbc452 100644 --- a/specifications/fss-0004.txt +++ b/specifications/fss-0004.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0004.txt +Q -cn "Featureless Settings Specification: 0004 - Very Basic List" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 0004 - Very Basic List: diff --git a/specifications/fss-0005.txt b/specifications/fss-0005.txt index dce441d..eac68fd 100644 --- a/specifications/fss-0005.txt +++ b/specifications/fss-0005.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0005.txt +Q -cn "Featureless Settings Specification: 0005 - Somewhat Basic List" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 0005 - Somewhat Basic List: diff --git a/specifications/fss-0006.txt b/specifications/fss-0006.txt index d3ed403..5716431 100644 --- a/specifications/fss-0006.txt +++ b/specifications/fss-0006.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0006.txt +Q -cn "Featureless Settings Specification: 0006 - Somewhat Extended List" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 0006 - Somewhat Extended List: diff --git a/specifications/fss-0007.txt b/specifications/fss-0007.txt index 93066f9..fd2dd0f 100644 --- a/specifications/fss-0007.txt +++ b/specifications/fss-0007.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0007.txt +Q -cn "Featureless Settings Specification: 0007 - Very Extended List" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 0007 - Very Extended List: diff --git a/specifications/fss-0008.txt b/specifications/fss-0008.txt index a886973..47f50b3 100644 --- a/specifications/fss-0008.txt +++ b/specifications/fss-0008.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0008.txt +Q -cn "Featureless Settings Specification: 0008 - Embedded List" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 0008 - Embedded List: diff --git a/specifications/fss-0009.txt b/specifications/fss-0009.txt index 8c4a0fb..80da739 100644 --- a/specifications/fss-0009.txt +++ b/specifications/fss-0009.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-0009.txt +Q -cn "Featureless Settings Specification: 0009 - Reverse Mapping" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 0009 - Reverse Mapping: diff --git a/specifications/fss-000a.txt b/specifications/fss-000a.txt index 7472d38..5d8640b 100644 --- a/specifications/fss-000a.txt +++ b/specifications/fss-000a.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-000a.txt +Q -cn "Featureless Settings Specification: 000A - Extended Reverse Mapping" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 000A - Extended Reverse Mapping: diff --git a/specifications/fss-000b.txt b/specifications/fss-000b.txt index 28dced2..50001ae 100644 --- a/specifications/fss-000b.txt +++ b/specifications/fss-000b.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-000b.txt +Q -cn "Featureless Settings Specification: 000B - Simple List" | iki_read +Q -w -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 000B - Simple List: diff --git a/specifications/fss-000c.txt b/specifications/fss-000c.txt index 3ee5013..0c7112b 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 +Q -w -r abbreviation-FSS FSS -WW character '"' '"' code '"' '"' +# iki_read fss-000c.txt +Q -w -r abbreviation-FSS FSS -WWW character "'" "'" code '"' '"' emphasis '"' '"' # # 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 +Q -w -r abbreviation-FSS FSS -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-000c.txt +Q -cn "Featureless Settings Specification: 000C - IKI Text" | iki_read +Q -w -r abbreviation-FSS FSS -WWW character "'" "'" code '"' '"' emphasis '"' '"' # Featureless Settings Specification: 000C - IKI Text: diff --git a/specifications/fss-000d.txt b/specifications/fss-000d.txt index 3609dec..13cdc8a 100644 --- a/specifications/fss-000d.txt +++ b/specifications/fss-000d.txt @@ -3,10 +3,10 @@ # 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 +Q -w -r abbreviation-FSS FSS -WW character '"' '"' code '"' '"' +# 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 +Q -w -r abbreviation-FSS FSS -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-000d.txt +Q -cn "Featureless Settings Specification: 000D - Basic Rule" | iki_read +Q -w -r abbreviation-FSS FSS -WW character "'" "'" code '"' '"' # Featureless Settings Specification: 000D - Basic Rule: diff --git a/specifications/fss-000e.txt b/specifications/fss-000e.txt index 2fb76c2..68e576a 100644 --- a/specifications/fss-000e.txt +++ b/specifications/fss-000e.txt @@ -3,10 +3,10 @@ # 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 +Q -w -rr abbreviation-FLL FLL abbreviation-EOF EOF -WW character '"' '"' code '"' '"' +# iki_read fss-000e.txt +Q -w -rr abbreviation-FLL FLL abbreviation-EOF EOF -WWW character "'" "'" code '"' '"' emphasis '"' '"' # # 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 +Q -w -r abbreviation-FLL FLL abbreviation-EOF EOF -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-000e.txt +Q -cn "Featureless Settings Specification: 000e - Payload" | iki_read +Q -w -r abbreviation-FLL FLL abbreviation-EOF EOF -WWW character "'" "'" code '"' '"' emphasis '"' '"' # Featureless Settings Specification: 000e - Payload: diff --git a/specifications/fss-000f.txt b/specifications/fss-000f.txt index bf486d5..f35d788 100644 --- a/specifications/fss-000f.txt +++ b/specifications/fss-000f.txt @@ -3,10 +3,10 @@ # 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 +Q -w -WW character '"' '"' code '"' '"' +# iki_read fss-000f.txt +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"' # # 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read fss-000f.txt +Q -cn "Featureless Settings Specification: 000f - Simple Packet" | iki_read +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"' # Featureless Settings Specification: 000f - Simple Packet: diff --git a/specifications/fss.txt b/specifications/fss.txt index 14b00c7..a56e5f4 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 +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 '"' '"' +# 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 -WWW character "'" "'" code '"' '"' emphasis '"' '"' # # 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 +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 '"' '"' +# fss_basic_list_read fss.txt +Q -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 -WWW character "'" "'" code '"' '"' emphasis '"' '"' # Featureless Settings Specifications: @@ -142,19 +142,19 @@ Featureless Settings Specifications: 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". The following are core specifications (each with a common name associated with the specification number)\: - - fss-0000: Basic - - fss-0001: Extended - - fss-0002: Basic List - - fss-0003: Extended List - - fss-0004: Very Basic List - - fss-0005: Somewhat Basic List - - fss-0006: Somewhat Extended List - - fss-0007: Very Extended List - - fss-0008: Embedded List - - fss-0009: Reverse Mapping - - fss-000a: Extended Reverse Mapping - - fss-000b: Simple List - - fss-000c: IKI Text - - fss-000d: Basic Rule - - fss-000e: Payload - - fss-000f: Simple Packet + - fss-0000: Basic + - fss-0001: Extended + - fss-0002: Basic List + - fss-0003: Extended List + - fss-0004: Very Basic List + - fss-0005: Somewhat Basic List + - fss-0006: Somewhat Extended List + - fss-0007: Very Extended List + - fss-0008: Embedded List + - fss-0009: Reverse Mapping + - fss-000a: Extended Reverse Mapping + - fss-000b: Simple List + - fss-000c: IKI Text + - fss-000d: Basic Rule + - fss-000e: Payload + - fss-000f: Simple Packet diff --git a/specifications/iki-0000.txt b/specifications/iki-0000.txt index 1fb5034..cbaebe4 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 +Q -w -WW character '"' '"' code '"' '"' +# 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read iki-0000.txt +Q -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 3e83a30..15fc511 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 +Q -w -rrr abbreviation-URI URI abbreviation-URL URL abbreviation-URN URN -WW character '"' '"' code '"' '"' +# 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 +Q -w -rrr abbreviation-URI URI abbreviation-URL URL abbreviation-URN URN -WW character '"' '"' code '"' '"' +# fss_basic_list_read iki-0001.txt +Q -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 dc158c6..a4851b5 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 +Q -w -WW character '"' '"' code '"' '"' +# iki_read iki-0002.txt +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"' # # 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 +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read iki-0002.txt +Q -cn "IKI Specification: 0002 - Simple Script" | iki_read +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"' # IKI Specification: 0002 - Simple Script: diff --git a/specifications/iki.txt b/specifications/iki.txt index c734781..962b879 100644 --- a/specifications/iki.txt +++ b/specifications/iki.txt @@ -3,10 +3,10 @@ # license: open-standard-license-1.0 # # 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 -WW character '"' '"' code '"' '"' +# iki_read iki.txt +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"' # # To read the "IKI Specifications" section of this file, use this command sequence: -# fss_basic_list_read iki.txt -cn "IKI Specifications" | iki_read +Q -w -WW character '"' '"' code '"' '"' +# fss_basic_list_read iki.txt +Q -cn "IKI Specifications" | iki_read +Q -w -WWW character "'" "'" code '"' '"' emphasis '"' '"' # IKI Specifications: -- 1.8.3.1