|
|
|
@ -84,11 +84,11 @@ relation_named_apply = {relation_ident ~ "{" ~ named_apply_args ~ validity_claus
|
|
|
|
|
relation_apply = {relation_ident ~ "[" ~ apply_args ~ validity_clause? ~ "]"}
|
|
|
|
|
search_apply = {search_index_ident ~ "{" ~ named_apply_args ~ "|" ~ (index_opt_field ~ ",")* ~ index_opt_field? ~ "}"}
|
|
|
|
|
|
|
|
|
|
disjunction = {(atom ~ "or" )* ~ atom}
|
|
|
|
|
disjunction = {(atom ~ WHITESPACE+ ~ "or" ~ WHITESPACE+ )* ~ atom}
|
|
|
|
|
atom = _{ negation | relation_named_apply | relation_apply | search_apply | rule_apply | unify_multi | unify | expr | grouped}
|
|
|
|
|
unify = {var ~ "=" ~ expr}
|
|
|
|
|
unify_multi = {var ~ "in" ~ expr}
|
|
|
|
|
negation = {"not" ~ atom}
|
|
|
|
|
unify_multi = {var ~ WHITESPACE+ ~ "in" ~ WHITESPACE+ ~ expr}
|
|
|
|
|
negation = {"not" ~ WHITESPACE+ ~ atom}
|
|
|
|
|
apply = {ident ~ "(" ~ apply_args ~ ")"}
|
|
|
|
|
apply_args = {(expr ~ ",")* ~ expr?}
|
|
|
|
|
named_apply_args = {(named_apply_pair ~ ",")* ~ named_apply_pair?}
|
|
|
|
|