From 5d21f7a3d28e8bfde8e9d44dbba621d00e64d87f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADtor=20Santos=20Costa?= Date: Thu, 12 Feb 2009 21:35:14 +0000 Subject: [PATCH] add script to build atom info files --- misc/buildatoms | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 misc/buildatoms diff --git a/misc/buildatoms b/misc/buildatoms new file mode 100644 index 000000000..db7185155 --- /dev/null +++ b/misc/buildatoms @@ -0,0 +1,48 @@ + +:- use_module(library(lineutils), + [file_filter/3, + split/3]). + +:- use_module(library(lists), + [append/2]). + +:- initialization(main). + +:- yap_flag(write_strings,on). + +main :- + file_filter('misc/ATOMS','H/tatoms.h',gen_fields), + file_filter('misc/ATOMS','H/iatoms.h',gen_decl), + file_filter('misc/ATOMS','H/ratoms.h',gen_rcov). + +gen_fields(Inp,Out) :- + split(Inp," ",["A",Atom,_,_]), !, + append([" Atom Atom",Atom,"_;\n#define Atom",Atom," Yap_heap_regs->Atom",Atom,"_"],Out). +gen_fields(Inp,Out) :- + split(Inp," ",["F",Name,_,_]), !, + append([" Functor Functor",Name,"_;\n#define Functor",Name," Yap_heap_regs->Functor",Name,"_"],Out). + +gen_rcov(Inp,Out) :- + split(Inp," ",["A",Atom,_,_]), !, + append([" Atom",Atom," = AtomAdjust(Atom",Atom,");"],Out). +gen_rcov(Inp,Out) :- + split(Inp," ",["F",Functor,_,_]), !, + append([" Functor",Functor," = FuncAdjust(Functor",Functor,");"],Out). + +gen_decl(Inp,Out) :- + split(Inp," ",["A",Atom,"N",String]), !, + append([" Atom",Atom," = Yap_LookupAtom(",String,");"],Out). +gen_decl(Inp,Out) :- + split(Inp," ",["A",Atom,"F",String]), !, + append([" Atom",Atom," = Yap_FullLookupAtom(",String,");"],Out). +gen_decl(Inp,Out) :- + split(Inp," ",["F",Name,Atom,Arity]), !, + append([" Functor",Name," = Yap_MkFunctor(Atom",Atom,",",Arity,");"],Out). + + + + + + + +