% module :-style_check(-singleton),style_check(-no_effect),ensure_loaded("core3"). % test lexer_test(_s,_i,_j,_z,_upvals):-_upvals=[],(_z="rel"). % run_lx lexer_run_lx(_s,_l,_upvals):-_upvals=[_run2],(call_cl(_run2,[_s,0,_l,fc_Info(1,1),_info2]),!). % run2 lexer_run2(_s,_start,_l,_info,_info2,_upvals):-_upvals=[_debug,_string,_debug,_run_tk,_string,_string,_step1],(((true,X74062 is _start,call_cl(_step1,[_s,X74062,_x,_type,_info,_info1]),get_(_string,"at",T32165),_T34121=T32165,call_cl(_T34121,[_s,_start,_c]),call(lexer_run2(_s,_x,_l0,_info1,_info2),_upvals),get_(_string,"slice",T15874),_T61282=T15874,X61810 is _start,call_cl(_T61282,[_s,X61810,_x,_lexeme]),call_cl(_run_tk,[fc_Token(_lexeme,_type,_info),_type,_l0,_l]));(call_cl(_debug,['[|]'("--",'[|]'(_start,[]))]),_l=[fc_Token("EOF","EOF",_)|[]],get_(_string,"size",T68462),_T28935=T68462,call_cl(_T28935,[_s,_z]),call_cl(_debug,['[|]'(_z,'[|]'(_start,[]))]),X55334 is _start,_z=X55334,_info2=_info);(throw("error")))). % step1 lexer_step1(_s,_i,_j,_z,_info,_info2,_upvals):-_upvals=[_debug,_step_,_keywords,_list,_debug,_string,_parse_id,_letter2,_match_list,_debug,_string,_navigate_comment,_navigate_whitespace,_debug],(call_cl(_debug,['[|]'(_i,[])]),def(_i),((call_cl(_navigate_whitespace,[_s,_i,_j,_info,_info2]),_z="whitespace");(call_cl(_navigate_comment,[_s,_i,_j,_info,_info2]),_z="comment");(get_(_string,"at",T76041),_T83062=T76041,call_cl(_T83062,[_s,_i,_c]),_k=_i+1,call_cl(_debug,['[|]'(_c,'[|]'(_k,[]))]),!,_l='[|]'("=",'[|]'(";",'[|]'("(",'[|]'(")",'[|]'("{",'[|]'("}",'[|]'(".",'[|]'(",",'[|]'("|",'[|]'("#",[])))))))))),((call_cl(_match_list,[_l,_c,_z]),_j=_i+1);(call_cl(_letter2,[_c]),call_cl(_parse_id,[_s,_i,_j]),get_(_string,"slice",T66758),_T58059=T66758,call_cl(_T58059,[_s,_i,_j,_s2]),call_cl(_debug,['[|]'("id/",'[|]'(_s,'[|]'(_s2,[])))]),((get_(_list,"has",T60962),_T94144=T60962,call_cl(_T94144,['[|]'("and",'[|]'("or",[])),_s2]),_z="connective");(call_cl(_keywords,[_s2,_z]),true);(_s2="cond",_z="case");(_z="id")));(call_cl(_step_,[_s,_i,_j,_z,_c,_info,_info2]))),_info=fc_Info(_line,_col),X89398 is _line,X52562 is _col+_j-_i,_info2=fc_Info(X89398,X52562))),call_cl(_debug,['[|]'("type",'[|]'(_z,'[|]'(_i,'[|]'(_j,[]))))])). % step_ lexer_step_(_s,_i,_j,_z,_c,_info,_info2,_upvals):-_upvals=[_step5,_parse_number,_parse_string],(((true,call_cl(_parse_string,[_s,_i,_j]),_z="string");(call_cl(_parse_number,[_s,_i,_j]),_z="number");(call_cl(_step5,[_s,_i,_j,_z,_c,_info])))). % step5 lexer_step5(_s,_i,_j,_z,_c,_info,_upvals):-_upvals=[_match_one,_single_quote,_match_list,_match_list,_string],(((true,_l='[|]'("<=",'[|]'(">=",'[|]'("!=",'[|]'("::",[])))),get_(_string,"slice",T99745),_T17132=T99745,call_cl(_T17132,[_s,_i,_i+2,_s2]),call_cl(_match_list,[_l,_s2,_z]),_j=_i+2);(_l='[|]'("+",'[|]'("-",'[|]'("<",'[|]'(">",'[|]'("[",'[|]'("]",'[|]'("/",'[|]'("*",'[|]'("#",'[|]'("!",'[|]'(":",[]))))))))))),call_cl(_match_list,[_l,_c,_z]),_j=_i+1);(call_cl(_match_one,[_s,_i,_j,_single_quote]),_z="single_quote"))). % keywords lexer_keywords(_s,_z,_upvals):-_upvals=[_list],(get_(_list,"has",T97347),_T21819=T97347,call_cl(_T21819,['[|]'("rel",'[|]'("fun",'[|]'("not",'[|]'("and",'[|]'("or",'[|]'("true",'[|]'("false",'[|]'("if",'[|]'("when",'[|]'("case",'[|]'("elseif",'[|]'("else",'[|]'("choose",'[|]'("cond",'[|]'("once",[]))))))))))))))),_s]),_z=_s). % run_tk lexer_run_tk(_tk,_type,_l0,_l,_upvals):-_upvals=[],(((true,neq(_type,"comment"),_l=[_tk|_l0]);(_l=_l0))). % parse_id lexer_parse_id(_s,_i,_i2,_upvals):-_upvals=[_match_any,_digit,_match_some,_letter2],(call_cl(_match_some,[_s,_i,_x,_letter2]),call_cl(_match_any,[_s,_x,_i2,_digit])). % parse_number lexer_parse_number(_s,_i,_i2,_upvals):-_upvals=[_match_some,_digit,_debug],(call_cl(_debug,["num"]),call_cl(_match_some,[_s,_i,_i2,_digit])). % navigate_comment lexer_navigate_comment(_s,_i,_i2,_info,_info2,_upvals):-_upvals=[_match_string,_string,_navigate_until_asterisk,_match_string,_string,_string,_match_string],(((call_cl(_match_string,[_s,_i,_x,"//"]),_info2=_info,((get_(_string,"findIndex",T75482),_T25340=T75482,call_cl(_T25340,[_s,"\n",_x,_z]),_i2=_z);(get_(_string,"size",T72222),_T1625=T72222,call_cl(_T1625,[_s,_i2]))));(call_cl(_match_string,[_s,_i,_x,"/*"]),call_cl(_navigate_until_asterisk,[_s,_x,_y,_info,_info2]),get_(_string,"at",T64497),_T74451=T64497,call_cl(_T74451,[_s,_y,_c1]),call_cl(_match_string,[_s,_y,_i2,"*/"]),!))). % navigate_until_asterisk lexer_navigate_until_asterisk(_s,_i,_i2,_info,_info2,_upvals):-_upvals=[_string],(_info=fc_Info(_line,_col),get_(_string,"at",T86720),_T73503=T86720,call_cl(_T73503,[_s,_i,_c]),((_c="*",_i=_i2,_info2=_info);(((_c="\n",_info1=fc_Info(_line+1,1));(_c="\t",_info1=fc_Info(_line,_col+4));(_info1=fc_Info(_line,_col+1))),call(lexer_navigate_until_asterisk(_s,_i+1,_i2,_info1,_info2),_upvals)))). % navigate_whitespace lexer_navigate_whitespace(_s,_i,_i2,_info,_info2,_upvals):-_upvals=[_navigate_ws2,_navigate_ws2,_whitespace,_string],(get_(_string,"at",T40514),_T17760=T40514,call_cl(_T17760,[_s,_i,_c]),call_cl(_whitespace,[_c]),_info=fc_Info(_line,_col),((_c="\n",call_cl(_navigate_ws2,[_s,_i+1,_i2,_line+1,0,_info2]));(call_cl(_navigate_ws2,[_s,_i+1,_i2,_line,_col,_info2])))). % navigate_ws2 lexer_navigate_ws2(_s,_i,_i2,_line,_col,_info2,_upvals):-_upvals=[_whitespace,_string],(((get_(_string,"at",T86089),_T2729=T86089,call_cl(_T2729,[_s,_i,_c]),((_c="\n",call(lexer_navigate_ws2(_s,_i+1,_i2,_line+1,1,_info2),_upvals));(_c="\t",call(lexer_navigate_ws2(_s,_i+1,_i2,_line,_col+4,_info2),_upvals));(_c="\r",call(lexer_navigate_ws2(_s,_i+1,_i2,_line,_col,_info2),_upvals));(call_cl(_whitespace,[_c]),call(lexer_navigate_ws2(_s,_i+1,_i2,_line,_col+1,_info2),_upvals))));(_i2=_i,_info2=fc_Info(_line,_col)))). % parse_string lexer_parse_string(_s,_i,_i2,_upvals):-_upvals=[_match_until,_single_quote,_single_quote,_debug,_parse_double_string,_double_quote,_debug,_string],(_j=_i+1,get_(_string,"at",T81652),_T36198=T81652,call_cl(_T36198,[_s,_i,_c]),call_cl(_debug,[_c]),((call_cl(_double_quote,[_c]),call_cl(_parse_double_string,[_s,_j,_j2]),_i2=_j2+1);(call_cl(_debug,["-"]),call_cl(_single_quote,[_c]),call_cl(_match_until,[_s,_j,_j2,_single_quote]),_i2=_j2+1))). % parse_double_string lexer_parse_double_string(_s,_i,_i2,_upvals):-_upvals=[_slash,_double_quote,_string],(get_(_string,"at",T23974),_T7439=T23974,call_cl(_T7439,[_s,_i,_c]),((call_cl(_double_quote,[_c]),_i=_i2);(call_cl(_slash,[_c]),call(lexer_parse_double_string(_s,_i+2,_i2),_upvals));(call(lexer_parse_double_string(_s,_i+1,_i2),_upvals)))). % match_whitespace lexer_match_whitespace(_s,_i,_i2,_upvals):-_upvals=[_match_some,_whitespace],(call_cl(_match_some,[_s,_i,_i2,_whitespace])). % match_list lexer_match_list(_l,_s,_z,_upvals):-_upvals=[],(_l=[_head|_tail],((_head=_s,_z=_s);(call(lexer_match_list(_tail,_s,_z),_upvals)))). % match_string lexer_match_string(_s,_i,_i2,_str,_upvals):-_upvals=[_string,_string],(get_(_string,"size",T52376),_T74354=T52376,call_cl(_T74354,[_str,_size1]),def(_i),_i2=_i+_size1,get_(_string,"slice",T81287),_T37115=T81287,call_cl(_T37115,[_s,_i,_i2,_str2]),def(_i2),_str2=_str). % match_until lexer_match_until(_s,_i,_i2,_f,_upvals):-_upvals=[_string],(((true,get_(_string,"at",T34307),_T58983=T34307,call_cl(_T58983,[_s,_i,_c]),call_cl(_f,[_c]),_i=_i2);(call(lexer_match_until(_s,_i+1,_i2,_f),_upvals)))). % match_any lexer_match_any(_s,_i,_i2,_f,_upvals):-_upvals=[_string],(((true,get_(_string,"at",T84037),_T78119=T84037,call_cl(_T78119,[_s,_i,_c]),call_cl(_f,[_c]),call(lexer_match_any(_s,_i+1,_i2,_f),_upvals));(_i=_i2))). % match_one lexer_match_one(_s,_i,_i2,_f,_upvals):-_upvals=[_string],(_i2=_i+1,get_(_string,"at",T45973),_T44842=T45973,call_cl(_T44842,[_s,_i,_c]),call_cl(_f,[_c])). % match_some lexer_match_some(_s,_i,_i2,_f,_upvals):-_upvals=[_match_rel2,_string],(get_(_string,"at",T81507),_T13372=T81507,call_cl(_T13372,[_s,_i,_c]),call_cl(_f,[_c]),call_cl(_match_rel2,[_s,_i+1,_i2,_f])). % match_rel2 lexer_match_rel2(_s,_i,_i2,_f,_upvals):-_upvals=[_string],(((true,get_(_string,"at",T3598),_T53096=T3598,call_cl(_T53096,[_s,_i,_c]),call_cl(_f,[_c]),call(lexer_match_rel2(_s,_i+1,_i2,_f),_upvals));(_i=_i2))). % whitespace lexer_whitespace(_c,_upvals):-_upvals=[],(_c=" ";_c="\t";_c="\n";_c="\r"). % tab lexer_tab(_c,_upvals):-_upvals=[_string],(get_(_string,"code",T54840),_T15500=T54840,call_cl(_T15500,[_c,9])). % newline2 lexer_newline2(_c,_upvals):-_upvals=[_string],(get_(_string,"code",T41617),_T10615=T41617,call_cl(_T10615,[_c,13])). % newline lexer_newline(_c,_upvals):-_upvals=[_string],(get_(_string,"code",T3081),_T32450=T3081,call_cl(_T32450,[_c,10])). % slash lexer_slash(_c,_upvals):-_upvals=[_string],(get_(_string,"code",T86432),_T49851=T86432,call_cl(_T49851,[_c,92])). % endline lexer_endline(_c,_upvals):-_upvals=[],(_c="\n"). % quote lexer_quote(_c,_upvals):-_upvals=[_double_quote,_single_quote],(call_cl(_single_quote,[_c]);call_cl(_double_quote,[_c])). % double_quote lexer_double_quote(_c,_upvals):-_upvals=[],(_c="\""). % single_quote lexer_single_quote(_c,_upvals):-_upvals=[_string,_string],(get_(_string,"code",T78590),_T26209=T78590,call_cl(_T26209,[_c,39]),get_(_string,"code",T77509),_T90101=T77509,call_cl(_T90101,[_c,39])). % 15962 lexer_15962(_s,_n,_upvals):-_upvals=[],(string_codes(_s,'[|]'(_n,[]))). % letter_ lexer_letter_(_c,_upvals):-_upvals=[_string,_string],(get_(_string,"lessOrEqual",T15679),_T94235=T15679,call_cl(_T94235,[_c,"z"]),get_(_string,"lessOrEqual",T4249),_T66468=T4249,call_cl(_T66468,["a",_c])). % letter2 lexer_letter2(_c,_upvals):-_upvals=[_string,_string,_string,_string],(((true,get_(_string,"lessOrEqual",T59102),_T18591=T59102,call_cl(_T18591,[_c,"z"]),get_(_string,"lessOrEqual",T31363),_T37156=T31363,call_cl(_T37156,["a",_c]));(get_(_string,"lessOrEqual",T72501),_T16988=T72501,call_cl(_T16988,[_c,"Z"]),get_(_string,"lessOrEqual",T82986),_T67285=T82986,call_cl(_T67285,["A",_c]));(_c="_"))). % letter lexer_letter(_c,_upvals):-_upvals=[_string,_string,_string,_string],(get_(_string,"lessOrEqual",T95954),_T73194=T95954,call_cl(_T73194,[_c,"z"]),get_(_string,"lessOrEqual",T36904),_T86911=T36904,call_cl(_T86911,["a",_c]);get_(_string,"lessOrEqual",T34727),_T88115=T34727,call_cl(_T88115,[_c,"Z"]),get_(_string,"lessOrEqual",T23005),_T63332=T23005,call_cl(_T63332,["A",_c])). % digit lexer_digit(_c,_upvals):-_upvals=[_string,_string],(get_(_string,"lessOrEqual",T555),_T36114=T555,call_cl(_T36114,[_c,"9"]),get_(_string,"lessOrEqual",T45357),_T62172=T45357,call_cl(_T62172,["0",_c])). % writeln lexer_writeln(_x,_upvals):-_upvals=[_write,_write],(call_cl(_write,[_x]),call_cl(_write,["\n"])). % write lexer_write(_x,_upvals):-_upvals=[],(write(_x)). % debug lexer_debug(_s,_upvals):-_upvals=[],(true). % main lexer(X):-_debug=clos([],lexer_debug),creq("string",_string),creq("list",_list),_write=clos([],lexer_write),_writeln=clos([_write,_write],lexer_writeln),new(T500),set_(T500,"write",_write,T19655),set_(T19655,"writeln",_writeln,T57827),_io=T57827,_digit=clos([_string,_string],lexer_digit),_letter=clos([_string,_string,_string,_string],lexer_letter),_letter2=clos([_string,_string,_string,_string],lexer_letter2),_letter_=clos([_string,_string],lexer_letter_),new(T33537),set_(T33537,"code",clos([],lexer_15962),T32684),_string2=T32684,_single_quote=clos([_string,_string],lexer_single_quote),_double_quote=clos([],lexer_double_quote),_quote=clos([_double_quote,_single_quote],lexer_quote),_endline=clos([],lexer_endline),_slash=clos([_string],lexer_slash),_newline=clos([_string],lexer_newline),_newline2=clos([_string],lexer_newline2),_tab=clos([_string],lexer_tab),_whitespace=clos([],lexer_whitespace),_match_rel2=clos([_string],lexer_match_rel2),_match_some=clos([_match_rel2,_string],lexer_match_some),_match_one=clos([_string],lexer_match_one),_match_any=clos([_string],lexer_match_any),_match_until=clos([_string],lexer_match_until),_match_string=clos([_string,_string],lexer_match_string),_match_list=clos([],lexer_match_list),_match_whitespace=clos([_match_some,_whitespace],lexer_match_whitespace),_parse_double_string=clos([_slash,_double_quote,_string],lexer_parse_double_string),_parse_string=clos([_match_until,_single_quote,_single_quote,_debug,_parse_double_string,_double_quote,_debug,_string],lexer_parse_string),_navigate_ws2=clos([_whitespace,_string],lexer_navigate_ws2),_navigate_whitespace=clos([_navigate_ws2,_navigate_ws2,_whitespace,_string],lexer_navigate_whitespace),_navigate_until_asterisk=clos([_string],lexer_navigate_until_asterisk),_navigate_comment=clos([_match_string,_string,_navigate_until_asterisk,_match_string,_string,_string,_match_string],lexer_navigate_comment),_parse_number=clos([_match_some,_digit,_debug],lexer_parse_number),_parse_id=clos([_match_any,_digit,_match_some,_letter2],lexer_parse_id),_run_tk=clos([],lexer_run_tk),_keywords=clos([_list],lexer_keywords),_step5=clos([_match_one,_single_quote,_match_list,_match_list,_string],lexer_step5),_step_=clos([_step5,_parse_number,_parse_string],lexer_step_),_step1=clos([_debug,_step_,_keywords,_list,_debug,_string,_parse_id,_letter2,_match_list,_debug,_string,_navigate_comment,_navigate_whitespace,_debug],lexer_step1),_run2=clos([_debug,_string,_debug,_run_tk,_string,_string,_step1],lexer_run2),_run_lx=clos([_run2],lexer_run_lx),_test=clos([],lexer_test),new(T85512),set_(T85512,"run_lexer",_run_lx,T76722),set_(T76722,"run",_run_lx,T41284),_t=T41284,X=_t,_f=fc_Info(0,0),_i=0,_s="t[1]".