mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge branch 'ascii' of https://github.com/cremno/mruby into cremno-ascii
This commit is contained in:
+7
-10
@@ -42,11 +42,7 @@ static void yywarning(parser_state *p, const char *s);
|
||||
static void backref_error(parser_state *p, node *n);
|
||||
static void tokadd(parser_state *p, int32_t c);
|
||||
|
||||
#ifndef isascii
|
||||
#define isascii(c) (((c) & ~0x7f) == 0)
|
||||
#endif
|
||||
|
||||
#define identchar(c) (isalnum(c) || (c) == '_' || !isascii(c))
|
||||
#define identchar(c) (ISALNUM(c) || (c) == '_' || !ISASCII(c))
|
||||
|
||||
typedef unsigned int stack_type;
|
||||
|
||||
@@ -3911,7 +3907,8 @@ parse_string(parser_state *p)
|
||||
return tHD_LITERAL_DELIM;
|
||||
}
|
||||
}
|
||||
} while (ISSPACE(c = nextc(p)));
|
||||
c = nextc(p);
|
||||
} while (ISSPACE(c));
|
||||
pushback(p, c);
|
||||
return tLITERAL_DELIM;
|
||||
}
|
||||
@@ -4205,14 +4202,14 @@ parser_yylex(parser_state *p)
|
||||
static const char end[] = "\n=end";
|
||||
if (peeks(p, begin)) {
|
||||
c = peekc_n(p, sizeof(begin)-1);
|
||||
if (c < 0 || isspace(c)) {
|
||||
if (c < 0 || ISSPACE(c)) {
|
||||
do {
|
||||
if (!skips(p, end)) {
|
||||
yyerror(p, "embedded document meets end of file");
|
||||
return 0;
|
||||
}
|
||||
c = nextc(p);
|
||||
} while (!(c < 0 || isspace(c)));
|
||||
} while (!(c < 0 || ISSPACE(c)));
|
||||
if (c != '\n') skip(p, '\n');
|
||||
p->lineno++;
|
||||
p->column = 0;
|
||||
@@ -4337,7 +4334,7 @@ parser_yylex(parser_state *p)
|
||||
yyerror(p, "incomplete character syntax");
|
||||
return 0;
|
||||
}
|
||||
if (isspace(c)) {
|
||||
if (ISSPACE(c)) {
|
||||
if (!IS_ARG()) {
|
||||
int c2;
|
||||
switch (c) {
|
||||
@@ -5190,7 +5187,7 @@ parser_yylex(parser_state *p)
|
||||
pushback(p, c);
|
||||
}
|
||||
}
|
||||
if (result == 0 && isupper((int)(unsigned char)tok(p)[0])) {
|
||||
if (result == 0 && ISUPPER(tok(p)[0])) {
|
||||
result = tCONSTANT;
|
||||
}
|
||||
else {
|
||||
|
||||
+2
-23
@@ -1728,27 +1728,6 @@ mrb_str_rindex_m(mrb_state *mrb, mrb_value str)
|
||||
return mrb_nil_value();
|
||||
}
|
||||
|
||||
static const char isspacetable[256] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
};
|
||||
|
||||
#define ascii_isspace(c) isspacetable[(unsigned char)(c)]
|
||||
|
||||
/* 15.2.10.5.35 */
|
||||
|
||||
/*
|
||||
@@ -1844,7 +1823,7 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
|
||||
int ai = mrb_gc_arena_save(mrb);
|
||||
c = (unsigned char)*ptr++;
|
||||
if (skip) {
|
||||
if (ascii_isspace(c)) {
|
||||
if (ISSPACE(c)) {
|
||||
beg = ptr - bptr;
|
||||
}
|
||||
else {
|
||||
@@ -1853,7 +1832,7 @@ mrb_str_split_m(mrb_state *mrb, mrb_value str)
|
||||
if (lim_p && lim <= i) break;
|
||||
}
|
||||
}
|
||||
else if (ascii_isspace(c)) {
|
||||
else if (ISSPACE(c)) {
|
||||
mrb_ary_push(mrb, result, mrb_str_subseq(mrb, str, beg, end-beg));
|
||||
mrb_gc_arena_restore(mrb, ai);
|
||||
skip = TRUE;
|
||||
|
||||
Reference in New Issue
Block a user