1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
--- parser_pratt.c 2014-03-25 04:10:42.000000000 -0400
+++ parser_pratt.c 2021-02-15 22:35:51.027451000 -0500
@@ -27,9 +27,10 @@
{return(err("token_overflow",NIL));}
-LISP pratt_read_token(LISP buffer,LISP chars,LISP stream)
+static LISP pratt_read_token(LISP buffer, LISP chars, LISP stream)
{LISP c,tail;
char *tk;
long j=0,tkdim;
- tk = get_c_string_dim(buffer,&tkdim);
+ tk = get_string_data(buffer);
+ tkdim = buffer->storage_as.string.dim;
while(1)
if NULLP(c = lgetc(stream))
@@ -39,5 +40,5 @@
else if NEQ(sym_whitespace,tail)
break;
- if EQ(sym_string_delim,tail)
+ if EQ(sym_string_delim,tail) {
while(NNULLP(c = lgetc(stream)))
if EQ(sym_back_slash,aref1(chars,c))
@@ -58,4 +59,5 @@
else
err_token_overflow();
+ }
if EQ(tail,sym_back_slash)
c = lgetc(stream);
@@ -66,5 +68,5 @@
if NULLP(tail)
return(lreadtk(tk,j));
- else if CONSP(tail)
+ else if CONSP(tail) {
while(1)
if NULLP(c = lgetc(stream))
@@ -78,4 +80,5 @@
{if NEQ(sym_whitespace,aref1(chars,c)) lungetc(c,stream);
return(lreadtk(tk,j));}
+ }
while(1)
if NULLP(c = lgetc(stream))
@@ -96,4 +99,6 @@
return(NIL);}
+void init_parser_pratt(void); /* Our sole exported symbol */
+
void init_parser_pratt(void)
{init_subr_3("pratt_read_token",pratt_read_token);
|