support for UNICODE, and other bug fixes.
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1725 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
17
C/parser.c
17
C/parser.c
@@ -525,6 +525,21 @@ ParseTerm(int prio, JMPBUFF *FailBuff)
|
||||
}
|
||||
break;
|
||||
|
||||
case WString_tok: /* build list on the heap */
|
||||
{
|
||||
Volatile wchar_t *p = (wchar_t *) Yap_tokptr->TokInfo;
|
||||
if (*p == 0)
|
||||
t = MkAtomTerm(AtomNil);
|
||||
else if (yap_flags[YAP_DOUBLE_QUOTES_FLAG] == STRING_AS_CHARS)
|
||||
t = Yap_WStringToListOfAtoms(p);
|
||||
else if (yap_flags[YAP_DOUBLE_QUOTES_FLAG] == STRING_AS_ATOM)
|
||||
t = MkAtomTerm(Yap_LookupWideAtom(p));
|
||||
else
|
||||
t = Yap_WStringToList(p);
|
||||
NextToken;
|
||||
}
|
||||
break;
|
||||
|
||||
case Var_tok:
|
||||
varinfo = (VarEntry *) (Yap_tokptr->TokInfo);
|
||||
if ((t = varinfo->VarAdr) == TermNil) {
|
||||
@@ -653,7 +668,7 @@ ParseTerm(int prio, JMPBUFF *FailBuff)
|
||||
continue;
|
||||
}
|
||||
}
|
||||
if (Yap_tokptr->Tok <= Ord(String_tok))
|
||||
if (Yap_tokptr->Tok <= Ord(WString_tok))
|
||||
FAIL;
|
||||
break;
|
||||
}
|
||||
|
Reference in New Issue
Block a user