mintrix/mintrix-common/src/message.pest

25 lines
578 B
Plaintext

line = _{ SOI ~ line_inner ~ EOI }
line_inner = { command ~ "(" ~ arg* ~ ")" ~ rest }
command = { ident }
arg = { pos_arg | named_arg }
pos_arg = { ident | string }
named_arg = ${ ident ~ "=" ~ pos_arg }
rest = @{ ":" ~ rest_char* }
rest_char = {
!("\n" | "\\") ~ ANY
| "\\" ~ "\n"
}
ident = @{ ASCII_ALPHA ~ (ASCII_ALPHANUMERIC | "-" | "_")* }
string = ${ "\"" ~ string_inner ~ "\"" }
string_inner = @{ string_char* }
string_char = {
!("\"" | "\\") ~ ANY
| "\\" ~ ("\"" | "\\" | "/" | "b" | "f" | "n" | "r" | "t")
| "\\" ~ ("u" ~ ASCII_HEX_DIGIT{4})
}