ref: 8e938724ff805a6bfe4a8dcc01a6b1c175a6438c
parent: 0edd10268310a9bfbd6bd0791a4558a17cc338e1
author: Tor Andersson <tor@ccxvii.net>
date: Tue Feb 11 08:42:25 EST 2014
Clean up for one.c compilation.
--- a/jsbuiltin.c
+++ b/jsbuiltin.c
@@ -1,4 +1,5 @@
#include "jsi.h"
+#include "jslex.h"
#include "jscompile.h"
#include "jsvalue.h"
#include "jsbuiltin.h"
@@ -96,19 +97,6 @@
return 1;
}
-static inline int ishex(int c)
-{
- return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
-}
-
-static inline int tohex(int c)
-{
- if (c >= '0' && c <= '9') return c - '0';
- if (c >= 'a' && c <= 'f') return c - 'a' + 0xA;
- if (c >= 'A' && c <= 'F') return c - 'A' + 0xA;
- return 0;
-}
-
static int Decode(js_State *J, const char *str, const char *reserved)
{
js_Buffer *sb = NULL;
@@ -123,9 +111,9 @@
js_urierror(J, "truncated escape sequence");
a = *str++;
b = *str++;
- if (!ishex(a) || !ishex(b))
+ if (!jsY_ishex(a) || !jsY_ishex(b))
js_urierror(J, "invalid escape sequence");
- c = tohex(a) << 4 | tohex(b);
+ c = jsY_tohex(a) << 4 | jsY_tohex(b);
if (!strchr(reserved, c))
sb_putc(&sb, c);
else {
--- a/jslex.c
+++ b/jslex.c
@@ -98,7 +98,7 @@
return -1;
}
-static inline int findkeyword(js_State *J, const char *s)
+static inline int jsY_findkeyword(js_State *J, const char *s)
{
int i = jsY_findword(s, keywords, nelem(keywords));
if (i >= 0) {
@@ -109,44 +109,41 @@
return TK_IDENTIFIER;
}
-static inline int iswhite(int c)
+int jsY_iswhite(int c)
{
return c == 0x9 || c == 0xB || c == 0xC || c == 0x20 || c == 0xA0 || c == 0xFEFF;
}
-static inline int isnewline(c)
+int jsY_isnewline(int c)
{
return c == 0xA || c == 0xD || c == 0x2028 || c == 0x2029;
}
-static inline int isidentifierstart(int c)
+static inline int jsY_isidentifierstart(int c)
{
return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '$' || c == '_' || isalpharune(c);
}
-static inline int isidentifierpart(int c)
+static inline int jsY_isidentifierpart(int c)
{
- return (c >= '0' && c <= '9') || isidentifierstart(c);
+ return (c >= '0' && c <= '9') || jsY_isidentifierstart(c);
}
-static inline int isdec(int c)
+static inline int jsY_isdec(int c)
{
return (c >= '0' && c <= '9');
}
-static inline int ishex(int c)
+int jsY_ishex(int c)
{
return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'f') || (c >= 'A' && c <= 'F');
}
-static inline int tohex(int c)
+int jsY_tohex(int c)
{
- if (c >= '0' && c <= '9')
- return c - '0';
- if (c >= 'a' && c <= 'f')
- return c - 'a' + 0xA;
- if (c >= 'A' && c <= 'F')
- return c - 'A' + 0xA;
+ if (c >= '0' && c <= '9') return c - '0';
+ if (c >= 'a' && c <= 'f') return c - 'a' + 0xA;
+ if (c >= 'A' && c <= 'F') return c - 'A' + 0xA;
return 0;
}
@@ -162,7 +159,7 @@
/* consume CR LF as one unit */
if (c == '\r' && *J->source == '\n')
++J->source;
- if (isnewline(c)) {
+ if (jsY_isnewline(c)) {
J->line++;
c = '\n';
}
@@ -169,15 +166,15 @@
J->lexchar = c;
}
-static void unescape(js_State *J)
+static void jsY_unescape(js_State *J)
{
if (ACCEPT('\\')) {
if (ACCEPT('u')) {
int x = 0;
- if (!ishex(PEEK)) goto error; x |= tohex(PEEK) << 12; NEXT();
- if (!ishex(PEEK)) goto error; x |= tohex(PEEK) << 8; NEXT();
- if (!ishex(PEEK)) goto error; x |= tohex(PEEK) << 4; NEXT();
- if (!ishex(PEEK)) goto error; x |= tohex(PEEK);
+ if (!jsY_ishex(PEEK)) goto error; x |= jsY_tohex(PEEK) << 12; NEXT();
+ if (!jsY_ishex(PEEK)) goto error; x |= jsY_tohex(PEEK) << 8; NEXT();
+ if (!jsY_ishex(PEEK)) goto error; x |= jsY_tohex(PEEK) << 4; NEXT();
+ if (!jsY_ishex(PEEK)) goto error; x |= jsY_tohex(PEEK);
J->lexchar = x;
return;
}
@@ -235,10 +232,10 @@
static inline double lexhex(js_State *J)
{
double n = 0;
- if (!ishex(PEEK))
+ if (!jsY_ishex(PEEK))
jsY_error(J, "malformed hexadecimal number");
- while (ishex(PEEK)) {
- n = n * 16 + tohex(PEEK);
+ while (jsY_ishex(PEEK)) {
+ n = n * 16 + jsY_tohex(PEEK);
NEXT();
}
return n;
@@ -247,9 +244,9 @@
static inline double lexinteger(js_State *J)
{
double n = 0;
- if (!isdec(PEEK))
+ if (!jsY_isdec(PEEK))
jsY_error(J, "malformed number");
- while (isdec(PEEK)) {
+ while (jsY_isdec(PEEK)) {
n = n * 10 + (PEEK - '0');
NEXT();
}
@@ -260,7 +257,7 @@
{
double n = 0;
double d = 1;
- while (isdec(PEEK)) {
+ while (jsY_isdec(PEEK)) {
n = n * 10 + (PEEK - '0');
d = d * 10;
NEXT();
@@ -290,13 +287,13 @@
J->number = lexhex(J);
return TK_NUMBER;
}
- if (isdec(PEEK))
+ if (jsY_isdec(PEEK))
jsY_error(J, "number with leading zero");
n = 0;
if (ACCEPT('.'))
n += lexfraction(J);
} else if (ACCEPT('.')) {
- if (!isdec(PEEK))
+ if (!jsY_isdec(PEEK))
return '.';
n = lexfraction(J);
} else {
@@ -311,7 +308,7 @@
else if (e > 0)
n *= pow(10, e);
- if (isidentifierstart(PEEK))
+ if (jsY_isidentifierstart(PEEK))
jsY_error(J, "number with letter suffix");
J->number = n;
@@ -330,16 +327,16 @@
switch (PEEK) {
case 'u':
NEXT();
- if (!ishex(PEEK)) return 1; else { x |= tohex(PEEK) << 12; NEXT(); }
- if (!ishex(PEEK)) return 1; else { x |= tohex(PEEK) << 8; NEXT(); }
- if (!ishex(PEEK)) return 1; else { x |= tohex(PEEK) << 4; NEXT(); }
- if (!ishex(PEEK)) return 1; else { x |= tohex(PEEK); NEXT(); }
+ if (!jsY_ishex(PEEK)) return 1; else { x |= jsY_tohex(PEEK) << 12; NEXT(); }
+ if (!jsY_ishex(PEEK)) return 1; else { x |= jsY_tohex(PEEK) << 8; NEXT(); }
+ if (!jsY_ishex(PEEK)) return 1; else { x |= jsY_tohex(PEEK) << 4; NEXT(); }
+ if (!jsY_ishex(PEEK)) return 1; else { x |= jsY_tohex(PEEK); NEXT(); }
textpush(J, x);
break;
case 'x':
NEXT();
- if (!ishex(PEEK)) return 1; else { x |= tohex(PEEK) << 4; NEXT(); }
- if (!ishex(PEEK)) return 1; else { x |= tohex(PEEK); NEXT(); }
+ if (!jsY_ishex(PEEK)) return 1; else { x |= jsY_tohex(PEEK) << 4; NEXT(); }
+ if (!jsY_ishex(PEEK)) return 1; else { x |= jsY_tohex(PEEK); NEXT(); }
textpush(J, x);
break;
case '0': textpush(J, 0); NEXT(); break;
@@ -436,7 +433,7 @@
/* regexp flags */
g = i = m = 0;
- while (isidentifierpart(PEEK)) {
+ while (jsY_isidentifierpart(PEEK)) {
if (ACCEPT('g')) ++g;
else if (ACCEPT('i')) ++i;
else if (ACCEPT('m')) ++m;
@@ -475,7 +472,7 @@
while (1) {
J->lexline = J->line; /* save location of beginning of token */
- while (iswhite(PEEK))
+ while (jsY_iswhite(PEEK))
NEXT();
if (ACCEPT('\n')) {
@@ -626,22 +623,22 @@
}
/* Handle \uXXXX escapes in identifiers */
- unescape(J);
- if (isidentifierstart(PEEK)) {
+ jsY_unescape(J);
+ if (jsY_isidentifierstart(PEEK)) {
textinit(J);
textpush(J, PEEK);
NEXT();
- unescape(J);
- while (isidentifierpart(PEEK)) {
+ jsY_unescape(J);
+ while (jsY_isidentifierpart(PEEK)) {
textpush(J, PEEK);
NEXT();
- unescape(J);
+ jsY_unescape(J);
}
textend(J);
- return findkeyword(J, J->lexbuf.text);
+ return jsY_findkeyword(J, J->lexbuf.text);
}
if (PEEK >= 0x20 && PEEK <= 0x7E)
@@ -669,7 +666,7 @@
while (1) {
J->lexline = J->line; /* save location of beginning of token */
- while (iswhite(PEEK) || PEEK == '\n')
+ while (jsY_iswhite(PEEK) || PEEK == '\n')
NEXT();
if (PEEK >= '0' && PEEK <= '9') {
--- a/jslex.h
+++ b/jslex.h
@@ -66,6 +66,11 @@
TK_WITH,
};
+int jsY_iswhite(int c);
+int jsY_isnewline(int c);
+int jsY_ishex(int c);
+int jsY_tohex(int c);
+
const char *jsY_tokenstring(int token);
int jsY_findword(const char *s, const char **list, int num);
--- a/jsstring.c
+++ b/jsstring.c
@@ -276,7 +276,7 @@
return 1;
}
-static int iswhite(int c)
+static int istrim(int c)
{
return c == 0x9 || c == 0xB || c == 0xC || c == 0x20 || c == 0xA0 || c == 0xFEFF ||
c == 0xA || c == 0xD || c == 0x2028 || c == 0x2029;
@@ -286,10 +286,10 @@
{
const char *s, *e;
s = js_tostring(J, 0);
- while (iswhite(*s))
+ while (istrim(*s))
++s;
e = s + strlen(s);
- while (e > s && iswhite(e[-1]))
+ while (e > s && istrim(e[-1]))
--e;
js_pushlstring(J, s, e - s);
return 1;