_seps: "/(),.:='"

16 rule = [rel:"res" .w? ":-" .w? .s!([.w? "," .w?] rel:"arg") .w? "."]
15 inner = ["." term:"arg"]
14 app = [.._seps!:"f" .w? "(" .w? term:"arg" .w? ")"]
13 amb_role = ["amb_role" .w? "(" .w?
  term:"a" .w? "," .w? term:"b1" .w? "," .w? term:"b2" .w? ")"]
12 comment = ["//" ..."\n"?]
11 amb_rel = ["amb_rel" .w? "(" .w?
  term:"a" .w? "," .w? term:"b1" .w? "," .w? term:"b2" .w? ")"]
10 has = [term_no_app:"f" .w? "(" .w? term:"arg" .w? ")" .w? "=>" .w? term:"res"]
9 ava = [.._seps!:"avatar" "'" .w? "(" .w? term:"core" .w? ")"]
8 uniq = ["uniq " .w? term:"arg"]
7 eq = [term_no_app:"f" .w? "(" .w? term:"arg" .w? ")" .w? "=" .w? term:"res"]
6 rel = ["(" .w? term:"a" .w? "," .w? term:"b" .w? ")"]
5 sym = .._seps!:"val"
4 role_of = {
  ["role_of" .w? "(" .w? term:"arg" .w? ")" .w? "=" .w? term:"role"]
  [term:"arg" .w? ":" .w? term:"role"]
}
3 term = {inner:"inner" ava:"ava" app:"app" sym:"sym"}
2 term_no_app = {inner:"inner" ava:"ava" sym:"sym"}
2 expr = {
  rule:"rule"
  uniq:"uniq"
  role_of:"role_of"
  amb_role:"amb_role"
  amb_rel:"amb_rel"
  has:"has"
  eq:"eq"
  rel:"rel"
  term
}
1 data = [.w? .l({[expr:"expr" .w?] comment}) .w?]
0 document = data:"data"
