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