Skip to main content
Version: 1.2.0

Configuration BNF

All DataStream configuration files in YAML format conform to the following syntax:

comp-decl
::= <comp-type> ":" <NEWLINE> <INDENT> <comp-def>
comp-type
::= "devices" | "targets" | "pipelines" | "routes"
comp-def
::= <id-fld-def> <fld-defs>
id-fld-def
::= "-" <id> ":" <id>
fld-defs
::= <fld-def> [<NEWLINE> <INDENT> <fld-def>]*
fld-def
::= <fld-name> ":" <fld-vals>
fld-vals
::= <fld-val> | <inline-list> | <block-list>
inline-list
::= "[" <fld-val> ("," <fld-val>)* "]"
block-list
::= (<NEWLINE> <INDENT> "-" <fld-val>)+
fld-val
::= txt-val | num-val
txt-val
::= (<txt-char> | <num-char>)+
num-val
::= ('-' | '+')? <num-char>+
txt-char
::= 'a' .. 'z' | 'A' .. 'Z' | '_'
num-char
::= '0' .. '9'
<NEWLINE>
::= '\n' | "\r\n"
<INDENT>*
::= '\t' | [' ']{2,}
important

* Users may choose tabs or multiple spaces for indentation. However, the pattern must be consistent in all configuration files, and follow the kayout given in the code samples found throughout this guide.