1
2:- use_module(library(lineutils),
3	[file_filter_with_init/5,
4	 split/3]).
5
6:- use_module(library(lists),
7	[append/2]).
8
9:- initialization(main).
10
11:- yap_flag(write_strings,on).
12
13main :-
14	warning(Warning),
15	file_filter_with_init('misc/ATOMS','H/tatoms.h',gen_fields, Warning, ['tatoms.h']),
16	file_filter_with_init('misc/ATOMS','H/iatoms.h',gen_decl, Warning, ['iatoms.h']),
17	file_filter_with_init('misc/ATOMS','H/ratoms.h',gen_rcov, Warning, ['ratoms.h']).
18
19warning('~n  /* This file, ~a, was generated automatically by \"yap -L misc/buildatoms\"~n     please do not update, update misc/ATOMS instead */~n~n').
20
21gen_fields(Inp,Out) :-
22	split(Inp,"	",["A",Atom,_,_]), !,
23	append(["  Atom Atom",Atom,"_;\n#define Atom",Atom," Yap_heap_regs->Atom",Atom,"_"],Out).
24%gen_fields(Inp,Out) :-
25%	split(Inp," 	",["A",Atom,_]), !,
26%	append(["  Atom Atom_",Atom,"_;\n#define Atom_",Atom," Yap_heap_regs->Atom_",Atom,"_"],Out).
27gen_fields(Inp,Out) :-
28	split(Inp,"	",["F",Name,_,_]), !,
29	append(["  Functor Functor",Name,"_;\n#define Functor",Name," Yap_heap_regs->Functor",Name,"_"],Out).
30%gen_fields(Inp,Out) :-
31%	split(Inp," 	",["F",Name,Arity]), !,
32%	append(["  Functor Functor_",Name,Arity,"_;\n#define Functor_",Name,Arity," Yap_heap_regs->Functor_",Name,Arity,"_"],Out).
33
34gen_rcov(Inp,Out) :-
35	split(Inp,"	",["A",Atom,_,_]), !,
36	append(["  Atom",Atom," = AtomAdjust(Atom",Atom,");"],Out).
37%gen_rcov(Inp,Out) :-
38%	split(Inp," 	",["A",Atom,_]), !,
39%	append(["  Atom_",Atom," = AtomAdjust(Atom_",Atom,");"],Out).
40gen_rcov(Inp,Out) :-
41	split(Inp,"	",["F",Functor,_,_]), !,
42	append(["  Functor",Functor," = FuncAdjust(Functor",Functor,");"],Out).
43%gen_rcov(Inp,Out) :-
44%	split(Inp," 	",["F",Functor,Arity]), !,
45%	append(["  Functor_",Functor,Arity," = FuncAdjust(Functor_",Functor,Arity,");"],Out).
46
47gen_decl(Inp,Out) :-
48	split(Inp,"	",["A",Atom,"N",String]), !,
49	append(["  Atom",Atom," = Yap_LookupAtom(",String,");"],Out).
50gen_decl(Inp,Out) :-
51	split(Inp,"	",["A",Atom,"F",String]), !,
52	append(["  Atom",Atom," = Yap_FullLookupAtom(",String,");"],Out).
53%gen_decl(Inp,Out) :-
54%	split(Inp," 	",["A",Atom,String]), String = [0'",0'$|_], !,
55%	append(["  Atom_",Atom," = Yap_FullLookupAtom(",String,");"],Out).
56%gen_decl(Inp,Out) :-
57%	split(Inp," 	",["A",Atom,String]), !,
58%	append(["  Atom_",Atom," = Yap_LookupAtom(",String,");"],Out).
59gen_decl(Inp,Out) :-
60	split(Inp,"	",["F",Name,Atom,Arity]), !,
61	append(["  Functor",Name," = Yap_MkFunctor(Atom",Atom,",",Arity,");"],Out).
62%gen_decl(Inp,Out) :-
63%	split(Inp," 	",["F",Name,Arity]), !,
64%	append(["  Functor_",Name,Arity," = Yap_MkFunctor(Atom_",Name,",",Arity,");"],Out).
65
66