Node:GDB/MI Input Syntax, Next:GDB/MI Output Syntax, Up:GDB/MI Command Syntax

#### GDB/MI Input Syntax

``command`==>`
  ``cli-command`|` mi-command``
``cli-command`==>`
  `[` token`]` cli-command`` nl``, where cli-command is any existing GDB CLI command.
``mi-command`==>`
  `[` token`] "-"` operation`( " "` option`)* [ " --" ] ( " "` parameter`)*` nl``
``token`==>`
  "any sequence of digits"
``option`==>`
  `"-"` parameter`[ " "` parameter`]`
``parameter`==>`
  ``non-blank-sequence`|` c-string``
``operation`==>`
  any of the operations described in this chapter
``non-blank-sequence`==>`
  anything, provided it doesn't contain special characters such as "-", nl, """ and of course " "
``c-string`==>`
  `"""` seven-bit-iso-c-string-content`"""`
``nl`==>`
  `CR | CR-LF`

Notes:

- The CLI commands are still handled by the MI interpreter; their output is described below.
- The ``token``, when present, is passed back when the command finishes.
- Some MI commands accept optional arguments as part of the parameter list. Each option is identified by a leading `-` (dash) and may be followed by an optional argument parameter. Options occur first in the parameter list and can be delimited from normal parameters using `--` (this is useful when some parameters begin with a dash).

Pragmatics:

- We want easy access to the existing CLI syntax (for debugging).
- We want it to be easy to spot a MI operation.