/*
deletion delete{
//remove a references in the parent field
person {
$id,
parent: [$sid2, $id3]
}
//remove person
person{
$sid
}
}
*/
WHITESPACE = _{ " " | "\t" | "\r" | "\n" }
COMMENT = _{ "//" ~ (!NEWLINE ~ ANY)* ~ NEWLINE }
identifier = @{ (LETTER | NUMBER | "_")+ }
namespace_entity = @{ (LETTER | NUMBER | "_" | ".")+ }
variable = @{ "$" ~ identifier }
entity_name = { namespace_entity ~ (":" ~ namespace_entity)? }
deletion = { SOI ~ deletion_name ~ "{" ~ entity+ ~ "}" ~ EOI }
deletion_name = { "delete" ~ (identifier)? }
entity = { entity_name ~ "{" ~ id_field ~ array_field* ~ "}" }
id_field = { variable }
array_field = { identifier ~ "[" ~ variable ~ ("," ~ variable)* ~ ","? ~ "]" }