diff options
| author | 2026-02-16 21:37:31 +0300 | |
|---|---|---|
| committer | 2026-02-17 20:13:24 +0300 | |
| commit | d3fd3ba6f9796df96ec4eae9124a460fbb05eb59 (patch) | |
| tree | 57803d91f8ae7bd3085b0b393bdf81bcc2ac0dfa /config.ebnf | |
| download | conf-d3fd3ba6f9796df96ec4eae9124a460fbb05eb59.tar.gz conf-d3fd3ba6f9796df96ec4eae9124a460fbb05eb59.tar.bz2 conf-d3fd3ba6f9796df96ec4eae9124a460fbb05eb59.tar.xz conf-d3fd3ba6f9796df96ec4eae9124a460fbb05eb59.zip | |
init
Diffstat (limited to '')
| -rw-r--r-- | config.ebnf | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/config.ebnf b/config.ebnf new file mode 100644 index 0000000..965c5c7 --- /dev/null +++ b/config.ebnf @@ -0,0 +1,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|#.*` . |
