Commit 1ebebd30 authored by Yukihiro "Matz" Matsumoto's avatar Yukihiro "Matz" Matsumoto

Merge pull request #987 from monaka/pr-clean-up-parse.y-20130312

Clean up parse.y.
parents 15a9fb26 dd29e05f
...@@ -3393,34 +3393,40 @@ toklen(parser_state *p) ...@@ -3393,34 +3393,40 @@ toklen(parser_state *p)
#define IS_LABEL_POSSIBLE() ((p->lstate == EXPR_BEG && !cmd_state) || IS_ARG()) #define IS_LABEL_POSSIBLE() ((p->lstate == EXPR_BEG && !cmd_state) || IS_ARG())
#define IS_LABEL_SUFFIX(n) (peek_n(p, ':',(n)) && !peek_n(p, ':', (n)+1)) #define IS_LABEL_SUFFIX(n) (peek_n(p, ':',(n)) && !peek_n(p, ':', (n)+1))
static unsigned long static int
scan_oct(const int *start, int len, int *retlen) scan_oct(const int *start, int len, int *retlen)
{ {
const int *s = start; const int *s = start;
unsigned long retval = 0; int retval = 0;
/* PARANOID: assert(len <= 3) */
while (len-- && *s >= '0' && *s <= '7') { while (len-- && *s >= '0' && *s <= '7') {
retval <<= 3; retval <<= 3;
retval |= *s++ - '0'; retval |= *s++ - '0';
} }
*retlen = s - start; *retlen = s - start;
return retval; return retval;
} }
static unsigned long static int
scan_hex(const int *start, int len, int *retlen) scan_hex(const int *start, int len, int *retlen)
{ {
static const char hexdigit[] = "0123456789abcdef0123456789ABCDEF"; static const char hexdigit[] = "0123456789abcdef0123456789ABCDEF";
register const int *s = start; register const int *s = start;
register unsigned long retval = 0; register int retval = 0;
char *tmp; char *tmp;
while (len-- && *s && (tmp = (char *)strchr(hexdigit, *s))) { /* PARANOID: assert(len <= 2) */
while (len-- && *s && (tmp = strchr(hexdigit, *s))) {
retval <<= 4; retval <<= 4;
retval |= (tmp - hexdigit) & 15; retval |= (tmp - hexdigit) & 15;
s++; s++;
} }
*retlen = s - start; *retlen = s - start;
return retval; return retval;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment