diff --git a/fz/fznslurp.pl b/fz/fznslurp.pl deleted file mode 100644 index 42d271f..0000000 --- a/fz/fznslurp.pl +++ /dev/null @@ -1,79 +0,0 @@ -% == No, Emacs this is -*-Prolog-*- code, not what you thought... ============= - -:- initialization(main). - -main :- - argument_list(A), - main(A). - -main([ACTION_S|REST]) :- - read_term_from_atom(ACTION_S, ACTION, [end_of_term(eof)]), - action(ACTION), !, main(REST). -main([]). - -action(load(F)) :- !, see(F), action(load), seen. -action(load) :- !, load_ast(AST), g_assign(ast, AST). -action(dump(A)) :- !, dump_ast(A). -action(dump) :- !, g_read(ast, AST), dump_ast(AST). -action(name) :- !, - g_read(ast, AST), - sa_names(AST, NAST, ST), - g_assign(ast_n, NAST+ST). -action(type) :- !, - g_read(ast_n, AST+ST), - sa_types(AST, ST), - g_assign(ast_t, AST+ST). -action(halt) :- !, halt. -action(debug) :- g_read(ast_debug, true), !, g_assign(ast_debug, false). -action(debug) :- !, g_assign(ast_debug, true). -action(ACTION) :- format("%w: unknown action.\n", [ACTION]). - - -% ----------------------------------------------------------------------------- - -%% beware: fails if load_ast/3 does not finish with 3rd arg singular list - -load_ast(AST) :- g_read(ast_debug, true), !, load_ast_deb(_>[], [], [AST]). -load_ast(AST) :- load_ast(_>[], [], [AST]). - -load_ast(end_of_file, AST, AST). -load_ast((IN > INT :- MOD), IN, OUT) :- - call(MOD), - read(OP), !, - load_ast(OP, INT, OUT). -load_ast((IN > INT), IN, OUT) :- - read(OP), !, - load_ast(OP, INT, OUT). - -load_ast_deb(end_of_file, AST, AST). -load_ast_deb((IN > INT :- MOD), IN, OUT) :- - ( call(MOD) -> format("EXT OK ~q\n", [MOD]) ; - format("EXT FAIL ~q\n", [MOD]), fail ), - read(OP), !, - writeq(IN), write('.'), nl, - writeq(OP), nl, - load_ast_deb(OP, INT, OUT). -load_ast_deb(IN > INT, IN, OUT) :- - read(OP), !, - writeq(IN), write('.'), nl, - writeq(OP), nl, - load_ast_deb(OP, INT, OUT). - -% ----------------------------------------------------------------------------- - -dump_ast(fzn(PREDS, VARS, CONSTRS, SOLVE)) :- - !, - format("AST:\n", []), - format(" preds:\n", []), PREDS=preds(PS), dump_list(PS), - format(" vars:\n", []), VARS=vars(VS), dump_list(VS), - format(" constrs:\n", []), CONSTRS=constrs(CS), dump_list(CS), - format(" goal:\n ~w\n", [SOLVE]). - -dump_ast(AST) :- write(AST), nl. - -% ----------------------------------------------------------------------------- - -dump_list([]). -dump_list([I|Is]) :- format(" ~w\n", [I]), dump_list(Is). - -% ----------------------------------------------------------------------------- -- libgit2 0.21.2