simplify text code by just using UF8 and allocating in trail
This commit is contained in:
parent
cc1a44c7a7
commit
eb54e3e052
@ -1306,7 +1306,6 @@ X_API Term YAP_NBufferToString(const char *s, size_t len) {
|
|||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
out.type = YAP_STRING_CODES | YAP_STRING_NCHARS | YAP_STRING_TRUNC;
|
out.type = YAP_STRING_CODES | YAP_STRING_NCHARS | YAP_STRING_TRUNC;
|
||||||
out.sz = len;
|
|
||||||
out.max = len;
|
out.max = len;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
@ -1344,7 +1343,6 @@ X_API Term YAP_NWideBufferToString(const wchar_t *s, size_t len) {
|
|||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.type = YAP_STRING_WCHARS;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
out.type = YAP_STRING_CODES | YAP_STRING_NCHARS | YAP_STRING_TRUNC;
|
out.type = YAP_STRING_CODES | YAP_STRING_NCHARS | YAP_STRING_TRUNC;
|
||||||
out.sz = len;
|
|
||||||
out.max = len;
|
out.max = len;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
@ -1427,7 +1425,6 @@ X_API Term YAP_NBufferToAtomList(const char *s, size_t len) {
|
|||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
out.type = YAP_STRING_ATOMS | YAP_STRING_NCHARS | YAP_STRING_TRUNC;
|
out.type = YAP_STRING_ATOMS | YAP_STRING_NCHARS | YAP_STRING_TRUNC;
|
||||||
out.sz = len;
|
|
||||||
out.max = len;
|
out.max = len;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
@ -1465,7 +1462,6 @@ X_API Term YAP_NWideBufferToAtomList(const wchar_t *s, size_t len) {
|
|||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.type = YAP_STRING_WCHARS;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
out.type = YAP_STRING_ATOMS | YAP_STRING_NCHARS | YAP_STRING_TRUNC;
|
out.type = YAP_STRING_ATOMS | YAP_STRING_NCHARS | YAP_STRING_TRUNC;
|
||||||
out.sz = len;
|
|
||||||
out.max = len;
|
out.max = len;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
@ -1487,7 +1483,6 @@ X_API Term YAP_NWideBufferToAtomDiffList(const wchar_t *s, Term t0,
|
|||||||
inp.type = YAP_STRING_WCHARS;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
out.type =
|
out.type =
|
||||||
YAP_STRING_ATOMS | YAP_STRING_NCHARS | YAP_STRING_TRUNC | YAP_STRING_DIFF;
|
YAP_STRING_ATOMS | YAP_STRING_NCHARS | YAP_STRING_TRUNC | YAP_STRING_DIFF;
|
||||||
out.sz = len;
|
|
||||||
out.max = len;
|
out.max = len;
|
||||||
out.dif = t0;
|
out.dif = t0;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
@ -1528,7 +1523,6 @@ X_API Term YAP_NBufferToDiffList(const char *s, Term t0, size_t len) {
|
|||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
out.type =
|
out.type =
|
||||||
YAP_STRING_CODES | YAP_STRING_NCHARS | YAP_STRING_TRUNC | YAP_STRING_DIFF;
|
YAP_STRING_CODES | YAP_STRING_NCHARS | YAP_STRING_TRUNC | YAP_STRING_DIFF;
|
||||||
out.sz = len;
|
|
||||||
out.max = len;
|
out.max = len;
|
||||||
out.dif = t0;
|
out.dif = t0;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
@ -1569,7 +1563,6 @@ X_API Term YAP_NWideBufferToDiffList(const wchar_t *s, Term t0, size_t len) {
|
|||||||
inp.type = YAP_STRING_WCHARS;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
out.type =
|
out.type =
|
||||||
YAP_STRING_CODES | YAP_STRING_NCHARS | YAP_STRING_TRUNC | YAP_STRING_DIFF;
|
YAP_STRING_CODES | YAP_STRING_NCHARS | YAP_STRING_TRUNC | YAP_STRING_DIFF;
|
||||||
out.sz = len;
|
|
||||||
out.max = len;
|
out.max = len;
|
||||||
out.dif = t0;
|
out.dif = t0;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
|
62
C/parser.c
62
C/parser.c
@ -744,65 +744,9 @@ static Term ParseTerm(int prio, JMPBUFF *FailBuff, encoding_t enc, Term cmod USE
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case String_tok: /* build list on the heap */
|
case String_tok: /* build list on the heap */
|
||||||
{
|
t = LOCAL_tokptr->TokInfo;
|
||||||
Volatile char *p = (char *)LOCAL_tokptr->TokInfo;
|
NextToken;
|
||||||
// we may be operating under a syntax error
|
break;
|
||||||
yap_error_number oerr = LOCAL_Error_TYPE;
|
|
||||||
LOCAL_Error_TYPE = YAP_NO_ERROR;
|
|
||||||
t = Yap_CharsToTDQ(p, cmod, enc PASS_REGS);
|
|
||||||
if (!t) {
|
|
||||||
syntax_msg("line %d: could not convert \"%s\"",LOCAL_tokptr->TokPos, (char *)LOCAL_tokptr->TokInfo);
|
|
||||||
FAIL;
|
|
||||||
}
|
|
||||||
LOCAL_Error_TYPE = oerr;
|
|
||||||
NextToken;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case WString_tok: /* build list on the heap */
|
|
||||||
{
|
|
||||||
Volatile wchar_t *p = (wchar_t *)LOCAL_tokptr->TokInfo;
|
|
||||||
// we may be operating under a syntax error
|
|
||||||
yap_error_number oerr = LOCAL_Error_TYPE;
|
|
||||||
LOCAL_Error_TYPE = YAP_NO_ERROR;
|
|
||||||
t = Yap_WCharsToTDQ(p, cmod PASS_REGS);
|
|
||||||
if (!t) {
|
|
||||||
syntax_msg("line %d: could not convert \'%S\'",LOCAL_tokptr->TokPos, (wchar_t *)LOCAL_tokptr->TokInfo);
|
|
||||||
FAIL;
|
|
||||||
}
|
|
||||||
LOCAL_Error_TYPE = oerr;
|
|
||||||
NextToken;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case BQString_tok: /* build list on the heap */
|
|
||||||
{
|
|
||||||
Volatile char *p = (char *)LOCAL_tokptr->TokInfo;
|
|
||||||
// we may be operating under a syntax error
|
|
||||||
yap_error_number oerr = LOCAL_Error_TYPE;
|
|
||||||
LOCAL_Error_TYPE = YAP_NO_ERROR;
|
|
||||||
|
|
||||||
t = Yap_CharsToTBQ(p, cmod, LOCAL_encoding PASS_REGS);
|
|
||||||
if (!t) {
|
|
||||||
syntax_msg("line %d: could not convert \'%s\"",LOCAL_tokptr->TokPos, (char *)LOCAL_tokptr->TokInfo);
|
|
||||||
FAIL;
|
|
||||||
}
|
|
||||||
LOCAL_Error_TYPE = oerr;
|
|
||||||
NextToken;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case WBQString_tok: /* build list on the heap */
|
|
||||||
{
|
|
||||||
Volatile wchar_t *p = (wchar_t *)LOCAL_tokptr->TokInfo;
|
|
||||||
t = Yap_WCharsToTBQ(p, cmod PASS_REGS);
|
|
||||||
// we may be operating under a syntax error
|
|
||||||
yap_error_number oerr = LOCAL_Error_TYPE;
|
|
||||||
LOCAL_Error_TYPE = YAP_NO_ERROR;
|
|
||||||
if (!t) {
|
|
||||||
syntax_msg("line %d: could not convert \"%S\"",LOCAL_tokptr->TokPos, (wchar_t *)LOCAL_tokptr->TokInfo);
|
|
||||||
FAIL;
|
|
||||||
}
|
|
||||||
LOCAL_Error_TYPE = oerr;
|
|
||||||
NextToken;
|
|
||||||
} break;
|
|
||||||
|
|
||||||
case Var_tok:
|
case Var_tok:
|
||||||
varinfo = (VarEntry *)(LOCAL_tokptr->TokInfo);
|
varinfo = (VarEntry *)(LOCAL_tokptr->TokInfo);
|
||||||
|
110
C/scanner.c
110
C/scanner.c
@ -575,7 +575,7 @@ static TokEntry *AuxSpaceError__(TokEntry *p, TokEntry *l,
|
|||||||
/* huge atom or variable, we are in trouble */
|
/* huge atom or variable, we are in trouble */
|
||||||
LOCAL_ErrorMessage = (char *)msg;
|
LOCAL_ErrorMessage = (char *)msg;
|
||||||
LOCAL_Error_TYPE = RESOURCE_ERROR_AUXILIARY_STACK;
|
LOCAL_Error_TYPE = RESOURCE_ERROR_AUXILIARY_STACK;
|
||||||
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
Yap_ReleasePreAllocCodeSpace((COBEADDR)TokImage);
|
||||||
if (p) {
|
if (p) {
|
||||||
p->Tok = eot_tok;
|
p->Tok = eot_tok;
|
||||||
p->TokInfo = TermOutOfAuxspaceError;
|
p->TokInfo = TermOutOfAuxspaceError;
|
||||||
@ -584,12 +584,13 @@ static TokEntry *AuxSpaceError__(TokEntry *p, TokEntry *l,
|
|||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void InitScannerMemory(void) {
|
static void * InitScannerMemory(void) {
|
||||||
CACHE_REGS
|
CACHE_REGS
|
||||||
LOCAL_ErrorMessage = NULL;
|
LOCAL_ErrorMessage = NULL;
|
||||||
LOCAL_Error_Size = 0;
|
LOCAL_Error_Size = 0;
|
||||||
LOCAL_ScannerStack = (char *)TR;
|
|
||||||
LOCAL_ScannerExtraBlocks = NULL;
|
LOCAL_ScannerExtraBlocks = NULL;
|
||||||
|
LOCAL_ScannerStack = (char *)TR;
|
||||||
|
return (char *)TR;
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *AllocScannerMemory(unsigned int size) {
|
static char *AllocScannerMemory(unsigned int size) {
|
||||||
@ -1624,6 +1625,7 @@ TokEntry *Yap_tokenizer(struct stream_desc *inp_stream, bool store_comments,
|
|||||||
LOCAL_ErrorMessage = "layout character \n inside quotes";
|
LOCAL_ErrorMessage = "layout character \n inside quotes";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ch == quote) {
|
if (ch == quote) {
|
||||||
ch = getchrq(inp_stream);
|
ch = getchrq(inp_stream);
|
||||||
if (ch != quote)
|
if (ch != quote)
|
||||||
@ -1661,55 +1663,49 @@ TokEntry *Yap_tokenizer(struct stream_desc *inp_stream, bool store_comments,
|
|||||||
} else {
|
} else {
|
||||||
*charp = '\0';
|
*charp = '\0';
|
||||||
}
|
}
|
||||||
if (quote == '"' || quote == '`') {
|
if (quote == '"' ) {
|
||||||
if (wcharp) {
|
if (wcharp) {
|
||||||
mp = AllocScannerMemory(sizeof(wchar_t) * (len + 1));
|
t->TokInfo = Yap_WCharsToTDQ((wchar_t *)TokImage,
|
||||||
} else {
|
CurrentModule
|
||||||
mp = AllocScannerMemory(len + 1);
|
PASS_REGS);
|
||||||
}
|
} else {
|
||||||
if (mp == NULL) {
|
t->TokInfo = Yap_CharsToTDQ(TokImage, CurrentModule, LOCAL_encoding
|
||||||
LOCAL_ErrorMessage =
|
PASS_REGS);
|
||||||
"not enough heap space to read in string or quoted atom";
|
}
|
||||||
|
if (!(t->TokInfo)) {
|
||||||
|
return CodeSpaceError(t, p, l);
|
||||||
|
}
|
||||||
|
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
||||||
|
t->Tok = Ord(kind = String_tok);
|
||||||
|
} else if (quote == '`') {
|
||||||
|
if (wcharp) {
|
||||||
|
t->TokInfo = Yap_WCharsToTBQ((wchar_t *)TokImage,
|
||||||
|
CurrentModule PASS_REGS);
|
||||||
|
} else {
|
||||||
|
t->TokInfo = Yap_CharsToTBQ(TokImage, CurrentModule,
|
||||||
|
LOCAL_encoding
|
||||||
|
PASS_REGS);
|
||||||
|
}
|
||||||
|
if (!(t->TokInfo)) {
|
||||||
|
return CodeSpaceError(t, p, l);
|
||||||
|
}
|
||||||
|
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
||||||
|
t->Tok = Ord(kind = String_tok);
|
||||||
|
} else {
|
||||||
|
if (wcharp) {
|
||||||
|
t->TokInfo = Unsigned(Yap_LookupWideAtom((wchar_t *)TokImage));
|
||||||
|
} else {
|
||||||
|
t->TokInfo = Unsigned(Yap_LookupAtom(TokImage));
|
||||||
|
}
|
||||||
|
if (!(t->TokInfo)) {
|
||||||
|
return CodeSpaceError(t, p, l);
|
||||||
|
}
|
||||||
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
||||||
t->Tok = Ord(kind = eot_tok);
|
t->Tok = Ord(kind = Name_tok);
|
||||||
t->TokInfo = TermOutOfHeapError;
|
if (ch == '(')
|
||||||
return l;
|
solo_flag = false;
|
||||||
}
|
|
||||||
if (wcharp) {
|
|
||||||
wcscpy((wchar_t *)mp, (wchar_t *)TokImage);
|
|
||||||
} else {
|
|
||||||
strcpy(mp, TokImage);
|
|
||||||
}
|
|
||||||
t->TokInfo = Unsigned(mp);
|
|
||||||
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
|
||||||
if (quote == '"') {
|
|
||||||
if (wcharp) {
|
|
||||||
t->Tok = Ord(kind = WString_tok);
|
|
||||||
} else {
|
|
||||||
t->Tok = Ord(kind = String_tok);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (wcharp) {
|
|
||||||
t->Tok = Ord(kind = WBQString_tok);
|
|
||||||
} else {
|
|
||||||
t->Tok = Ord(kind = BQString_tok);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (wcharp) {
|
|
||||||
t->TokInfo = Unsigned(Yap_LookupWideAtom((wchar_t *)TokImage));
|
|
||||||
} else {
|
|
||||||
t->TokInfo = Unsigned(Yap_LookupAtom(TokImage));
|
|
||||||
}
|
|
||||||
if (!(t->TokInfo)) {
|
|
||||||
return CodeSpaceError(t, p, l);
|
|
||||||
}
|
|
||||||
Yap_ReleasePreAllocCodeSpace((CODEADDR)TokImage);
|
|
||||||
t->Tok = Ord(kind = Name_tok);
|
|
||||||
if (ch == '(')
|
|
||||||
solo_flag = false;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BS:
|
case BS:
|
||||||
if (ch == '\0') {
|
if (ch == '\0') {
|
||||||
@ -2046,9 +2042,12 @@ TokEntry *Yap_tokenizer(struct stream_desc *inp_stream, bool store_comments,
|
|||||||
t->TokInfo = TermEof;
|
t->TokInfo = TermEof;
|
||||||
}
|
}
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
if (GLOBAL_Option[2])
|
if (GLOBAL_Option[2]) {
|
||||||
fprintf(stderr, "[Token %d %s]", Ord(kind),
|
static int n;
|
||||||
Yap_tokRep(t, inp_stream->encoding));
|
if (n == 975) jmp_deb(2);
|
||||||
|
fprintf(stderr, "[Token %d %s %d]", Ord(kind),
|
||||||
|
Yap_tokRep(t, inp_stream->encoding),n++);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
if (LOCAL_ErrorMessage) {
|
if (LOCAL_ErrorMessage) {
|
||||||
/* insert an error token to inform the system of what happened */
|
/* insert an error token to inform the system of what happened */
|
||||||
@ -2069,10 +2068,12 @@ TokEntry *Yap_tokenizer(struct stream_desc *inp_stream, bool store_comments,
|
|||||||
return (l);
|
return (l);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int vsc_count;
|
||||||
|
|
||||||
void Yap_clean_tokenizer(TokEntry *tokstart, VarEntry *vartable,
|
void Yap_clean_tokenizer(TokEntry *tokstart, VarEntry *vartable,
|
||||||
VarEntry *anonvartable) {
|
VarEntry *anonvartable) {
|
||||||
CACHE_REGS
|
CACHE_REGS
|
||||||
struct scanner_extra_alloc *ptr = LOCAL_ScannerExtraBlocks;
|
struct scanner_extra_alloc *ptr = LOCAL_ScannerExtraBlocks;
|
||||||
while (ptr) {
|
while (ptr) {
|
||||||
struct scanner_extra_alloc *next = ptr->next;
|
struct scanner_extra_alloc *next = ptr->next;
|
||||||
free(ptr);
|
free(ptr);
|
||||||
@ -2085,6 +2086,7 @@ void Yap_clean_tokenizer(TokEntry *tokstart, VarEntry *vartable,
|
|||||||
free(LOCAL_CommentsBuff);
|
free(LOCAL_CommentsBuff);
|
||||||
LOCAL_CommentsBuff = NULL;
|
LOCAL_CommentsBuff = NULL;
|
||||||
}
|
}
|
||||||
|
LOCAL_ScannerStack = NULL;
|
||||||
LOCAL_CommentsBuffLim = 0;
|
LOCAL_CommentsBuffLim = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
101
H/YapText.h
101
H/YapText.h
@ -175,8 +175,13 @@ inline static utf8proc_ssize_t strlen_utf8(const utf8proc_uint8_t *pt) {
|
|||||||
utf8proc_ssize_t l = utf8proc_iterate(pt, -1, &b);
|
utf8proc_ssize_t l = utf8proc_iterate(pt, -1, &b);
|
||||||
if (b == 0)
|
if (b == 0)
|
||||||
return rc;
|
return rc;
|
||||||
pt += l;
|
else if (b > 0) {
|
||||||
rc += l;
|
pt += l;
|
||||||
|
rc += l;
|
||||||
|
} else {
|
||||||
|
pt++;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
@ -298,7 +303,8 @@ typedef enum {
|
|||||||
YAP_STRING_WITH_BUFFER = 0x40000, // output on existing buffer
|
YAP_STRING_WITH_BUFFER = 0x40000, // output on existing buffer
|
||||||
YAP_STRING_MALLOC = 0x80000, // output on malloced buffer
|
YAP_STRING_MALLOC = 0x80000, // output on malloced buffer
|
||||||
YAP_STRING_UPCASE = 0x100000, // output on malloced buffer
|
YAP_STRING_UPCASE = 0x100000, // output on malloced buffer
|
||||||
YAP_STRING_DOWNCASE = 0x200000 // output on malloced buffer
|
YAP_STRING_DOWNCASE = 0x200000, // output on malloced buffer
|
||||||
|
YAP_STRING_IN_TMP = 0x200000 // temporary space has been allocated
|
||||||
} enum_seq_type_t;
|
} enum_seq_type_t;
|
||||||
|
|
||||||
typedef UInt seq_type_t;
|
typedef UInt seq_type_t;
|
||||||
@ -325,7 +331,6 @@ typedef struct text_cvt {
|
|||||||
seq_type_t type;
|
seq_type_t type;
|
||||||
seq_val_t val;
|
seq_val_t val;
|
||||||
Term mod; // optional
|
Term mod; // optional
|
||||||
size_t sz; // fixed sz, or -1
|
|
||||||
Term dif; // diff-list, usually TermNil
|
Term dif; // diff-list, usually TermNil
|
||||||
size_t max; // max_size
|
size_t max; // max_size
|
||||||
encoding_t enc;
|
encoding_t enc;
|
||||||
@ -385,14 +390,14 @@ static inline seq_type_t mod_to_bqtype(Term mod USES_REGS) {
|
|||||||
|
|
||||||
// the routines
|
// the routines
|
||||||
|
|
||||||
extern void *Yap_readText(void *buf, seq_tv_t *inp, encoding_t *enc,
|
extern unsigned char *Yap_readText(seq_tv_t *inp, size_t *lengp
|
||||||
int *minimal, size_t *lengp USES_REGS);
|
USES_REGS);
|
||||||
extern bool write_Text(void *inp, seq_tv_t *out, encoding_t enc, int minimal,
|
extern bool write_Text(unsigned char *inp, seq_tv_t *out,
|
||||||
size_t leng USES_REGS);
|
size_t leng USES_REGS);
|
||||||
extern bool Yap_CVT_Text(seq_tv_t *inp, seq_tv_t *out USES_REGS);
|
extern bool Yap_CVT_Text(seq_tv_t *inp, seq_tv_t *out USES_REGS);
|
||||||
extern void *Yap_Concat_Text(int n, seq_tv_t inp[], seq_tv_t *out USES_REGS);
|
extern bool Yap_Concat_Text(int n, seq_tv_t inp[], seq_tv_t *out USES_REGS);
|
||||||
extern void *Yap_Splice_Text(int n, size_t cuts[], seq_tv_t *inp,
|
extern bool Yap_Splice_Text(int n, size_t cuts[], seq_tv_t *inp,
|
||||||
encoding_t encv[], seq_tv_t outv[] USES_REGS);
|
seq_tv_t outv[] USES_REGS);
|
||||||
|
|
||||||
// user friendly interface
|
// user friendly interface
|
||||||
|
|
||||||
@ -675,7 +680,6 @@ static inline Atom Yap_CharsToAtom(const char *s, encoding_t enc USES_REGS) {
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -690,7 +694,6 @@ static inline Term Yap_CharsToListOfAtoms(const char *s,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -705,7 +708,6 @@ static inline Term Yap_CharsToListOfCodes(const char *s,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -719,7 +721,6 @@ static inline Term Yap_UTF8ToListOfCodes(const char *s USES_REGS) {
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
inp.enc = ENC_ISO_UTF8;
|
inp.enc = ENC_ISO_UTF8;
|
||||||
out.type = YAP_STRING_CODES;
|
out.type = YAP_STRING_CODES;
|
||||||
@ -732,7 +733,6 @@ static inline Atom Yap_UTF8ToAtom(const unsigned char *s USES_REGS) {
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.uc0 = s;
|
inp.val.uc0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
inp.enc = ENC_ISO_UTF8;
|
inp.enc = ENC_ISO_UTF8;
|
||||||
out.type = YAP_STRING_ATOM;
|
out.type = YAP_STRING_ATOM;
|
||||||
@ -747,7 +747,6 @@ static inline Term Yap_CharsToDiffListOfCodes(const char *s, Term tail,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -763,7 +762,6 @@ static inline Term Yap_UTF8ToDiffListOfCodes(const char *s,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
inp.enc = ENC_ISO_UTF8;
|
inp.enc = ENC_ISO_UTF8;
|
||||||
out.type = YAP_STRING_DIFF | YAP_STRING_CODES;
|
out.type = YAP_STRING_DIFF | YAP_STRING_CODES;
|
||||||
@ -779,7 +777,6 @@ static inline Term Yap_WCharsToDiffListOfCodes(const wchar_t *s,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_WCHARS;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
out.type = YAP_STRING_DIFF | YAP_STRING_CODES;
|
out.type = YAP_STRING_DIFF | YAP_STRING_CODES;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -794,7 +791,6 @@ static inline Term Yap_CharsToString(const char *s, encoding_t enc USES_REGS) {
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
out.type = YAP_STRING_STRING;
|
out.type = YAP_STRING_STRING;
|
||||||
@ -808,7 +804,6 @@ static inline char *Yap_AtomToUTF8Text(Atom at, const char *s USES_REGS) {
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.a = at;
|
inp.val.a = at;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_ATOM;
|
inp.type = YAP_STRING_ATOM;
|
||||||
out.type = YAP_STRING_CHARS;
|
out.type = YAP_STRING_CHARS;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -829,7 +824,6 @@ static inline Term Yap_CharsToTDQ(const char *s, Term mod,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
inp.mod = mod;
|
inp.mod = mod;
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
@ -847,7 +841,6 @@ static inline Term Yap_CharsToTBQ(const char *s, Term mod,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_CHARS;
|
inp.type = YAP_STRING_CHARS;
|
||||||
inp.mod = mod;
|
inp.mod = mod;
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
@ -944,7 +937,7 @@ static inline Term Yap_ListToAtomic(Term t0 USES_REGS) {
|
|||||||
inp.type = YAP_STRING_STRING | YAP_STRING_ATOMS_CODES | YAP_STRING_TERM;
|
inp.type = YAP_STRING_STRING | YAP_STRING_ATOMS_CODES | YAP_STRING_TERM;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
out.type = YAP_STRING_ATOM | YAP_STRING_INT | YAP_STRING_FLOAT |
|
out.type = YAP_STRING_ATOM | YAP_STRING_INT | YAP_STRING_FLOAT |
|
||||||
YAP_STRING_BIG | YAP_STRING_TERM;
|
YAP_STRING_BIG ;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
return out.val.t;
|
return out.val.t;
|
||||||
@ -1028,7 +1021,6 @@ static inline Atom Yap_NCharsToAtom(const char *s, size_t len,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = len;
|
|
||||||
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
out.type = YAP_STRING_ATOM;
|
out.type = YAP_STRING_ATOM;
|
||||||
@ -1058,7 +1050,6 @@ static inline Term Yap_NCharsToListOfCodes(const char *s, size_t len,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = len;
|
|
||||||
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
out.type = YAP_STRING_CODES;
|
out.type = YAP_STRING_CODES;
|
||||||
@ -1073,7 +1064,6 @@ static inline Term Yap_NCharsToString(const char *s, size_t len,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.sz = len;
|
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
||||||
out.type = YAP_STRING_STRING;
|
out.type = YAP_STRING_STRING;
|
||||||
@ -1089,7 +1079,6 @@ static inline Term Yap_NCharsToTDQ(const char *s, size_t len, encoding_t enc,
|
|||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
||||||
inp.sz = len;
|
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
inp.mod = mod;
|
inp.mod = mod;
|
||||||
out.type = mod_to_type(mod PASS_REGS);
|
out.type = mod_to_type(mod PASS_REGS);
|
||||||
@ -1107,9 +1096,9 @@ static inline Term Yap_NCharsToTBQ(const char *s, size_t len, encoding_t enc,
|
|||||||
|
|
||||||
inp.val.c0 = s;
|
inp.val.c0 = s;
|
||||||
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_CHARS | YAP_STRING_NCHARS;
|
||||||
inp.sz = len;
|
|
||||||
inp.enc = enc;
|
inp.enc = enc;
|
||||||
inp.mod = mod;
|
|
||||||
|
|
||||||
out.type = mod_to_bqtype(mod PASS_REGS);
|
out.type = mod_to_bqtype(mod PASS_REGS);
|
||||||
out.max = len;
|
out.max = len;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
@ -1167,7 +1156,6 @@ static inline Atom Yap_NWCharsToAtom(const wchar_t *s, size_t len USES_REGS) {
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.sz = len;
|
|
||||||
inp.type = YAP_STRING_WCHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_WCHARS | YAP_STRING_NCHARS;
|
||||||
out.type = YAP_STRING_ATOM;
|
out.type = YAP_STRING_ATOM;
|
||||||
out.max = len;
|
out.max = len;
|
||||||
@ -1181,7 +1169,6 @@ static inline Term Yap_NWCharsToListOfAtoms(const wchar_t *s,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.sz = len;
|
|
||||||
inp.type = YAP_STRING_WCHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_WCHARS | YAP_STRING_NCHARS;
|
||||||
out.type = YAP_STRING_ATOMS;
|
out.type = YAP_STRING_ATOMS;
|
||||||
out.max = len;
|
out.max = len;
|
||||||
@ -1195,7 +1182,6 @@ static inline Term Yap_NWCharsToListOfCodes(const wchar_t *s,
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.sz = len;
|
|
||||||
inp.type = YAP_STRING_WCHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_WCHARS | YAP_STRING_NCHARS;
|
||||||
out.type = YAP_STRING_CODES;
|
out.type = YAP_STRING_CODES;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -1209,7 +1195,6 @@ static inline Term Yap_NWCharsToString(const wchar_t *s, size_t len USES_REGS) {
|
|||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
|
|
||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.sz = len;
|
|
||||||
inp.type = YAP_STRING_WCHARS | YAP_STRING_NCHARS;
|
inp.type = YAP_STRING_WCHARS | YAP_STRING_NCHARS;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
out.type = YAP_STRING_STRING;
|
out.type = YAP_STRING_STRING;
|
||||||
@ -1221,7 +1206,6 @@ static inline Term Yap_NWCharsToString(const wchar_t *s, size_t len USES_REGS) {
|
|||||||
|
|
||||||
static inline Atom Yap_StringToAtom(Term t0 USES_REGS) {
|
static inline Atom Yap_StringToAtom(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.sz = 0;
|
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -1233,7 +1217,6 @@ static inline Atom Yap_StringToAtom(Term t0 USES_REGS) {
|
|||||||
|
|
||||||
static inline Atom Yap_StringSWIToAtom(Term t0 USES_REGS) {
|
static inline Atom Yap_StringSWIToAtom(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.sz = 0;
|
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_STRING | YAP_STRING_ATOM | YAP_STRING_INT |
|
inp.type = YAP_STRING_STRING | YAP_STRING_ATOM | YAP_STRING_INT |
|
||||||
YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_ATOMS_CODES |
|
YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_ATOMS_CODES |
|
||||||
@ -1247,11 +1230,10 @@ static inline Atom Yap_StringSWIToAtom(Term t0 USES_REGS) {
|
|||||||
|
|
||||||
static inline size_t Yap_StringToAtomic(Term t0 USES_REGS) {
|
static inline size_t Yap_StringToAtomic(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.sz = 0;
|
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
out.type = YAP_STRING_ATOM | YAP_STRING_INT | YAP_STRING_FLOAT |
|
out.type = YAP_STRING_ATOM | YAP_STRING_INT | YAP_STRING_FLOAT |
|
||||||
YAP_STRING_BIG | YAP_STRING_TERM;
|
YAP_STRING_BIG ;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
@ -1260,7 +1242,6 @@ static inline size_t Yap_StringToAtomic(Term t0 USES_REGS) {
|
|||||||
|
|
||||||
static inline size_t Yap_StringToLength(Term t0 USES_REGS) {
|
static inline size_t Yap_StringToLength(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.sz = 0;
|
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
out.type = YAP_STRING_LENGTH;
|
out.type = YAP_STRING_LENGTH;
|
||||||
@ -1272,7 +1253,6 @@ static inline size_t Yap_StringToLength(Term t0 USES_REGS) {
|
|||||||
|
|
||||||
static inline size_t Yap_StringToListOfAtoms(Term t0 USES_REGS) {
|
static inline size_t Yap_StringToListOfAtoms(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.sz = 0;
|
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
out.type = YAP_STRING_ATOMS;
|
out.type = YAP_STRING_ATOMS;
|
||||||
@ -1284,7 +1264,6 @@ static inline size_t Yap_StringToListOfAtoms(Term t0 USES_REGS) {
|
|||||||
|
|
||||||
static inline size_t Yap_StringSWIToListOfAtoms(Term t0 USES_REGS) {
|
static inline size_t Yap_StringSWIToListOfAtoms(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.sz = 0;
|
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.type = YAP_STRING_STRING | YAP_STRING_ATOM | YAP_STRING_INT |
|
inp.type = YAP_STRING_STRING | YAP_STRING_ATOM | YAP_STRING_INT |
|
||||||
YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_ATOMS_CODES |
|
YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_ATOMS_CODES |
|
||||||
@ -1299,7 +1278,6 @@ static inline size_t Yap_StringSWIToListOfAtoms(Term t0 USES_REGS) {
|
|||||||
static inline size_t Yap_StringToListOfCodes(Term t0 USES_REGS) {
|
static inline size_t Yap_StringToListOfCodes(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
out.type = YAP_STRING_CODES;
|
out.type = YAP_STRING_CODES;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -1324,7 +1302,6 @@ static inline size_t Yap_StringSWIToListOfCodes(Term t0 USES_REGS) {
|
|||||||
static inline Term Yap_StringToNumber(Term t0 USES_REGS) {
|
static inline Term Yap_StringToNumber(Term t0 USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.t = t0;
|
inp.val.t = t0;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
out.type =
|
out.type =
|
||||||
YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_TERM;
|
YAP_STRING_INT | YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_TERM;
|
||||||
@ -1384,8 +1361,7 @@ static inline Term Yap_UTF8ToString(const char *s USES_REGS) {
|
|||||||
static inline Term Yap_WCharsToListOfCodes(const wchar_t *s USES_REGS) {
|
static inline Term Yap_WCharsToListOfCodes(const wchar_t *s USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.sz = 0;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
inp.type = YAP_STRING_WCHARS;
|
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
out.type = YAP_STRING_CODES;
|
out.type = YAP_STRING_CODES;
|
||||||
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
if (!Yap_CVT_Text(&inp, &out PASS_REGS))
|
||||||
@ -1398,7 +1374,7 @@ static inline Term Yap_WCharsToTDQ(wchar_t *s, Term mod USES_REGS) {
|
|||||||
|
|
||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.type = YAP_STRING_WCHARS;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
inp.sz = 0;
|
|
||||||
inp.mod = mod;
|
inp.mod = mod;
|
||||||
out.type = mod_to_type(mod PASS_REGS);
|
out.type = mod_to_type(mod PASS_REGS);
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -1414,7 +1390,6 @@ static inline Term Yap_WCharsToTBQ(wchar_t *s, Term mod USES_REGS) {
|
|||||||
|
|
||||||
inp.val.w = s;
|
inp.val.w = s;
|
||||||
inp.type = YAP_STRING_WCHARS;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
inp.sz = 0;
|
|
||||||
inp.mod = mod;
|
inp.mod = mod;
|
||||||
out.type = mod_to_bqtype(mod PASS_REGS);
|
out.type = mod_to_bqtype(mod PASS_REGS);
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -1428,7 +1403,6 @@ static inline Term Yap_WCharsToTBQ(wchar_t *s, Term mod USES_REGS) {
|
|||||||
static inline Term Yap_WCharsToString(const wchar_t *s USES_REGS) {
|
static inline Term Yap_WCharsToString(const wchar_t *s USES_REGS) {
|
||||||
seq_tv_t inp, out;
|
seq_tv_t inp, out;
|
||||||
inp.val.w0 = s;
|
inp.val.w0 = s;
|
||||||
inp.sz = 0;
|
|
||||||
inp.type = YAP_STRING_WCHARS;
|
inp.type = YAP_STRING_WCHARS;
|
||||||
out.type = YAP_STRING_STRING;
|
out.type = YAP_STRING_STRING;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
@ -1441,10 +1415,8 @@ static inline Atom Yap_ConcatAtoms(Term t1, Term t2 USES_REGS) {
|
|||||||
seq_tv_t inpv[2], out;
|
seq_tv_t inpv[2], out;
|
||||||
inpv[0].val.t = t1;
|
inpv[0].val.t = t1;
|
||||||
inpv[0].type = YAP_STRING_ATOM;
|
inpv[0].type = YAP_STRING_ATOM;
|
||||||
inpv[0].sz = 0;
|
|
||||||
inpv[1].val.t = t2;
|
inpv[1].val.t = t2;
|
||||||
inpv[1].type = YAP_STRING_ATOM;
|
inpv[1].type = YAP_STRING_ATOM;
|
||||||
inpv[1].sz = 0;
|
|
||||||
out.type = YAP_STRING_ATOM;
|
out.type = YAP_STRING_ATOM;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
if (!Yap_Concat_Text(2, inpv, &out PASS_REGS))
|
if (!Yap_Concat_Text(2, inpv, &out PASS_REGS))
|
||||||
@ -1457,11 +1429,9 @@ static inline Atom Yap_ConcatAtomics(Term t1, Term t2 USES_REGS) {
|
|||||||
inpv[0].val.t = t1;
|
inpv[0].val.t = t1;
|
||||||
inpv[0].type = YAP_STRING_STRING | YAP_STRING_ATOM | YAP_STRING_INT |
|
inpv[0].type = YAP_STRING_STRING | YAP_STRING_ATOM | YAP_STRING_INT |
|
||||||
YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_TERM;
|
YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_TERM;
|
||||||
inpv[0].sz = 0;
|
|
||||||
inpv[1].val.t = t2;
|
inpv[1].val.t = t2;
|
||||||
inpv[1].type = YAP_STRING_STRING | YAP_STRING_ATOM | YAP_STRING_INT |
|
inpv[1].type = YAP_STRING_STRING | YAP_STRING_ATOM | YAP_STRING_INT |
|
||||||
YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_TERM;
|
YAP_STRING_FLOAT | YAP_STRING_BIG | YAP_STRING_TERM;
|
||||||
inpv[1].sz = 0;
|
|
||||||
out.type = YAP_STRING_ATOM;
|
out.type = YAP_STRING_ATOM;
|
||||||
out.val.uc = NULL;
|
out.val.uc = NULL;
|
||||||
if (!Yap_Concat_Text(2, inpv, &out PASS_REGS))
|
if (!Yap_Concat_Text(2, inpv, &out PASS_REGS))
|
||||||
@ -1473,10 +1443,8 @@ static inline Term Yap_ConcatStrings(Term t1, Term t2 USES_REGS) {
|
|||||||
seq_tv_t inpv[2], out;
|
seq_tv_t inpv[2], out;
|
||||||
inpv[0].val.t = t1;
|
inpv[0].val.t = t1;
|
||||||
inpv[0].type = YAP_STRING_STRING;
|
inpv[0].type = YAP_STRING_STRING;
|
||||||
inpv[0].sz = 0;
|
|
||||||
inpv[1].val.t = t2;
|
inpv[1].val.t = t2;
|
||||||
inpv[1].type = YAP_STRING_STRING;
|
inpv[1].type = YAP_STRING_STRING;
|
||||||
inpv[1].sz = 0;
|
|
||||||
out.type = YAP_STRING_STRING;
|
out.type = YAP_STRING_STRING;
|
||||||
|
|
||||||
if (!Yap_Concat_Text(2, inpv, &out PASS_REGS))
|
if (!Yap_Concat_Text(2, inpv, &out PASS_REGS))
|
||||||
@ -1492,12 +1460,9 @@ static inline Atom Yap_SpliceAtom(Term t1, Atom ats[], size_t cut,
|
|||||||
cuts[1] = max;
|
cuts[1] = max;
|
||||||
inp.type = YAP_STRING_ATOM;
|
inp.type = YAP_STRING_ATOM;
|
||||||
inp.val.t = t1;
|
inp.val.t = t1;
|
||||||
inp.sz = 0;
|
|
||||||
outv[0].type = YAP_STRING_ATOM;
|
outv[0].type = YAP_STRING_ATOM;
|
||||||
outv[0].sz = 0;
|
|
||||||
outv[1].type = YAP_STRING_ATOM;
|
outv[1].type = YAP_STRING_ATOM;
|
||||||
outv[1].sz = 0;
|
if (!Yap_Splice_Text(2, cuts, &inp, outv PASS_REGS))
|
||||||
if (!Yap_Splice_Text(2, cuts, &inp, (encoding_t *)NULL, outv PASS_REGS))
|
|
||||||
return (Atom)NULL;
|
return (Atom)NULL;
|
||||||
ats[0] = outv[0].val.a;
|
ats[0] = outv[0].val.a;
|
||||||
ats[1] = outv[1].val.a;
|
ats[1] = outv[1].val.a;
|
||||||
@ -1508,14 +1473,11 @@ static inline Atom Yap_SubtractHeadAtom(Term t1, Term th USES_REGS) {
|
|||||||
seq_tv_t outv[2], inp;
|
seq_tv_t outv[2], inp;
|
||||||
inp.type = YAP_STRING_ATOM;
|
inp.type = YAP_STRING_ATOM;
|
||||||
inp.val.t = t1;
|
inp.val.t = t1;
|
||||||
inp.sz = 0;
|
|
||||||
outv[0].type = YAP_STRING_ATOM;
|
outv[0].type = YAP_STRING_ATOM;
|
||||||
outv[0].val.t = th;
|
outv[0].val.t = th;
|
||||||
outv[0].sz = 0;
|
|
||||||
outv[1].type = YAP_STRING_ATOM;
|
outv[1].type = YAP_STRING_ATOM;
|
||||||
outv[1].val.t = 0;
|
outv[1].val.t = 0;
|
||||||
outv[1].sz = 0;
|
if (!Yap_Splice_Text(2, (size_t *)NULL, &inp,
|
||||||
if (!Yap_Splice_Text(2, (size_t *)NULL, &inp, (encoding_t *)NULL,
|
|
||||||
outv PASS_REGS))
|
outv PASS_REGS))
|
||||||
return (Atom)NULL;
|
return (Atom)NULL;
|
||||||
return outv[1].val.a;
|
return outv[1].val.a;
|
||||||
@ -1525,13 +1487,11 @@ static inline Atom Yap_SubtractTailAtom(Term t1, Term th USES_REGS) {
|
|||||||
seq_tv_t outv[2], inp;
|
seq_tv_t outv[2], inp;
|
||||||
inp.type = YAP_STRING_ATOM;
|
inp.type = YAP_STRING_ATOM;
|
||||||
inp.val.t = t1;
|
inp.val.t = t1;
|
||||||
inp.sz = 0;
|
|
||||||
outv[0].type = YAP_STRING_ATOM;
|
outv[0].type = YAP_STRING_ATOM;
|
||||||
outv[0].val.t = 0;
|
outv[0].val.t = 0;
|
||||||
outv[0].sz = 0;
|
|
||||||
outv[1].type = YAP_STRING_ATOM;
|
outv[1].type = YAP_STRING_ATOM;
|
||||||
outv[1].val.t = th;
|
outv[1].val.t = th;
|
||||||
if (!Yap_Splice_Text(2, (size_t *)NULL, &inp, (encoding_t *)NULL,
|
if (!Yap_Splice_Text(2, (size_t *)NULL, &inp,
|
||||||
outv PASS_REGS))
|
outv PASS_REGS))
|
||||||
return (Atom)NULL;
|
return (Atom)NULL;
|
||||||
return outv[0].val.a;
|
return outv[0].val.a;
|
||||||
@ -1543,13 +1503,11 @@ static inline Term Yap_SpliceString(Term t1, Term ts[], size_t cut,
|
|||||||
size_t cuts[2];
|
size_t cuts[2];
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
inp.val.t = t1;
|
inp.val.t = t1;
|
||||||
inp.sz = 0;
|
|
||||||
outv[0].type = YAP_STRING_STRING;
|
outv[0].type = YAP_STRING_STRING;
|
||||||
outv[1].type = YAP_STRING_STRING;
|
outv[1].type = YAP_STRING_STRING;
|
||||||
outv[1].sz = 0;
|
|
||||||
cuts[0] = cut;
|
cuts[0] = cut;
|
||||||
cuts[1] = max;
|
cuts[1] = max;
|
||||||
if (!Yap_Splice_Text(2, cuts, &inp, (encoding_t *)NULL, outv PASS_REGS))
|
if (!Yap_Splice_Text(2, cuts, &inp, outv PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
ts[0] = outv[0].val.t;
|
ts[0] = outv[0].val.t;
|
||||||
ts[1] = outv[1].val.t;
|
ts[1] = outv[1].val.t;
|
||||||
@ -1560,14 +1518,11 @@ static inline Term Yap_SubtractHeadString(Term t1, Term th USES_REGS) {
|
|||||||
seq_tv_t outv[2], inp;
|
seq_tv_t outv[2], inp;
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
inp.val.t = t1;
|
inp.val.t = t1;
|
||||||
inp.sz = 0;
|
|
||||||
outv[0].type = YAP_STRING_STRING;
|
outv[0].type = YAP_STRING_STRING;
|
||||||
outv[0].val.t = th;
|
outv[0].val.t = th;
|
||||||
outv[0].sz = 0;
|
|
||||||
outv[1].type = YAP_STRING_STRING;
|
outv[1].type = YAP_STRING_STRING;
|
||||||
outv[1].val.t = 0;
|
outv[1].val.t = 0;
|
||||||
outv[1].sz = 0;
|
if (!Yap_Splice_Text(2, (size_t *)NULL, &inp,
|
||||||
if (!Yap_Splice_Text(2, (size_t *)NULL, &inp, (encoding_t *)NULL,
|
|
||||||
outv PASS_REGS))
|
outv PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
return outv[1].val.t;
|
return outv[1].val.t;
|
||||||
@ -1577,13 +1532,11 @@ static inline Term Yap_SubtractTailString(Term t1, Term th USES_REGS) {
|
|||||||
seq_tv_t outv[2], inp;
|
seq_tv_t outv[2], inp;
|
||||||
inp.type = YAP_STRING_STRING;
|
inp.type = YAP_STRING_STRING;
|
||||||
inp.val.t = t1;
|
inp.val.t = t1;
|
||||||
inp.sz = 0;
|
|
||||||
outv[0].type = YAP_STRING_STRING;
|
outv[0].type = YAP_STRING_STRING;
|
||||||
outv[0].val.t = 0;
|
outv[0].val.t = 0;
|
||||||
outv[0].sz = 0;
|
|
||||||
outv[1].type = YAP_STRING_STRING;
|
outv[1].type = YAP_STRING_STRING;
|
||||||
outv[1].val.t = th;
|
outv[1].val.t = th;
|
||||||
if (!Yap_Splice_Text(2, (size_t *)NULL, &inp, (encoding_t *)NULL,
|
if (!Yap_Splice_Text(2, (size_t *)NULL, &inp,
|
||||||
outv PASS_REGS))
|
outv PASS_REGS))
|
||||||
return 0L;
|
return 0L;
|
||||||
return outv[0].val.t;
|
return outv[0].val.t;
|
||||||
|
Reference in New Issue
Block a user