_seps: ";:.{}()=," _ty: ";{}" 200 multi_line_comment = ["/*" ..."*/"? .r?({ [!"*/" "*" ..."*/"?] [multi_line_comment ..."*/"?] ["/" ..."*/"?] }) "*/"] 201 comment = {multi_line_comment ["//" ..."\n"?]} 14 sym_decl = ["sym" .w! .._seps!:"sym"] 13 let = ["let" .w! .._seps!:"name" .w? "=" .w?] 12 use = ["use" .w! .r?([.._seps!:"ns" "::"]) .._seps!:"fun"] 11 check = [let "()" .w? ":" .w? ..._ty!:"ty"] 10 match = [let "match" .w! .._seps!:"arg" .w? ?["(" .w? .._seps!:"arg" , .._seps!:"arg" .w? ")" .w?] ":" ..._ty!:"ty"] 9 return = [?["unsafe":"unsafe" .w!] "return" .w! .._seps!:"return"] 8 lam_decl = ["lam" .w! .._seps!:"name" .w? ":" .w? ..._ty!:"ty"] 7 app = [let .._seps!:"arg" "(" .w? .s?.(, .._seps!:"arg") .w? ")" .w? ":" ..._ty!:"ty"] 6 fun_decl = ["fn" .w! .._seps!:"name" .w? ":" .w? ..._ty!:"ty"] 5 , = [.w? "," .w?] 4 fn = [{ fun_decl:"fun_decl" lam_decl:"lam_decl" } "{" .w? script:"script" .w? "}"] 3 var = [.._seps!:"name" .w? ":" .w? ..._ty!:"ty"] 2 command = { return sym_decl use:"use" ["axiom " var:"axiom"] var:"var" match:"match" check:"check" app:"app" } 1 script = [.w? .l([.w? { comment fn [command ";"] }]) .w?] 0 doc = script:"script"