aboutsummaryrefslogtreecommitdiff
path: root/config.ebnf
blob: 965c5c74821083efbfe50c27929f07b3f29190ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Config          = Doc .
Doc             = Stmt { Stmt } .
Stmt            = Word (Assignment | Command) .

# Statements
Assignment      = "=" Values br .
Command         = [Values] ( Body | br ) .

# Value types
Values          = Value {Value} .
Value           = Word | String | Number | Boolean .
Body            = lbrace [ Doc ] rbrace .

# Atoms
Word            = word .
Number          = number .
Boolean         = boolean .
String          = str .

# Primitives
word            = `[a-zA-Z_][a-zA-Z0-9_]*` .
number          =  `-?[0-9]+(\.[0-9]+)?` .
boolean         = `true|false` .
str             = `"[^"]*"` | `'[^']*'` | '`' { `[^\x60]` } '`' .
lbrace          = "{" .
rbrace          = "}" .
br              = ";" .
white_space     = ` |\t|\r|\n|#.*` .