This is an automated email from the ASF dual-hosted git repository.

slawrence pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/daffodil-site.git


The following commit(s) were added to refs/heads/master by this push:
     new 8e9fb6a  Update CLI documentation for Daffodil 3.1.0
8e9fb6a is described below

commit 8e9fb6a1faa804d992b2c543fce3c09c293c48d5
Author: John Interrante <[email protected]>
AuthorDate: Sun May 9 15:05:13 2021 -0400

    Update CLI documentation for Daffodil 3.1.0
    
    Fix or disable markdownlint warnings.
    
    Convert list of subcommands to bullets.
    
    Document new "generate" subcommand.
    
    Add CC environment variable, clarifying "test" subcommand will use CC
    environment variable if testing runtime2.  Also mention Daffodil will
    pick first driver command it finds within PATH from a list if CC
    environment variable is not defined.
    
    Compare CLI documentation with Daffodil's in-program CLI help
    information and make them match each other better, such as sorting
    essential usage options first and then rest of options alphabetically.
    
    Proofread CLI documentation and reword some phrases to improve
    readability and consistency.
    
    Remove confusing [{<namespace>}] from -D and -r options.
    
    Remove -p, --path option since Daffodil allows only "/".
    
    Add validator plugin name to validation modes and clarify validation
    mode is not optional anymore.  Remove validation option from
    save-parser since it doesn't support that option.
    
    Rename testname to testnames for consistency.
    
    Add "Defaults to" in more places.
    
    DAFFODIL-817, DAFFODIL-2477
---
 site/cli.md | 256 ++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 154 insertions(+), 102 deletions(-)

diff --git a/site/cli.md b/site/cli.md
index b178aff..5aa146c 100644
--- a/site/cli.md
+++ b/site/cli.md
@@ -21,36 +21,49 @@ See the License for the specific language governing 
permissions and
 limitations under the License.
 {% endcomment %}
 -->
+<!-- markdownlint-disable line-length -->
+<!-- markdownlint-disable no-duplicate-heading -->
 
-The binary Daffodil [releases](/releases) contain a ``/bin`` directory that 
contains two scripts: ``daffodil.bat`` for Windows and ``daffodil`` for Linux. 
These files must be executed on the command line. The general usage is:
+The binary Daffodil [releases](/releases) contain a ``/bin`` directory with 
two scripts: ``daffodil.bat`` for Windows and ``daffodil`` for Linux. These 
files must be executed on the command line. The general usage is:
 
     daffodil [GLOBAL_OPTIONS] <subcommand> [SUBCOMMAND_OPTIONS]
 
-The available subcommands are: [parse](#parse-subcommand), 
[unparse](#unparse-subcommand), [save-parser](#save-parser-subcommand), 
[test](#test-subcommand), and [performance](#performance-subcommand).
+The available subcommands are:
+
+- [parse](#parse-subcommand)
+- [unparse](#unparse-subcommand)
+- [save-parser](#save-parser-subcommand)
+- [test](#test-subcommand)
+- [performance](#performance-subcommand)
+- [generate](#generate-subcommand)
 
 ### Environment Variables
 
-Setting environment variables may be necessary to allow for importing/includes 
to work and when running TDML files.
+Setting environment variables may be necessary to allow imports, includes, and 
running TDML files to work.
 
 ``DAFFODIL_CLASSPATH``
 
-   : The Daffodil CLI will look on the classpath for includes and imports, 
jars containing schemas, and some TDML files. To define additional directories 
specific to Daffodil to look for files, set the ``DAFFODIL_CLASSPATH`` 
environment variable, for example:
+   : Daffodil will search its classpath for includes and imports, jars 
containing schemas, and some TDML files. To tell Daffodil to look for files in 
additional directories, set the ``DAFFODIL_CLASSPATH`` environment variable, 
for example:
 
-         $ export DAFFODIL_CLASSPATH="/path/to/imports/:/path/to/includes/"
+         export DAFFODIL_CLASSPATH="/path/to/imports/:/path/to/includes/"
 
-     In addition to defining directories to search for imports and includes, 
you can add a CatalogManager.properties file to the ``DAFFODIL_CLASSPATH`` to 
direct Daffodil to a relative path location of a user XML Catalog.
+     In addition to defining directories to search for imports and includes, 
you can add a CatalogManager.properties file to ``DAFFODIL_CLASSPATH`` to 
direct Daffodil to a relative path location of a user XML Catalog.
 
 ``DAFFODIL_JAVA_OPTS``
 
    : If you need to specify java options specific to Daffodil, you can set the 
``DAFFODIL_JAVA_OPTS`` environment variable. If not specified, the 
``JAVA_OPTS`` environment variable will be used. If that is not specified, 
reasonable defaults for Daffodil will be used.
 
+``CC``
+
+   : If you need to specify which C compiler should be called when running 
TDML files with the ``test`` subcommand using Daffodil's runtime2 backend, you 
can set the ``CC`` environment variable. If that environment variable is not 
specified, then Daffodil will call the first C compiler driver command it finds 
within the ``PATH`` environment variable from the following list: "zig cc", 
"cc", "clang", "gcc" (in that order). The reason for "zig cc" coming first is 
because [zig cc](https://an [...]
+
 ### Global Options
 
 ``-d, --debug [FILE]``
 
    : Enable the interactive debugger. See the [Interactive 
Debugger](/debugger) documentation for more information.
 
-     The optional ``FILE`` argument contains a list of debugger commands that 
are provided to the debugger as they were typed by the user.
+     The optional ``FILE`` argument contains a list of debugger commands that 
are provided to the debugger as if they were typed by the user.
 
      This option cannot be used with the ``--trace`` option.
 
@@ -62,15 +75,15 @@ Setting environment variables may be necessary to allow for 
importing/includes t
 
 ``-v, --verbose``
 
-   : Enable verbose mode and increment verbosity level. Each additional v 
provides a new level of information.
+   : Enable verbose mode and increment verbosity level. Each additional ``-v`` 
provides a new level of information.
 
 ``--version``
 
-   : Display the version of Daffodil.
+   : Display Daffodil's version.
 
-``--help``
+``-h, --help``
 
-   : Display help message.
+   : Display a help message.
 
 ### Parse Subcommand
 
@@ -78,9 +91,10 @@ Parse a file, using either a DFDL schema or a saved parser.
 
 #### Usage
 
-    daffodil parse (-s <schema> [-r [{<namespace>}]<root>] [-p <path>] | -P 
<parser>)
-                   [-D[{namespace}]<variable>=<value>...] 
[-T<tunable>=<value>] [-o <output>]
-                   [-V [mode]] [-c <file>] [-I <infoset_type>] [infile]
+    daffodil parse (-s <schema> [-r <root>] | -P <parser>)
+                   [-c <file>] [-D<variable>=<value>...] [-I <infoset_type>]
+                   [-o <output>] [--stream] [-T<tunable>=<value>...] [-V 
<mode>]
+                   [infile]
 
 #### Options
 
@@ -88,9 +102,9 @@ Parse a file, using either a DFDL schema or a saved parser.
 
    : XML file containing configuration items, such as external variables or 
Daffodil tunables. See [Configuration](/configuration) for details on the file 
format.
 
-``-D [{NAMESPACE}]VARIABLE=VALUE``
+``-D VARIABLE=VALUE``
 
-   : Variables to be used when parsing. ``VARIABLE`` can be prefixed with 
``{NAMESPACE}`` to define which namespace the variable belongs in, for example:
+   : Variables to be used when parsing. A namespace may be specified by 
prefixing ``VARIABLE`` with ``{NAMESPACE}``, for example:
 
      ```-D{http://example.com}var1=var```
 
@@ -100,19 +114,15 @@ Parse a file, using either a DFDL schema or a saved 
parser.
 
 ``-o, --output FILE``
 
-   : Write output to a given ``FILE``. If the option is not given or ``FILE`` 
is -, output is written to standard out.
+   : Output file to write the infoset to. If the option is not given or 
``FILE`` is -, the infoset is written to standard output.
 
 ``-P, --parser FILE``
 
-   : Use a previously saved parser, created using the save-parser subcommand. 
This option cannot be used with the ``--schema`` option or with the 
``--validate`` option set to ``on``.
-
-``-p, --path PATH``
+   : Use a previously saved parser inside ``FILE``, created using the 
``save-parser`` subcommand. This option cannot be used with the ``--schema`` 
option or with the ``--validate`` option set to ``on``.
 
-   : The path to the node from the root element to create the parser from.
+``-r, --root ROOT``
 
-``-r, --root [{NAMESPACE}]ROOT``
-
-   : The root element of the DFDL schema to use. This must be one of the 
top-level elements of the schema defined with ``--schema``. This requires the 
``--schema`` option to be defined. If not supplied, the first element of the 
schema defined with ``--schema`` is used. A namespace may be specified by 
prefixing ``ROOT`` with ``{NAMESPACE}``.
+   : The root element to use. This must be one of the top-level elements of 
the DFDL schema defined with ``--schema``. This requires the ``--schema`` 
option to be defined. Defaults to the schema's first top-level element if not 
provided. A namespace may be specified by prefixing ``ROOT`` with 
``{NAMESPACE}``.
 
 ``-s, --schema FILE``
 
@@ -122,25 +132,29 @@ Parse a file, using either a DFDL schema or a saved 
parser.
 
    : Rather than throwing an error when left over data exists after a parse, 
repeat the parse with the remaining data. Parsing repeats until end of data is 
reached, an error occurs, or no data is consumed. Output infosets are separated 
by a NUL character.
 
+``--nostream``
+
+   : Stop after the first parse, throwing an error if left over data exists. 
This is the default behavior.
+
 ``-T TUNABLE=VALUE``
 
-   : Modify Daffodil configuration options to change parsing behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
+   : Tunable configuration options to change Daffodil's behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
 
-``-V, --validate [MODE]``
+``-V, --validate MODE``
 
-   : The validation mode. ``MODE`` must be one of ``on``, ``limited`` or 
``off``. If ``MODE`` is not provided, defaults to ``on``. If ``--validate`` is 
not provided, defaults to ``off``. ``MODE`` cannot be ``on`` when used with the 
``--parser`` option.
+   : The validation mode. ``MODE`` must be one of ``on``, ``limited``, 
``off``, or a validator plugin name. Defaults to ``off`` if not provided. 
Validator plugins are provided by SPI and are referenced here using the 
``name`` defined by the plugin. ``MODE`` cannot be ``on`` when used with the 
``--parser`` option.
 
 ``[INFILE]``
 
-   : Input file to parse. If not specified, or is a value of -, reads from 
standard in. If supplied, this must be the last option on the command line.
+   : Input file to parse. If not specified, or is a value of -, reads from 
standard input. If supplied, the input file must be the last option on the 
command line.
 
-``--help``
+``-h, --help``
 
-   : Display help message.
+   : Display a help message.
 
 #### Example
 
-    $ daffodil parse -s csv.dfdl.xsd test_file.csv
+    daffodil parse -s csv.dfdl.xsd test_file.csv
 
 ### Unparse Subcommand
 
@@ -148,9 +162,10 @@ Unparse an infoset file, using either a DFDL schema or a 
saved parser.
 
 #### Usage
 
-    daffodil unparse (-s <schema> [-r [{<namespace>}]<root>] [-p <path>] | -P 
<parser>)
-                     [-D[{<namespace>}]<variable>=<value>...] 
[-T<tunable>=<value>] [-o <output>]
-                     [-V [mode]] [-c <file>] [-I <infoset_type>] [infile]
+    daffodil unparse (-s <schema> [-r <root>] | -P <parser>)
+                     [-c <file>] [-D<variable>=<value>...] [-I <infoset_type>]
+                     [-o <output>] [--stream] [-T<tunable>=<value>...] [-V 
<mode>]
+                     [infile]
 
 #### Options
 
@@ -158,9 +173,9 @@ Unparse an infoset file, using either a DFDL schema or a 
saved parser.
 
    : XML file containing configuration items, such as external variables or 
Daffodil tunables. See [Configuration](/configuration) for details on the file 
format.
 
-``-D [{NAMESPACE}]VARIABLE=VALUE``
+``-D VARIABLE=VALUE``
 
-   : Variables to be used when unparsing. ``VARIABLE`` can be prefixed with 
``{NAMESPACE}`` to define which namespace the variable belongs in, for example:
+   : Variables to be used when unparsing. A namespace may be specified by 
prefixing ``VARIABLE`` with ``{NAMESPACE}``, for example:
 
      ```-D{http://example.com}var1=var```
 
@@ -170,19 +185,15 @@ Unparse an infoset file, using either a DFDL schema or a 
saved parser.
 
 ``-o, --output FILE``
 
-   : Write output to a give ``FILE``. If the option is not given or ``FILE`` 
is -, output is written to standard out.
+   : Output file to write the data to. If the option is not given or ``FILE`` 
is -, the data is written to standard output.
 
 ``-P, --parser FILE``
 
-   : Use a previously saved parser, created using the save-parser subcommand. 
This option cannot be used with the ``--schema`` option or with the 
``--validate`` option set to ``on``.
-
-``-p, --path PATH``
-
-   : The path to the node from the root element to create the parser from.
+   : Use a previously saved parser inside ``FILE``, created using the 
``save-parser`` subcommand. This option cannot be used with the ``--schema`` 
option or with the ``--validate`` option set to ``on``.
 
-``-r, --root [{NAMESPACE}]ROOT``
+``-r, --root ROOT``
 
-   : The root element of the DFDL schema to use. This must be one of the 
top-level elements of the schema defined with ``--schema``. This requires the 
``--schema`` option to be defined. If not supplied, the first element of the 
schema defined with ``--schema`` is used. A namespace may be specified by 
prefixing the ``ROOT`` with {NAMEAPSCE}.
+   : The root element to use. This must be one of the top-level elements of 
the DFDL schema defined with ``--schema``. This requires the ``--schema`` 
option to be defined. Defaults to the schema's first top-level element if not 
provided. A namespace may be specified by prefixing ``ROOT`` with 
``{NAMESPACE}``.
 
 ``-s, --schema FILE``
 
@@ -192,24 +203,29 @@ Unparse an infoset file, using either a DFDL schema or a 
saved parser.
 
    : Split the input data at NUL characters and unparse each chunk separately 
to the same output file.
 
+``--nostream``
+
+   : Treat the entire input data as one infoset. This is the default behavior.
+
 ``-T TUNABLE=VALUE``
 
-   : Modify Daffodil configuration options to change parsing behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
+   : Tunable configuration options to change Daffodil's behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
 
-``-V, --validate [MODE]``
+``-V, --validate MODE``
 
-  : The validation mode. ``MODE`` must be one of ``on``, ``limited`` or 
``off``. If ``MODE`` is not provided, defaults to ``on``. If ``--validate`` is 
not provided, defaults to ``off``. ``MODE`` cannot be ``on`` when used with the 
``--parser`` option.
+   : The validation mode. ``MODE`` must be one of ``on``, ``limited``, 
``off``, or a validator plugin name. Defaults to ``off`` if not provided. 
Validator plugins are provided by SPI and are referenced here using the 
``name`` defined by the plugin. ``MODE`` cannot be ``on`` when used with the 
``--parser`` option.
 
 ``[INFILE]``
 
-   : Input file to unparse. If not specified, or is a value of -, reads from 
standard in. If supplied, this must be the last option on the command line.
+   : Input file to unparse. If not specified, or is a value of -, reads from 
standard input. If supplied, the input file must be the last option on the 
command line.
 
-``--help``
-   : Display help message.
+``-h, --help``
+
+   : Display a help message.
 
 #### Example
 
-    $ daffodil unparse -s csv.dfdl.xsd test_file.infoset
+    daffodil unparse -s csv.dfdl.xsd test_file.infoset
 
 ### Save Parser Subcommand
 
@@ -217,7 +233,9 @@ Save a parser that can be reused for parsing and unparsing.
 
 #### Usage
 
-    daffodil save-parser -s <schema> [-r [{namespace}]<root>] [-p <path>] 
[outfile]
+    daffodil save-parser -s <schema> [-r <root>]
+                        [-c <file>] [-D<variable>=<value>...] 
[-T<tunable>=<value>...]
+                        [outfile]
 
 #### Options
 
@@ -225,19 +243,15 @@ Save a parser that can be reused for parsing and 
unparsing.
 
    : XML file containing configuration items, such as external variables or 
Daffodil tunables. See [Configuration](/configuration) for details on the file 
format.
 
-``-D [{NAMESPACE}]VARIABLE=VALUE``
+``-D VARIABLE=VALUE``
 
-   : Variables to be used when parsing. ``VARIABLE`` can be prefixed with 
``{NAMESPACE}`` to define which namespace the variable belongs in, for example:
+   : Variables to be used when parsing or unparsing. A namespace may be 
specified by prefixing ``VARIABLE`` with ``{NAMESPACE}``, for example:
 
      ```-D{http://example.com}var1=var```
 
-``-p, --path PATH``
-
-   : The path to the node from the root element to create the parser from.
+``-r, --root ROOT``
 
-``-r, --root [{NAMESPACE}]ROOT``
-
-   : The root element of the DFDL schema to use. This must be one of the 
top-level elements of the schema defined with ``--schema``. This requires the 
``--schema`` option to be defined. If not supplied, the first element of the 
schema defined with ``--schema`` is used. A namespace may be specified by 
prefixing ``ROOT`` with ``{NAMESPACE}``.
+   : The root element to use. This must be one of the top-level elements of 
the DFDL schema defined with ``--schema``. This requires the ``--schema`` 
option to be defined. Defaults to the schema's first top-level element if not 
provided. A namespace may be specified by prefixing ``ROOT`` with 
``{NAMESPACE}``.
 
 ``-s, --schema FILE``
 
@@ -245,23 +259,19 @@ Save a parser that can be reused for parsing and 
unparsing.
 
 ``-T TUNABLE=VALUE``
 
-   : Modify Daffodil configuration options to change parsing behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
-
-``-V, --validate MODE``
-
-   : The validation mode. ``MODE`` must be either ``limited`` or ``off``. 
``MODE`` is required. If ``--validate`` is not present, defaults to ``off``. 
``MODE`` cannot be set to ``on`` as possible in other commands.
+   : Tunable configuration options to change Daffodil's behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
 
 ``[OUTFILE]``
 
-   : Write the parser to a give file. If the option is not given or is -, 
output is written to standard out. If supplied, this must be the last option on 
the command line.
+   : Output file to save the parser to. If the option is not given or is -, 
the parser is saved to standard output. If supplied, the output file must be 
the last option on the command line.
 
-``--help``
+``-h, --help``
 
-   : Display help message.
+   : Display a help message.
 
 #### Example
 
-    $ daffodil save-parser -s csv.dfdl.xsd csv_parser.xml
+    daffodil save-parser -s csv.dfdl.xsd csv_parser.xml
 
 ### Test Subcommand
 
@@ -269,47 +279,49 @@ List or execute tests in a TDML file.
 
 #### Usage
 
-    daffodil test [-l] [-r] [-i] <tdmlfile> [testname...]
+    daffodil test [-l] [-r] [-i] <tdmlfile> [testnames...]
 
 #### Options
 
 ``-i, --info``
 
-   : Increment test result information output level, one level for each 
occurrence of -i.
+   : Increment test result information output level, one level for each -i.
 
 ``-l, --list``
 
-   : Show names and descriptions in a TDML file instead of running them.
+   : Show names and descriptions of test cases in a TDML file instead of 
running them.
 
 ``-r, --regex``
 
-   : Treat ``TESTNAME``s as regular expressions.
+   : Treat ``TESTNAMES...`` as regular expressions.
 
 ``TDMLFILE``
 
    : Test Data Markup Language (TDML) file.
 
-``[TESTNAME...]``
+``[TESTNAMES...]``
 
-   : Name of one or more test case in the TDML file. If not given, all tests 
in ``TDMLFILE`` are run.
+   : Name(s) of test cases in the TDML file. If not given, all tests in 
``TDMLFILE`` are run.
 
-``--help``
+``-h, --help``
 
-   : Display help message.
+   : Display a help message.
 
 #### Example
 
-    $ daffodil test csv.tdml
+    daffodil test csv.tdml
 
 ### Performance Subcommand
 
-Run a performance test (parse or unparse), using either a DFDL schema or a 
saved parser
+Run a performance test (parse or unparse), using either a DFDL schema or a 
saved parser.
 
 #### Usage
 
-    daffodil performance (-s <schema> [-r [{namespace}]<root>] [-p <path>] |  
-P <parser)
-                         [-u] [-V[mode]] [-N <number>] [-t <threads>]
-                         [-D[{namespace}]<variable>=<value>] [-I 
<infoset_type>] <infile>
+    daffodil performance (-s <schema> [-r <root>] | -P <parser>)
+                         [-c <file>] [-D<variable>=<value>...] [-I 
<infoset_type>]
+                         [-N <number>] [-t <threads>] [-T<tunable>=<value>...]
+                         [-u] [-V <mode>]
+                         <infile>
 
 #### Options
 
@@ -317,31 +329,27 @@ Run a performance test (parse or unparse), using either a 
DFDL schema or a saved
 
    : XML file containing configuration items, such as external variables or 
Daffodil tunables. See [Configuration](/configuration) for details on the file 
format.
 
-``-D [{NAMESPACE}]VARIABLE=VALUE``
+``-D VARIABLE=VALUE``
 
-   : Variables to be used when parsing. ``VARIABLE`` can be prefixed with 
``{NAMESPACE}`` to define which namespace the variable belongs in, for example:
+   : Variables to be used when parsing or unparsing. ``VARIABLE`` can be 
prefixed with ``{NAMESPACE}`` to define which namespace the variable belongs 
in, for example:
 
      ```-D{http://example.com}var1=var```
 
 ``-I, --infoset-type TYPE``
 
-   : Infoset type to parse/unparse. ``TYPE`` must be one of ``xml``, 
``scala-xml``, ``json``, ``jdom``, ``sax``, or ``null``. Defaults to ``xml`` if 
not provided. Note that ``null`` is not valid if the ``--unparse`` option is 
provided.
+   : Infoset type to output or unparse. ``TYPE`` must be one of ``xml``, 
``scala-xml``, ``json``, ``jdom``, ``sax``, or ``null``. Defaults to ``xml`` if 
not provided. Note that ``null`` is not valid if the ``--unparse`` option is 
provided.
 
 ``-N, --number NUMBER``
 
-   : Total number of files to process. Defaults to 1.
+   : The total number of files to process. Defaults to 1.
 
 ``-P, --parser FILE``
 
-   : Use a previously saved parser, created using the save-parser subcommand. 
This option cannot be used with the ``--schema`` option or with the 
``--validate`` option set to ``on``.
-
-``-p, --path PATH``
+   : Use a previously saved parser inside ``FILE``, created using the 
``save-parser`` subcommand. This option cannot be used with the ``--schema`` 
option or with the ``--validate`` option set to ``on``.
 
-   : The path to the node from the root element to create the parser from.
+``-r, --root ROOT``
 
-``-r, --root [{NAMESPACE}]ROOT``
-
-   : The root element of the DFDL schema to use. This must be one of the 
top-level elements of the schema defined with ``--schema``. This requires the 
``--schema`` option to be defined. If not supplied, the first element of the 
schema defined with ``--schema`` is used. A namespace may be specified by 
prefixing ``ROOT`` with ``{NAMESPACE}``.
+   : The root element to use. This must be one of the top-level elements of 
the DFDL schema defined with ``--schema``. This requires the ``--schema`` 
option to be defined. Defaults to the schema's first top-level element if not 
provided. A namespace may be specified by prefixing ``ROOT`` with 
``{NAMESPACE}``.
 
 ``-s, --schema FILE``
 
@@ -353,24 +361,68 @@ Run a performance test (parse or unparse), using either a 
DFDL schema or a saved
 
 ``-T TUNABLE=VALUE``
 
-   : Modify Daffodil configuration options to change processing behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
+   : Tunable configuration options to change Daffodil's behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
 
 ``-u, --unparse``
 
-   : Perform unparse instead of parse for performance.
+   : Perform unparse instead of parse for performance test.
 
-``-V, --validate [MODE]``
+``-V, --validate MODE``
 
-   : The validation mode. ``on``, ``limited`` or ``off``. If ``MODE`` is not 
provided, defaults to ``on``. If ``--validate`` is not provided, defaults to 
``off``. ``MODE`` cannot be ``on`` when used with the ``--parser`` option.
+   : The validation mode. ``MODE`` must be one of ``on``, ``limited``, 
``off``, or a validator plugin name. Defaults to ``off`` if not provided. 
Validator plugins are provided by SPI and are referenced here using the 
``name`` defined by the plugin. ``MODE`` cannot be ``on`` when used with the 
``--parser`` option.
 
-``[INFILE]``
+``INFILE``
+
+   : Input file or directory containing input files to parse or unparse. 
Required argument.
+
+``-h, --help``
+
+   : Display a help message.
+
+#### Example
+
+    daffodil performance -s csv.dfdl.xsd -N 1000 -t 5 test_file.csv
+
+### Generate Subcommand
+
+Generate C code from a DFDL schema to parse or unparse data.
+
+#### Usage
+
+    daffodil generate <language> [SUBCOMMAND_OPTS]
+
+    --- there is only one choice for <language> at this time ---
+
+    daffodil generate c -s <schema> [-r <root>]
+                        [-c <file>] [-T<tunable>=<value>...]
+                        [outdir]
+
+#### Options
+
+``-c, --config FILE``
+
+   : XML file containing configuration items, such as external variables or 
Daffodil tunables. See [Configuration](/configuration) for details on the file 
format.
+
+``-r, --root ROOT``
+
+   : The root element to use. This must be one of the top-level elements of 
the DFDL schema defined with ``--schema``. This requires the ``--schema`` 
option to be defined. Defaults to the schema's first top-level element if not 
provided. A namespace may be specified by prefixing ``ROOT`` with 
``{NAMESPACE}``.
+
+``-s, --schema FILE``
+
+   : The annotated DFDL schema to use to generate C code. This option must be 
supplied.
+
+``-T TUNABLE=VALUE``
+
+   : Tunable configuration options to change Daffodil's behavior. See 
[Configuration](/configuration) for the list of tunable parameters.
+
+``[OUTDIR]``
 
-   : Input file or directory containing files to process
+   : The output directory in which to create or replace a `c` subdirectory 
containing the generated C code. If the option is not given, a `c` subdirectory 
within the current directory will be created/replaced. If supplied, the output 
directory must be the last option on the command line.
 
-``--help``
+``-h, --help``
 
-   : Display help message.
+   : Display a help message.
 
 #### Example
 
-    $ daffodil performance -s csv.dfdl.xsd -N 1000 -t 5 test_file.csv
+    daffodil generate c -s csv.dfdl.xsd

Reply via email to