
  usage: hid [-i] [--import-xml] <command> [<options>] <input-file>

  With the option '-i' specfied, the <input-file> is modified in place.

  By specifying '-' as <input-file>, the tool reads from stdin.

  available commands:

    hid [-i] format <input-file>

      Print formatted HID data. Alternatively to the HID syntax used
      by default, the output format can be defined via:

      --output-tcl  Print HID structure as Tcl list with each HID node
                    represented as a list of the following structure:

                    { type padding line prespace anchor doc attributes
                      children quoted annotation }

                    The 'children' element is a list of HID nodes.
                    The 'attributes' element is a list of attributes
                    each represented as a list as follow:

                    { line prespace tag align value annotation }

      --output-xml  Print HID structure as XML

    hid subnodes <node-path> <input-file>

      Query nodes from HID structure. The <node-path> describes the
      targeted sub trees within the hierarchy as a sequence of HID
      nodes separated by '| +'.

      Each HID node can be followed by optional attribute filters
      in the form of '| <tag>: <value>', which are interpreted as
      conditions for the match. If multiple attributes are specified,
      each condition must apply.

      Example:

      $ hid subnodes 'config | + start terminal | + route' <input-file>

      Prints the 'route' subnode of the 'start' node named 'terminal'.

    hid get <attr-path> <input-file>

      Query attribute value(s) from HID structure. The <attr-path>
      consists of a <node-path> followed by '| : <tag>' denoting the
      tag to retrieve.

      Example:

      $ hid get 'config | + start | : name' <input-file>

      Prints the name of each 'start' node found in 'config'.

    hid [-i] set <attr-def> <input-file>

      Set the attribute value(s) specified by <attr-def>, which is
      a <node-path> followed by the delimiter '| :' followed by
      one or more attribute definitions. Each definition has the
      form '<tag>: <value>' and is separated from the next one by '|'.

      Example:

      $ hid set 'config | + start vfs | : caps: 100 | ram: 16M' <input-file>

      Sets the attributes 'caps' and 'ram' of the 'start' node named
      'vfs' to the values 100 and 16M respectively.

    hid [-i] remove <node-path>

      Remove the node(s) specified by the <node-path>.

      Example:

      $ hid remove 'config | + start | + route' <input-file>

      Removes all 'route' sub nodes from each 'start' node hosted
      at the 'config'.

    hid [-i] disable <node-path>

      Mark nodes specified by <node-path> as disabled, which turns the
      node anchor from '+' to 'x'.

      Example:

      $ hid disable 'config | + start terminal' <input-file>

      Turns the node anchor of the terminal's 'start' node to an 'x'.

    hid [-i] enable <node-path>

      Revert the enabled state of nodes addressed by the <node-path>.

    hid check [--hsd-dir <hsd-dir>] [--schema <hsd-file>] <input-file>

      Validate the consistency of <input-file>

      With no schema specified, the command looks out for syntax
      violations and ambigouos attributes. By specifying a schema,
      those basic checks are supplemented with the validation against
      the structural and grammatical rules described in the <hsd-file>.

