diff tf.pl @ 0:cfb7c6b24319

Initial revision
author kono
date Thu, 30 Aug 2007 14:57:44 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tf.pl	Thu Aug 30 14:57:44 2007 +0900
@@ -0,0 +1,119 @@
+/*
+ Copyright (C) 1988,2005, Shinji Kono 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license, but changing it is not allowed.  You can also
+ use this wording to make the terms for other programs.
+
+ send your comments to kono@ie.u-ryukyu.ac.jp
+*/
+
+/*
+
+	filter for partial compile
+				Sun Oct 13 18:35:19 JST 1985
+				Sun Nov 17 00:03:22 JST 1985 :-static
+				Wed Mar 25 23:00:23 JST 1987 rewrite
+				$Header$
+	*/
+
+pcom(File,Name) :- reset_macro,tokiopcompile(File,Name).
+pcom(File,Name,Out) :- reset_macro,tokiopcompile(File,Out,Name),
+    (Out = user,!;reconsult(Out)).
+ 
+tokiopcompile(S,Names) :-
+    tokiopcompile(S, '#temp.tokio', Names),
+    reconsult('#temp.tokio').   % I suppose we are in debugging.
+ 
+tokiopcompile(S, O,Names) :- 
+    cputime(Time),
+    init_tokiocomp,
+    tell(O), 
+    tokiopcomp(S, [], _L, Names), told,
+    cputime(Time1),Time0 is Time1-Time,
+    c_error((write('END '), nl, 
+    write(Time0), write(' sec.'),nl)).
+ 
+tokiopcomp([], L, L, _Names) :- !. 
+tokiopcomp([H|T], L0, L, Names) :- !,
+	tokiopcomp(H, L0, L1, Names), tokiopcomp(T, L1, L, Names). 
+tokiopcomp(F, L, L, Names) :- 
+    seeing(O), nofileerrors, 
+    tokiofile(F,F1),see(F1), !, 
+    tokiopcomp1('$$$$',Names), seen, see(O), !. 
+tokiopcomp(F, _, _, _) :- 
+    fileerrors, 
+    c_error((
+    display('Cannot open file: '), display(F), ttynl)),fail.
+
+tokiopcomp1(X,_Names) :- tokiocomp2(X),!.
+tokiopcomp1(_,Names) :-
+    read_filter(Next,Names), 
+    tokiopcomp1(Next,Names). 
+tokiopcomp1(_,_Names) :- 
+    c_error((nl,write('read error'),nl)).
+
+read_filter(X,Name) :- repeat,read(X),
+	filter(X,Name).
+
+filter(end_of_file,_):-!.
+filter((:-_X),_):-!.
+filter((?-_X),_):-!.
+filter(('$function'(_X)),_):-!.
+filter(('$define'(_X)),_):-!.
+filter((H:-_),Name) :- !,functor(H,HH,_),
+    (HH=Name ; member(HH,Name)),!.
+filter(X,Name) :- functor(X,HH,_),
+    (HH=Name ; member(HH,Name)),!.
+
+cputime(T) :- 'r_cputime'(T).
+
+/* Macro Level Only Output */
+mcom(File) :- reset_macro,tokiomcompile(File).
+mcom(File,Out) :- reset_macro,tokiomcompile(File,Out).
+ 
+tokiomcompile(S) :-
+    tokiomcompile(S, '#temp.tokio').
+
+tokiomcompile(S, O) :- 
+    cputime(Time),
+    init_tokiocomp,
+    tell(O), 
+    tokiomcomp(S, [], _L), told,
+    cputime(Time1),Time0 is Time1-Time,
+    c_error((write('END '), nl, 
+    write(Time0), write(' sec.'),nl)).
+ 
+tokiomcomp([], L, L) :- !. 
+tokiomcomp([H|T], L0, L) :- !,
+	tokiomcomp(H, L0, L1), tokiomcomp(T, L1, L). 
+tokiomcomp(F, L, L) :- 
+    seeing(O), nofileerrors, 
+    tokiofile(F,F1),see(F1), !, 
+    tokiomcomp1('$$$$'), seen, see(O), !. 
+tokiomcomp(F, _, _) :- 
+    fileerrors, 
+    c_error((
+    display('Cannot open file: '), display(F), ttynl)),fail.
+
+tokiomcomp1(X) :- tokiomcomp2(X),!.
+tokiomcomp1(_) :-
+    read(Next),!,tokiomcomp1(Next). 
+tokiomcomp1(_) :- 
+    c_error((nl,write('read error'),nl)).
+
+tokiomcomp2(end_of_file) :- !. 
+tokiomcomp2('$$$$') :- !,fail. 
+tokiomcomp2('$define'(Macro)) :- 
+     read_macro(Macro),!,fail.
+tokiomcomp2('$function'(Function)) :-
+     read_function(Function),!,fail.
+tokiomcomp2((:- X)) :- 		
+    call(X), write_clause((:- X)),!,fail.
+tokiomcomp2((?- X)) :- 		
+    call(X), write_clause((:- X)),!,fail.
+% tokiomcomp2(Head) :- compiling_message(Head),fail.
+tokiomcomp2(X) :- preprocess(X,X1),!,
+    numbervars(X1,0,_),
+    write_clause(X1),!,fail.
+
+/* end */