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,} |
Indentation Rule
* Users may choose tabs or multiple spaces for indentation. However, the pattern must be consistent in all configuration files, and follow the layout given in the code samples found throughout this guide.