22#undef HAVE_LIBREADLINE
28#include "YapIOConfig.h"
35 PAR("module", isatom, WRITE_MODULE) \
36 , PAR("attributes", isatom, WRITE_ATTRIBUTES), \
37 PAR("cycles", booleanFlag, WRITE_CYCLES), \
38 PAR("quoted", booleanFlag, WRITE_QUOTED), \
39 PAR("ignore_ops", booleanFlag, WRITE_IGNORE_OPS), \
40 PAR("max_depth", nat, WRITE_MAX_DEPTH), \
41 PAR("numbervars", booleanFlag, WRITE_NUMBERVARS), \
42 PAR("singletons", booleanFlag, WRITE_SINGLETONS), \
43 PAR("portrayed", booleanFlag, WRITE_PORTRAYED), \
44 PAR("portray", booleanFlag, WRITE_PORTRAY), \
45 PAR("priority", nat, WRITE_PRIORITY), \
46 PAR("character_escapes", booleanFlag, WRITE_CHARACTER_ESCAPES), \
47 PAR("backquotes", booleanFlag, WRITE_BACKQUOTES), \
48 PAR("brace_terms", booleanFlag, WRITE_BRACE_TERMS), \
49 PAR("fullstop", booleanFlag, WRITE_FULLSTOP), \
50 PAR("nl", booleanFlag, WRITE_NL), \
51 PAR("variable_names", ok, WRITE_VARIABLE_NAMES), \
52 PAR(NULL, ok, WRITE_END)
54typedef enum write_enum_choices { WRITE_DEFS() } write_choices_t;
58int beam_write(USES_REGS1) {
60 Yap_plwrite(ARG1, GLOBAL_Stream + LOCAL_c_output_stream, LOCAL_max_depth, 0,
80#define MAX_ISO_LATIN1 255
83 Term tposINPUT, tposOUTPUT;
84 Term backquotes, singlequotes, doublequotes;
85 bool ce, vprefix, vn_asfl;
100extern VarEntry *Yap_LookupVar(
const char *);
101extern Term Yap_VarNames(
VarEntry *, Term);
102extern Term Yap_Variables(
VarEntry *, Term);
103extern Term Yap_Singletons(
VarEntry *, Term);
107extern char *Yap_AllocScannerMemory(
unsigned int);
110extern FILE *Yap_FileDescriptorFromStream(Term);
111extern Int Yap_FirstLineInParse(
void);
112extern int Yap_CheckIOStream(Term,
char *);
113#if defined(YAPOR) || defined(THREADS)
114extern void Yap_LockStream(
void *);
115extern void Yap_UnLockStream(
void *);
117#define Yap_LockStream(X)
118#define Yap_UnLockStream(X)
120extern Int Yap_GetStreamFd(
int);
121extern void Yap_CloseStreams(
void);
122extern void Yap_CloseTemporaryStreams(
int minstream);
123extern int Yap_FirstFreeStreamD();
124extern void Yap_FlushStreams(
void);
125extern void Yap_ReleaseStream(
int);
126extern int Yap_PlGetchar(
void);
127extern int Yap_PlGetWchar(
void);
128extern int Yap_PlFGetchar(
void);
129extern int Yap_GetCharForSIGINT(
void);
130extern Int Yap_StreamToFileNo(Term);
131int Yap_OpenStream(Term tin,
const char* io_mode, YAP_Term user_name, encoding_t
enc);
132extern int Yap_FileStream(FILE *,
Atom, Term,
int,
VFS_t *);
133extern char *Yap_TermToBuffer(Term t,
int flags);
134extern char *Yap_HandleToString(yhandle_t l,
size_t sz,
size_t *length,
136extern int Yap_GetFreeStreamD(
void);
137extern int Yap_GetFreeStreamDForReading(
void);
139extern Term Yap_BufferToTerm(
const char *s, Term opts);
140extern Term Yap_UBufferToTerm(
const unsigned char *s, Term opts);
142extern Term Yap_WStringToList(
wchar_t *);
143extern Term Yap_WStringToListOfAtoms(
wchar_t *);
144extern Atom Yap_LookupWideAtom(
const wchar_t *);
147typedef enum mem_buf_source {
152extern char *Yap_MemStreamBuf(
int sno);
154extern char *Yap_StrPrefix(
const char *buf,
size_t n);
156extern Term Yap_StringToNumberTerm(
const char *s, encoding_t *encp,
158extern int Yap_FormatFloat(Float f,
char **s,
size_t sz);
159extern int Yap_open_buf_read_stream(
void *st,
const char *buf,
size_t nchars,
160 encoding_t *encp, memBufSource src,
161 Atom name, Term uname);
162extern int Yap_open_buf_write_stream(encoding_t
enc, memBufSource src);
163extern Term Yap_BufferToTerm(
const char *s, Term opts);
165extern X_API Term Yap_BufferToTermWithPrioBindings(
const char *s, Term opts,
166 Term bindings,
size_t sz,
168extern FILE *Yap_GetInputStream(Term t,
const char *
m);
169extern FILE *Yap_GetOutputStream(Term t,
const char *
m);
170extern Atom Yap_guessFileName(FILE *f,
int sno,
size_t max);
172extern int Yap_CheckSocketStream(Term stream,
const char *error);
173extern void Yap_init_socks(
char *host,
long interface_port);
175extern bool Yap_flush(
int sno);
177extern uint64_t HashFunction(
const unsigned char *);
178extern uint64_t WideHashFunction(
wchar_t *);
180extern void Yap_InitAbsfPreds(
void);
182inline static Term MkCharTerm(Int c) {
186 size_t n = put_xutf8(cs, c);
189 return MkAtomTerm(Yap_ULookupAtom(cs));
192extern char *GLOBAL_cwd;
194extern char *Yap_VF(
const char *path);
196extern char *Yap_VFAlloc(
const char *path);
199extern uint64_t Yap_StartOfWTimes;
201extern bool Yap_HandleSIGINT(
void);
uTF-8 codepoint translation and processing
VFS_t * Yap_InitAssetManager(void)
bool Yap_RaiseException()
let's go
void Yap_clean_tokenizer(void)
terminate scanning: just closes the comment store
@ encoding
support for coding systens, YAP relies on UTF-8 internally
encoding_t enc
set working directory (may be virtual)