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.