Expand description
§ControlMap Parser
controlmap_parser
is a minimal parser for controlmap.txt files.
§EBNF
<file> ::= <line>*
<line> ::= <comment-line>
| <event-line>
| <blank-line>
<comment-line> ::= "//" <string>
<event-line> ::= <event-name> "\t"+ <keyboard-id> "\t"+ <mouse-id> "\t"+ <gamepad-id> "\t"+ <remap-key> "\t"+ <remap-mouse> "\t"+ <remap-gamepad> "\t"+ [<event-binary-flag>] <new-line>
<event-name> ::= <string>
<keyboard-id> ::= <key-map>
<mouse-id> ::= <key-map>
<gamepad-id> ::= <key-map>
<remap-key> ::= "1" | "0"
<remap-mouse> ::= "1" | "0"
<remap-gamepad> ::= "1" | "0"
<event-binary-flag> ::= <hexadecimal>
<blank-line> ::= <new-line>
# KeyMap
<key-map> ::= <key-alias> | <key-or> | <key-and> | <hexadecimal>
<key-alias> ::= "!0," <event-name>
<key-or> ::= <key-map> "," <key-map>
<key-and> ::= <key-id> "+" <key-id>
<key-id> ::= <hexadecimal>
# primitives
<new-line> ::= "\r"? "\n"
<string> ::= Any valid string
<hexadecimal> ::= "0x" (<hex-digit>)+
<hex-digit> ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" |
"a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F"
Structs§
- Event
Line - One line event
Enums§
Functions§
- control_
map_ parser - parse controlmap.txt