% module :-style_check(-singleton),style_check(-no_effect),ensure_loaded("core3"). % run parser_run(_s,_l1,_upvals):-_upvals=[_run2,_debug,_debug,_list,_each,_list,_debug,_ws,_debug,_lexer,_debug],(call_cl(_debug,["lexer..."]),get_(_lexer,"run",T44753),_T26521=T44753,call_cl(_T26521,[_s,_l]),!,call_cl(_debug,["whitespace..."]),get_(_ws,"run",T67250),_T96367=T67250,call_cl(_T96367,[_l,_l2]),!,call_cl(_debug,[_l2]),get_(_list,"map",T72634),_T84928=T72634,call_cl(_T84928,[_l2,_each,_l3]),get_(_list,"join",T2436),_T13298=T2436,call_cl(_T13298,[_l3," ",_s2]),call_cl(_debug,[""]),str(_s2,T42562),writeln_(T42562),call_cl(_debug,["parser..."]),call_cl(_run2,[_l2,_l1])). % db_token parser_db_token(_l,_upvals):-_upvals=[_debug,_list,_list,_each,_list],(get_(_list,"map",T75649),_T94007=T75649,call_cl(_T94007,[_l2,_each,_l3]),get_(_list,"reverse",T23394),_T28265=T23394,call_cl(_T28265,[_l3,_l4]),get_(_list,"join",T16520),_T22059=T16520,call_cl(_T22059,[_l3," ",_s2]),call_cl(_debug,[""]),str(_s2,T23288),writeln_(T23288)). % each parser_each(_e,_e2,_upvals):-_upvals=[],(_e=fc_Token(_tk,_,_),_e2=_tk). % add parser_add(_x,_y,_z,_upvals):-_upvals=[],(add(_x,_y,_z)). % run_parser parser_run_parser(_l1,_l,_upvals):-_upvals=[_run2],(call_cl(_run2,[_l1,_l])). % run_lexer parser_run_lexer(_s,_l,_upvals):-_upvals=[_lexer],(get_(_lexer,"run",T59561),_T29038=T59561,call_cl(_T29038,[_s,_l])). % run2 parser_run2(_l,_code,_upvals):-_upvals=[_custom_throw,_debug,_debug,_parse_body],(call_cl(_parse_body,[_l,_tail,_code]),((_tail='[|]'(fc_Token("EOF",_,_),[]),true);(call_cl(_debug,[_tail]),!,_tail='[|]'(_t,_),call_cl(_debug,[fc_F2(_t)]),_t=fc_Token(_,_,_info),call_cl(_custom_throw,["parser error",_info])))). % parse_body parser_parse_body(_l,_tail,_code,_upvals):-_upvals=[_parse_body2,_parse_call],(call_cl(_parse_call,[_l,_l2,_s1]),call_cl(_parse_body2,[_l2,_tail,_s1,_code])). % parse_body2 parser_parse_body2(_l2,_tail,_s1,_code,_upvals):-_upvals=[_parse_body,_debug,_get_line,_get_line],(((_l2=[fc_Token(_conn,"connective",_)|_l3],((_conn="and",call_cl(_get_line,[_l2,_i1]),call_cl(_get_line,[_l3,_i2]),call_cl(_debug,['[|]'(_i1,'[|]'(_i2,[]))]),_code=fc_And(_s1,_s2,fc_Tuple(_i2,_i2)));(_conn="or",_code=fc_Or(_s1,_s2))),call_cl(_parse_body,[_l3,_tail,_s2]));(_l2=_tail,_s1=_code))). % parse_call parser_parse_call(_l,_tail,_code,_upvals):-_upvals=[_parse_declaration,_parse_definition,_parse_host,_parse_obj_pred,_parse_pred,_parse_inequality,_parse_neq,_parse_eq,_parse_all,_parse_once,_parse_stm,_parse_case,_parse_if,_parse_atom,_parse_false,_parse_true],(call_cl(_parse_true,[_l,_tail,_code]);call_cl(_parse_false,[_l,_tail,_code]);call_cl(_parse_atom,[_l,_tail,_code]);call_cl(_parse_if,[_l,_tail,_code]);call_cl(_parse_case,[_l,_tail,_code]);call_cl(_parse_stm,[_l,_tail,_code]);call_cl(_parse_once,[_l,_tail,_code]);call_cl(_parse_all,[_l,_tail,_code]);call_cl(_parse_eq,[_l,_tail,_code]);call_cl(_parse_neq,[_l,_tail,_code]);call_cl(_parse_inequality,[_l,_tail,_code]);call_cl(_parse_pred,[_l,_tail,_code]);call_cl(_parse_obj_pred,[_l,_tail,_code]);call_cl(_parse_host,[_l,_tail,_code]);call_cl(_parse_definition,[_l,_tail,_code]);call_cl(_parse_declaration,[_l,_tail,_code])). % parse_definition parser_parse_definition(_l,_tail,_f,_upvals):-_upvals=[_parse_body,_parse_args],(_l='[|]'(fc_Token(_,"rel",_),'[|]'(fc_Token(_name,"id",_),'[|]'(fc_Token(_,"(",_),_l2))),call_cl(_parse_args,[_l2,_l3,_args]),_l3='[|]'(fc_Token(_,")",_),_l4),call_cl(_parse_body,[_l4,_l5,_body]),_l5='[|]'(fc_Token(_,";",_),_tail),_f=fc_Rel(_name,_args,_body)). % parse_declaration parser_parse_declaration(_l,_tail,_code,_upvals):-_upvals=[_parse_name],(call_cl(_parse_name,[_l,_tail,_type,_name]),_code=fc_Declaration(_name,_type)). % parse_host parser_parse_host(_l,_tail,_code,_upvals):-_upvals=[_parse_args],(((true,_l=[fc_Token(_obj,"id",_)|[fc_Token(_,"::",_)|[fc_Token(_a,"id",_)|[fc_Token(_,"(",_)|_l2]]]],call_cl(_parse_args,[_l2,_l3,_code_args]),_l3='[|]'(fc_Token(_,")",_),_tail),_code=fc_Host(_obj,_a,_code_args));(_l=[fc_Token(_obj,"id",_)|[fc_Token(_,"::",_)|_l2]],_l2='[|]'(fc_Token(_str,"string",_),_tail),_code=fc_Host(_obj,_str)))). % parse_pred parser_parse_pred(_l,_tail,_code,_upvals):-_upvals=[_get_info,_get_info,_get_info,_get_info,_parse_args],(_l=[fc_Token(_a,"id",_)|[fc_Token(_,"(",_)|_l2]],call_cl(_parse_args,[_l2,_l3,_code_args]),_l3='[|]'(fc_Token(_,")",_),_tail),((_a="functor",call_cl(_get_info,[_l,X5122]),_code=fc_Fact(_a,_code_args,X5122));(_a="throw",call_cl(_get_info,[_l,X2035]),_code=fc_Fact(_a,_code_args,X2035));(_a="cut",call_cl(_get_info,[_l,X42014]),_code=fc_Fact(_a,_code_args,X42014));(call_cl(_get_info,[_l,X27577]),_code=fc_Pred(_a,_code_args,X27577)))). % parse_inequality parser_parse_inequality(_l,_tail,_f,_upvals):-_upvals=[_get_info,_parse_exp,_parse_type,_parse_exp],(call_cl(_parse_exp,[_l,_l2,_a]),call_cl(_parse_type,[_l2,_l3,_op]),((_op="<=";_op=">=";_op=">";_op="<";_op="!=",call_cl(_parse_exp,[_l3,_tail,_b]),call_cl(_get_info,[_l,X10893]),_f=fc_Inequality(_a,_b,_op,X10893));(false))). % parse_stm parser_parse_stm(_l,_tail,_f,_upvals):-_upvals=[_get_info,_parse_body,_parse_args],(_l='[|]'(fc_Token(_name,"id",_),'[|]'(fc_Token(_,"(",_),_l2)),_name="functor",call_cl(_parse_args,[_l2,_l3,_args]),_l3='[|]'(fc_Token(_,")",_),_l4),call_cl(_parse_body,[_l4,_l5,_body]),_l5='[|]'(fc_Token(_,";",_),_tail),call_cl(_get_info,[_l,X22223]),_f=fc_Stm(_name,_args,_body,X22223)). % parse_all parser_parse_all(_l,_tail,_f,_upvals):-_upvals=[_get_info,_parse_body,_parse_body],(_l='[|]'(fc_Token(_name,"id",_),'[|]'(fc_Token(_,"(",_),_l2)),_name="forall",call_cl(_parse_body,[_l2,_l3,_body1]),_l3='[|]'(fc_Token(_,")",_),_l4),call_cl(_parse_body,[_l4,_l5,_body]),_l5='[|]'(fc_Token(_,";",_),_tail),call_cl(_get_info,[_l,X45611]),_f=fc_Stm2(_name,_body1,_body2,X45611)). % parse_once parser_parse_once(_l,_tail,_f,_upvals):-_upvals=[_get_info,_parse_body],(_l='[|]'(fc_Token(_name,"id",_),_l2),_name="once",call_cl(_parse_body,[_l2,_tail,_body]),call_cl(_get_info,[_l,X35511]),_f=fc_Stm(_name,_args,_body,X35511)). % parse_false parser_parse_false(_l,_tail,_f,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_a,"false",_),_tail),_f=fc([],"False")). % parse_atom parser_parse_atom(_l,_tail,_f,_upvals):-_upvals=[_get_info],(_l='[|]'(fc_Token("cut","id",_),_tail),call_cl(_get_info,[_l,X98271]),_f=fc_Fact(_a,[],X98271)). % parse_true parser_parse_true(_l,_tail,_f,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_a,"true",_),_tail),_f=fc([],"True")). % parse_neq parser_parse_neq(_l,_tail,_f,_upvals):-_upvals=[_parse_exp,_parse_type,_parse_exp],(call_cl(_parse_exp,[_l,_l2,_a]),call_cl(_parse_type,[_l2,_l3,"!="]),call_cl(_parse_exp,[_l3,_tail,_b]),_f=fc_Neq(_a,_b)). % parse_eq parser_parse_eq(_l,_tail,_f,_upvals):-_upvals=[_get_info,_parse_exp,_parse_type,_parse_exp],(call_cl(_parse_exp,[_l,_l2,_a]),call_cl(_parse_type,[_l2,_l3,"="]),call_cl(_parse_exp,[_l3,_tail,_b]),call_cl(_get_info,[_l,_info]),_f=fc_Eq(_a,_b,_info)). % parse_case parser_parse_case(_l,_tail,_f,_upvals):-_upvals=[_debug,_parse_case1,_parse_body,_parse_case2],(call_cl(_parse_case2,[_l,_l1]),call_cl(_parse_body,[_l1,_l2,_f1]),call_cl(_parse_case1,[_l2,_l3,_c_]),_l3='[|]'(fc_Token(_,";",_),_tail),_f=fc_Cond(fc([],"True"),_f1,_c_),call_cl(_debug,[_f])). % parse_case1 parser_parse_case1(_l,_tail,_f,_upvals):-_upvals=[_parse_body,_parse_case2],(((true,call_cl(_parse_case2,[_l,_l1]),call_cl(_parse_body,[_l1,_l2,_f1]),call(parser_parse_case1(_l2,_tail,_c_),_upvals),_f='[|]'(_f1,_c_));(_f=[],_tail=_l))). % parse_case2 parser_parse_case2(_l,_l1,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_,"case",_),_l1)). % parse_if parser_parse_if(_l,_tail,_f,_upvals):-_upvals=[_debug,_parse_elseifs,_debug,_parse_body,_parse_body,_debug],(((_l=[fc_Token(_,"if",_)|_l0],_f=fc_Cond(_fbody1,_fbody2,_c_,"if"));(_l=[fc_Token(_,"when",_)|_l0],_f=fc_Cond(_fbody1,_fbody2,_c_,"when"));(_l=[fc_Token(_,"choose",_)|_l0],_f=fc_SoftCut(_fbody1,_fbody2,_c_))),_l0=[fc_Token(_,"(",_)|_l2],call_cl(_debug,["if"]),call_cl(_parse_body,[_l2,_l3,_fbody1]),_l3=[fc_Token(_,")",_)|_l4],call_cl(_parse_body,[_l4,_l5,_fbody2]),call_cl(_debug,['[|]'("elseif",'[|]'(_fbody2,[]))]),call_cl(_parse_elseifs,[_l5,_l11,_c_]),_l11=[fc_Token(_,";",_)|_tail],call_cl(_debug,['[|]'("end",[])])). % parse_elseifs parser_parse_elseifs(_l,_tail,_c_,_upvals):-_upvals=[_parse_body,_parse_body,_parse_body],(((true,_l=[fc_Token(_,"elseif",_)|[fc_Token(_,"(",_)|_l1]],call_cl(_parse_body,[_l1,_l2,_f1]),_l2=[fc_Token(_,")",_)|_l3],call_cl(_parse_body,[_l3,_l4,_f2]),call(parser_parse_elseifs(_l4,_tail,_c_2),_upvals),_c_=[fc_Pair(_f1,_f2)|_c_2]);(_l=[fc_Token(_,"else",_)|_l10],call_cl(_parse_body,[_l10,_tail,_f1]),_c_='[|]'(_f1,[]));(_c_=[],_tail=_l))). % parse_exp parser_parse_exp(_l,_tail,_f,_upvals):-_upvals=[_parse_math1],(call_cl(_parse_math1,[_l,_tail,_f]),!). % parse_math1 parser_parse_math1(_l,_tail,_f,_upvals):-_upvals=[_fget,_parse_math2,_parse_exp2],(call_cl(_parse_exp2,[_l,_l2,_a]),call_cl(_parse_math2,[_l2,_tail,_a,_f2]),call_cl(_fget,[_f2,_f,_a,_f2])). % parse_math2 parser_parse_math2(_l,_tail,_prev,_f,_upvals):-_upvals=[_fget,_get_info,_parse_exp2,_op_,_parse_string],(call_cl(_parse_string,[_l,_l2,_op]),((call_cl(_op_,[_op]),call_cl(_parse_exp2,[_l2,_l4,_b]),call_cl(_get_info,[_l,X89786]),_fcur=fc_Op(_prev,_b,_op,X89786),call(parser_parse_math2(_l4,_tail,_fcur,_fnext),_upvals),call_cl(_fget,[_fnext,_f,_fcur,_fnext]));(_f=fc([],"None"),_tail=_l))). % op_ parser_op_(_op,_upvals):-_upvals=[],(_op="+";_op="-";_op="*";_op="/"). % fget parser_fget(_f2,_f,_a,_f2,_upvals):-_upvals=[],(((_f2=fc([],"None"),_f=_a);(_f=_f2))). % parse_exp2 parser_parse_exp2(_l,_tail,_f,_upvals):-_upvals=[_c2,_c1,__type],(((call_cl(__type,[_l,"id"]),call_cl(_c1,[_l,_tail,_f]));(call_cl(_c2,[_l,_tail,_f])))). % c2 parser_c2(_l,_tail,_f,_upvals):-_upvals=[_parse_value,_parse_string,_debug,_parse_exp,_parse_string,_parse_excl,_parse_length,_parse_name,_parse_lambda,_debug,_parse_table,_parse_list],(((true,call_cl(_parse_list,[_l,_tail,_f]));(call_cl(_parse_table,[_l,_tail,_f]),call_cl(_debug,[_f]),!);(call_cl(_parse_lambda,[_l,_tail,_f]));(call_cl(_parse_name,[_l,_tail,_type,_name]),_f=fc_Id(_name,_type));(call_cl(_parse_length,[_l,_tail,_f]));(call_cl(_parse_excl,[_l,_tail,_f]));(call_cl(_parse_string,[_l,_l2,"("]),call_cl(_parse_exp,[_l2,_l3,_f1]),call_cl(_debug,[fc_Tuple(_f1,_f)]),_f=_f1,call_cl(_parse_string,[_l3,_tail,")"]));(call_cl(_parse_value,[_l,_tail,_f])))). % c1 parser_c1(_l,_tail,_f,_upvals):-_upvals=[_parse_obj_get2,_parse_obj_get,_parse_obj_pred,_parse_exp_call],(((true,call_cl(_parse_exp_call,[_l,_tail,_f]));(call_cl(_parse_obj_pred,[_l,_tail,_f]));(call_cl(_parse_obj_get,[_l,_tail,_f]));(call_cl(_parse_obj_get2,[_l,_tail,_f])))). % parse_length parser_parse_length(_l,_tail,_code,_upvals):-_upvals=[_get_info,_parse_exp],(_l='[|]'(fc_Token(_,"#",_),_l2),call_cl(_parse_exp,[_l2,_tail,_a]),call_cl(_get_info,[_l,X10358]),_code=fc_Size(_a,X10358)). % parse_excl parser_parse_excl(_l,_tail,_code,_upvals):-_upvals=[],(_l=[fc_Token(_,"!",_)|[fc_Token(_a,"id",_)|_tail]],_code=fc_Mut(_a)). % parse_value parser_parse_value(_l,_tail,_f,_upvals):-_upvals=[],(((true,_l='[|]'(fc_Token(_a,"string",_),_tail),_f=fc_Str(_a));(_l='[|]'(fc_Token(_,"-",_),'[|]'(fc_Token(_a,"number",_),_tail)),_f=fc_Num("-"+_a));(_l='[|]'(fc_Token(_a,"number",_),_tail),_f=fc_Num(_a)))). % parse_name parser_parse_name(_l,_tail,_type,_name,_upvals):-_upvals=[_name_list_to_type,_parse_name2],(call_cl(_parse_name2,[_l,_tail,_name_list,_name]),call_cl(_name_list_to_type,[_name_list,_type])). % parse_name2 parser_parse_name2(_l,_tail,_type,_name,_upvals):-_upvals=[_debug],(((true,_l='[|]'(fc_Token(_a,"id",_),_l2),call(parser_parse_name2(_l2,_tail,_type2,_name),_upvals),_type='[|]'(_a,_type2),call_cl(_debug,['[|]'(_name,'[|]'(_type,[]))]));(_l='[|]'(fc_Token(_a,"id",_),_tail),_type=[],_name=_a))). % name_list_to_type parser_name_list_to_type(_l,_l2,_upvals):-_upvals=[_name_list_to_type2],(((_l=[],_l2=_l);(_l='[|]'(_a,[]),_l2=_l);(_l=[_a|_tail],call_cl(_name_list_to_type2,[_tail,_tail2]),_l2=[_a|_tail2]))). % name_list_to_type2 parser_name_list_to_type2(_l,_l2,_upvals):-_upvals=[],(((_l='[|]'(_head,[]),_l2='[|]'('[|]'(_head,[]),[]));(_l=[_head|_tail],call(parser_name_list_to_type2(_tail,_tail2),_upvals),_l2=['[|]'(_head,[])|_tail2]))). % parse_table parser_parse_table(_l,_tail,_f,_upvals):-_upvals=[_parse_body,_debug,_debug],(_l=[fc_Token(_,"{",_)|_l2],call_cl(_debug,["table"]),!,call_cl(_debug,[_l2]),((_l2='[|]'(fc_Token(_,"}",_),_tail),_f=fc_TTable(fc([],"True")));(call_cl(_parse_body,[_l2,_l3,_args]),_l3=[fc_Token(_,"}",_)|_tail],_f=fc_TTable(_args)))). % parse_lambda parser_parse_lambda(_l,_tail,_f,_upvals):-_upvals=[_parse_body,_parse_args],(_l=[fc_Token(_,"rel",_)|[fc_Token(_,"(",_)|_l2]],call_cl(_parse_args,[_l2,_l3,_args]),_l3=[fc_Token(_,")",_)|_l4],call_cl(_parse_body,[_l4,_l5,_body]),_l5=[fc_Token(_,";",_)|_tail],_f=fc_Rel(_args,_body)). % parse_list parser_parse_list(_l,_tail,_f,_upvals):-_upvals=[_parse_args2],(_l='[|]'(fc_Token(_,"[",_),_l2),call_cl(_parse_args2,[_l2,_l3,_args]),_l3='[|]'(fc_Token(_,"]",_),_tail),_f=fc_TList(_args)). % parse_obj_pred parser_parse_obj_pred(_l,_tail,_f,_upvals):-_upvals=[_get_info,_parse_args],(_l='[|]'(fc_Token(_obj,"id",_),'[|]'(fc_Token(_,".",_),'[|]'(fc_Token(_a,"id",_),'[|]'(fc_Token(_,"(",_),_l2)))),call_cl(_parse_args,[_l2,_l3,_code_args]),_l3='[|]'(fc_Token(_,")",_),_tail),call_cl(_get_info,[_l,X71682]),_f=fc_ObjPred(_obj,_a,_code_args,X71682)). % parse_exp_call parser_parse_exp_call(_l,_tail,_f,_upvals):-_upvals=[_get_info,_parse_args],(_l='[|]'(fc_Token(_name,"id",_),'[|]'(fc_Token(_,"(",_),_l2)),call_cl(_parse_args,[_l2,_l3,_args]),_l3='[|]'(fc_Token(_,")",_),_tail),call_cl(_get_info,[_l,X21956]),_f=fc_Func(_name,_args,X21956)). % parse_obj_get2 parser_parse_obj_get2(_l,_tail,_f,_upvals):-_upvals=[_parse_exp],(_l='[|]'(fc_Token(_a,"id",_),'[|]'(fc_Token(_,"[",_),_l2)),call_cl(_parse_exp,[_l2,_l3,_f1]),_l3='[|]'(fc_Token(_,"]",_),_tail),_f=fc_ObjGet2(_a,_f1)). % parse_obj_get parser_parse_obj_get(_l,_tail,_f,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_a,"id",_),'[|]'(fc_Token(_,".",_),'[|]'(fc_Token(_b,"id",_),_tail))),_f=fc_ObjGet(_a,_b)). % parse_args2 parser_parse_args2(_l,_tail,_f,_upvals):-_upvals=[_parse_exp,_parse_exp,_parse_type,_parse_exp],(((true,call_cl(_parse_exp,[_l,_l1,_f1]),call_cl(_parse_type,[_l1,_l2,_s]),((_s="|",call_cl(_parse_exp,[_l2,_tail,_f2]),_f='[|]'(_f1,'[|]'(fc_Tuple(_f2),[])));(_s=",",call(parser_parse_args2(_l2,_tail,_f2),_upvals),_f='[|]'(_f1,_f2));(false)));(call_cl(_parse_exp,[_l,_tail,_f1]),_f='[|]'(_f1,[]));(_f=[],_tail=_l))). % parse_args parser_parse_args(_l,_tail,_f,_upvals):-_upvals=[_parse_exp,_parse_type,_parse_exp],(((true,call_cl(_parse_exp,[_l,_l1,_f1]),call_cl(_parse_type,[_l1,_l2,","]),call(parser_parse_args(_l2,_tail,_f2),_upvals),_f='[|]'(_f1,_f2));(call_cl(_parse_exp,[_l,_tail,_f1]),_f='[|]'(_f1,[]));(_f=[],_tail=_l))). % custom_throw parser_custom_throw(_msg,_info,_upvals):-_upvals=[],(_info=fc_Info(_line,_col),writeln_(_info),throw(_msg)). % get_line parser_get_line(_l,_info1,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_,_,_info),_),_info=fc_Info(_info1,_)). % get_info parser_get_info(_l,_info,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_,_,_info),_)). % parse_string parser_parse_string(_l,_tail,_str,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_,_str,_),_tail)). % parse_type parser_parse_type(_l,_tail,_type,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_,_type,_),_tail)). % _type parser__type(_l,_type,_upvals):-_upvals=[],(_l='[|]'(fc_Token(_,_type,_),_tail)). % at parser_at(_s,_i,_c,_upvals):-_upvals=[],(at). % debug parser_debug(_e,_upvals):-_upvals=[],(writeln_(_e)). % pause parser_pause(_upvals):-_upvals=[],(read(_x)). % main parser(X):-_pause=clos([],parser_pause),_debug=clos([],parser_debug),_at=clos([],parser_at),__type=clos([],parser__type),_parse_type=clos([],parser_parse_type),_parse_string=clos([],parser_parse_string),_get_info=clos([],parser_get_info),_get_line=clos([],parser_get_line),_custom_throw=clos([],parser_custom_throw),_parse_args=clos([_parse_exp,_parse_type,_parse_exp],parser_parse_args),_parse_args2=clos([_parse_exp,_parse_exp,_parse_type,_parse_exp],parser_parse_args2),_parse_obj_get=clos([],parser_parse_obj_get),_parse_obj_get2=clos([_parse_exp],parser_parse_obj_get2),_parse_exp_call=clos([_get_info,_parse_args],parser_parse_exp_call),_parse_obj_pred=clos([_get_info,_parse_args],parser_parse_obj_pred),_parse_list=clos([_parse_args2],parser_parse_list),_parse_lambda=clos([_parse_body,_parse_args],parser_parse_lambda),_parse_table=clos([_parse_body,_debug,_debug],parser_parse_table),_name_list_to_type2=clos([],parser_name_list_to_type2),_name_list_to_type=clos([_name_list_to_type2],parser_name_list_to_type),_parse_name2=clos([_debug],parser_parse_name2),_parse_name=clos([_name_list_to_type,_parse_name2],parser_parse_name),_parse_value=clos([],parser_parse_value),_parse_excl=clos([],parser_parse_excl),_parse_length=clos([_get_info,_parse_exp],parser_parse_length),_c1=clos([_parse_obj_get2,_parse_obj_get,_parse_obj_pred,_parse_exp_call],parser_c1),_c2=clos([_parse_value,_parse_string,_debug,_parse_exp,_parse_string,_parse_excl,_parse_length,_parse_name,_parse_lambda,_debug,_parse_table,_parse_list],parser_c2),_parse_exp2=clos([_c2,_c1,__type],parser_parse_exp2),_fget=clos([],parser_fget),_op_=clos([],parser_op_),_parse_math2=clos([_fget,_get_info,_parse_exp2,_op_,_parse_string],parser_parse_math2),_parse_math1=clos([_fget,_parse_math2,_parse_exp2],parser_parse_math1),_parse_exp=clos([_parse_math1],parser_parse_exp),_parse_elseifs=clos([_parse_body,_parse_body,_parse_body],parser_parse_elseifs),_parse_if=clos([_debug,_parse_elseifs,_debug,_parse_body,_parse_body,_debug],parser_parse_if),_parse_case2=clos([],parser_parse_case2),_parse_case1=clos([_parse_body,_parse_case2],parser_parse_case1),_parse_case=clos([_debug,_parse_case1,_parse_body,_parse_case2],parser_parse_case),_parse_eq=clos([_get_info,_parse_exp,_parse_type,_parse_exp],parser_parse_eq),_parse_neq=clos([_parse_exp,_parse_type,_parse_exp],parser_parse_neq),_parse_true=clos([],parser_parse_true),_parse_atom=clos([_get_info],parser_parse_atom),_parse_false=clos([],parser_parse_false),_parse_once=clos([_get_info,_parse_body],parser_parse_once),_parse_all=clos([_get_info,_parse_body,_parse_body],parser_parse_all),_parse_stm=clos([_get_info,_parse_body,_parse_args],parser_parse_stm),_parse_inequality=clos([_get_info,_parse_exp,_parse_type,_parse_exp],parser_parse_inequality),_parse_pred=clos([_get_info,_get_info,_get_info,_get_info,_parse_args],parser_parse_pred),_parse_host=clos([_parse_args],parser_parse_host),_parse_declaration=clos([_parse_name],parser_parse_declaration),_parse_definition=clos([_parse_body,_parse_args],parser_parse_definition),_parse_call=clos([_parse_declaration,_parse_definition,_parse_host,_parse_obj_pred,_parse_pred,_parse_inequality,_parse_neq,_parse_eq,_parse_all,_parse_once,_parse_stm,_parse_case,_parse_if,_parse_atom,_parse_false,_parse_true],parser_parse_call),_parse_body2=clos([_parse_body,_debug,_get_line,_get_line],parser_parse_body2),_parse_body=clos([_parse_body2,_parse_call],parser_parse_body),creq("lexer",_lexer),creq("ws2",_ws),_run2=clos([_custom_throw,_debug,_debug,_parse_body],parser_run2),_run_lexer=clos([_lexer],parser_run_lexer),_run_parser=clos([_run2],parser_run_parser),creq("list",_list),_add=clos([],parser_add),_each=clos([],parser_each),_db_token=clos([_debug,_list,_list,_each,_list],parser_db_token),_run=clos([_run2,_debug,_debug,_list,_each,_list,_debug,_ws,_debug,_lexer,_debug],parser_run),new(T72080),set_(T72080,"parse_exp",_parse_exp,T69530),set_(T69530,"parse_call",_parse_call,T61300),set_(T61300,"parse_body",_parse_body,T62009),set_(T62009,"run",_run,T40599),set_(T40599,"run_ws",_run2,T90137),set_(T90137,"lexer",_run_lexer,T84955),set_(T84955,"run_parser",_run2,T90703),_t=T90703,call_cl(_debug,[_l]),call_cl(_debug,[_l2]),call_cl(_debug,[_l3]),X=_t,creq("io",_io),writeln_(_io),writeln_(_f).