/* Generated by re2c 0.9.1-C on Mon Nov 28 13:48:12 2011 */ #line 1 "./modules/parsers/nasm/nasm-token.re" /* * NASM-compatible re2c lexer * * Copyright (C) 2001-2007 Peter Johnson * * Portions based on re2c's example code. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS'' * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #include RCSID("$Id: nasm-token.re 2277 2010-01-19 07:03:15Z peter $"); #include #include "modules/parsers/nasm/nasm-parser.h" #include "modules/preprocs/nasm/nasm.h" #define YYCURSOR cursor #define YYLIMIT (s->lim) #define YYMARKER (s->ptr) #define YYFILL(n) {} #define RETURN(i) {s->cur = cursor; parser_nasm->tokch = s->tok[0]; \ return i;} #define SCANINIT() {s->tok = cursor;} #define TOK ((char *)s->tok) #define TOKLEN (size_t)(cursor-s->tok) /* starting size of string buffer */ #define STRBUF_ALLOC_SIZE 128 /* string buffer used when parsing strings/character constants */ static YYCTYPE *strbuf = NULL; /* length of strbuf (including terminating NULL character) */ static size_t strbuf_size = 0; static int linechg_numcount; #line 72 "./modules/parsers/nasm/nasm-token.re" static int handle_dot_label(YYSTYPE *lvalp, char *tok, size_t toklen, size_t zeropos, yasm_parser_nasm *parser_nasm) { /* check for special non-local labels like ..start */ if (tok[zeropos+1] == '.') { lvalp->str_val = yasm__xstrndup(tok+zeropos+(parser_nasm->tasm?2:0), toklen-zeropos-(parser_nasm->tasm?2:0)); /* check for special non-local ..@label */ if (lvalp->str_val[zeropos+2] == '@') return NONLOCAL_ID; return SPECIAL_ID; } if (parser_nasm->masm && tok[zeropos] == '.') { lvalp->str_val = yasm__xstrndup(tok + zeropos, toklen - zeropos); return SPECIAL_ID; } if (parser_nasm->tasm && (!tasm_locals || (tok[zeropos] == '.' && tok[zeropos+1] != '@' && tok[zeropos+2] != '@'))) { /* no locals on Tasm without the 'locals' directive */ /* .foo is never local either, but .@@foo may be (local structure * members) */ lvalp->str_val = yasm__xstrndup(tok + zeropos, toklen - zeropos); return SPECIAL_ID; } if (!parser_nasm->locallabel_base) { lvalp->str_val = yasm__xstrndup(tok+zeropos, toklen-zeropos); yasm_warn_set(YASM_WARN_GENERAL, N_("no non-local label before `%s'"), lvalp->str_val); } else { size_t len = toklen - zeropos + parser_nasm->locallabel_base_len; lvalp->str_val = yasm_xmalloc(len + 1); strcpy(lvalp->str_val, parser_nasm->locallabel_base); strncat(lvalp->str_val, tok+zeropos, toklen-zeropos); lvalp->str_val[len] = '\0'; } return LOCAL_ID; } int nasm_parser_lex(YYSTYPE *lvalp, yasm_parser_nasm *parser_nasm) { yasm_scanner *s = &parser_nasm->s; YYCTYPE *cursor = s->cur; YYCTYPE endch; size_t count; YYCTYPE savech; /* Handle one token of lookahead */ if (parser_nasm->peek_token != NONE) { int tok = parser_nasm->peek_token; *lvalp = parser_nasm->peek_tokval; /* structure copy */ parser_nasm->tokch = parser_nasm->peek_tokch; parser_nasm->peek_token = NONE; return tok; } /* Catch EOL (EOF from the scanner perspective) */ if (s->eof && cursor == s->eof) return 0; /* Jump to proper "exclusive" states */ switch (parser_nasm->state) { case DIRECTIVE: goto directive; case SECTION_DIRECTIVE: goto section_directive; case DIRECTIVE2: goto directive2; case LINECHG: goto linechg; case LINECHG2: goto linechg2; default: break; } scan: SCANINIT(); if (*cursor == '\0') goto endofinput; { static unsigned char yybm[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 255, 255, 63, 63, 63, 63, 63, 63, 15, 15, 1, 1, 1, 1, 1, 3, 3, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 167, 1, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 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, }; #line 222 "nasm-token.c" { YYCTYPE yych; unsigned int yyaccept; goto yy0; ++YYCURSOR; yy0: if((YYLIMIT - YYCURSOR) < 8) YYFILL(8); yych = *YYCURSOR; switch(yych){ case '\000': goto yy43; case '\t': case '\r': case ' ': goto yy41; case '"': case '\'': goto yy9; case '$': goto yy7; case '%': goto yy11; case '&': case '(': case ')': case '*': case '+': case ',': case '-': case ':': case '=': case '[': case '^': case '|': case '~': goto yy32; case '.': goto yy36; case '/': goto yy31; case '0': goto yy2; case '1': goto yy4; case '2': case '3': case '4': case '5': case '6': case '7': goto yy5; case '8': case '9': goto yy6; case ';': goto yy39; case '<': goto yy28; case '>': goto yy30; case '?': goto yy33; case '@': goto yy37; case 'A': case 'a': goto yy26; case 'B': case 'b': goto yy12; case 'C': case 'F': case 'G': case 'J': case 'K': case 'M': case 'P': case 'U': case 'V': case 'X': case 'Z': case '_': case 'c': case 'f': case 'g': case 'j': case 'k': case 'm': case 'p': case 'u': case 'v': case 'x': case 'z': goto yy38; case 'D': case 'd': goto yy16; case 'E': case 'e': goto yy24; case 'H': case 'h': goto yy14; case 'I': case 'i': goto yy23; case 'L': case 'l': goto yy17; case 'N': case 'n': goto yy27; case 'O': case 'o': goto yy20; case 'Q': case 'q': goto yy18; case 'R': case 'r': goto yy22; case 'S': case 's': goto yy25; case 'T': case 't': goto yy19; case 'W': case 'w': goto yy15; case 'Y': case 'y': goto yy21; case ']': goto yy34; default: goto yy45; } yy2: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yybm[0+yych] & 64) { goto yy222; } switch(yych){ case '.': goto yy203; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': goto yy216; case '8': case '9': goto yy206; case 'A': case 'C': case 'D': case 'E': case 'F': case 'a': case 'c': case 'd': case 'e': case 'f': goto yy208; case 'B': case 'b': goto yy224; case 'H': case 'h': goto yy210; case 'O': case 'Q': case 'o': case 'q': goto yy220; case 'X': case 'x': goto yy228; case '_': goto yy226; default: goto yy3; } yy3: #line 161 "./modules/parsers/nasm/nasm-token.re" { savech = s->tok[TOKLEN]; s->tok[TOKLEN] = '\0'; lvalp->intn = yasm_intnum_create_dec(TOK); s->tok[TOKLEN] = savech; RETURN(INTNUM); } #line 325 "nasm-token.c" yy4: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yybm[0+yych] & 64) { goto yy222; } switch(yych){ case '.': goto yy203; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': goto yy216; case '8': case '9': goto yy206; case 'A': case 'C': case 'D': case 'E': case 'F': case 'a': case 'c': case 'd': case 'e': case 'f': goto yy208; case 'B': case 'b': goto yy224; case 'H': case 'h': goto yy210; case 'O': case 'Q': case 'o': case 'q': goto yy220; case '_': goto yy226; default: goto yy3; } yy5: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yybm[0+yych] & 16) { goto yy216; } if(yych <= 'P'){ if(yych <= '@'){ if(yych <= '.'){ if(yych <= '-') goto yy3; goto yy203; } else { if(yych <= '/') goto yy3; if(yych <= '9') goto yy206; goto yy3; } } else { if(yych <= 'H'){ if(yych <= 'F') goto yy208; if(yych <= 'G') goto yy3; goto yy210; } else { if(yych == 'O') goto yy220; goto yy3; } } } else { if(yych <= 'g'){ if(yych <= '_'){ if(yych <= 'Q') goto yy220; if(yych <= '^') goto yy3; goto yy218; } else { if(yych <= '`') goto yy3; if(yych <= 'f') goto yy208; goto yy3; } } else { if(yych <= 'o'){ if(yych <= 'h') goto yy210; if(yych <= 'n') goto yy3; goto yy220; } else { if(yych == 'q') goto yy220; goto yy3; } } } yy6: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'G'){ if(yych <= '/'){ if(yych == '.') goto yy203; goto yy3; } else { if(yych <= '9') goto yy206; if(yych <= '@') goto yy3; if(yych <= 'F') goto yy208; goto yy3; } } else { if(yych <= '`'){ if(yych <= 'H') goto yy210; if(yych == '_') goto yy208; goto yy3; } else { if(yych <= 'f') goto yy208; if(yych == 'h') goto yy210; goto yy3; } } yy7: yych = *++YYCURSOR; if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy8; if(yych <= '#') goto yy194; if(yych <= '$') goto yy197; goto yy8; } else { if(yych <= '.') goto yy194; if(yych <= '/') goto yy8; if(yych <= '9') goto yy199; goto yy8; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy194; if(yych == '_') goto yy194; goto yy8; } else { if(yych <= 'z') goto yy194; if(yych == '~') goto yy194; goto yy8; } } yy8: #line 372 "./modules/parsers/nasm/nasm-token.re" { RETURN(s->tok[0]); } #line 453 "nasm-token.c" yy9: yych = *++YYCURSOR; goto yy10; yy10: #line 214 "./modules/parsers/nasm/nasm-token.re" { endch = s->tok[0]; goto stringconst; } #line 462 "nasm-token.c" yy11: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych == '%') goto yy186; if(yych == 'l') goto yy188; goto yy8; yy12: yych = *++YYCURSOR; if(yych == 'Y') goto yy182; if(yych == 'y') goto yy182; goto yy51; yy13: #line 392 "./modules/parsers/nasm/nasm-token.re" { savech = s->tok[TOKLEN]; s->tok[TOKLEN] = '\0'; if (parser_nasm->state != INSTRUCTION) { uintptr_t prefix; switch (yasm_arch_parse_check_insnprefix (p_object->arch, TOK, TOKLEN, cur_line, &lvalp->bc, &prefix)) { case YASM_ARCH_INSN: parser_nasm->state = INSTRUCTION; s->tok[TOKLEN] = savech; RETURN(INSN); case YASM_ARCH_PREFIX: lvalp->arch_data = prefix; s->tok[TOKLEN] = savech; RETURN(PREFIX); default: break; } } switch (yasm_arch_parse_check_regtmod (p_object->arch, TOK, TOKLEN, &lvalp->arch_data)) { case YASM_ARCH_REG: s->tok[TOKLEN] = savech; RETURN(REG); case YASM_ARCH_SEGREG: s->tok[TOKLEN] = savech; RETURN(SEGREG); case YASM_ARCH_TARGETMOD: s->tok[TOKLEN] = savech; RETURN(TARGETMOD); case YASM_ARCH_REGGROUP: if (parser_nasm->masm) { s->tok[TOKLEN] = savech; RETURN(REGGROUP); } default: break; } if (parser_nasm->masm) { if (!yasm__strcasecmp(TOK, "offset")) { s->tok[TOKLEN] = savech; RETURN(OFFSET); } } else if (parser_nasm->tasm) { if (!yasm__strcasecmp(TOK, "shl")) { s->tok[TOKLEN] = savech; RETURN(LEFT_OP); } if (!yasm__strcasecmp(TOK, "shr")) { s->tok[TOKLEN] = savech; RETURN(RIGHT_OP); } if (!yasm__strcasecmp(TOK, "and")) { s->tok[TOKLEN] = savech; RETURN('&'); } if (!yasm__strcasecmp(TOK, "or")) { s->tok[TOKLEN] = savech; RETURN('|'); } if (!yasm__strcasecmp(TOK, "not")) { s->tok[TOKLEN] = savech; RETURN('~'); } if (!yasm__strcasecmp(TOK, "low")) { s->tok[TOKLEN] = savech; RETURN(LOW); } if (!yasm__strcasecmp(TOK, "high")) { s->tok[TOKLEN] = savech; RETURN(HIGH); } if (!yasm__strcasecmp(TOK, "offset")) { s->tok[TOKLEN] = savech; RETURN(OFFSET); } if (!yasm__strcasecmp(TOK, "fword")) { s->tok[TOKLEN] = savech; lvalp->int_info = yasm_arch_wordsize(p_object->arch)*2; RETURN(SIZE_OVERRIDE); } if (!yasm__strcasecmp(TOK, "df")) { s->tok[TOKLEN] = savech; lvalp->int_info = yasm_arch_wordsize(p_object->arch)*3; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } if (!yasm__strcasecmp(TOK, "label")) { s->tok[TOKLEN] = savech; RETURN(LABEL); } if (!yasm__strcasecmp(TOK, "dup")) { s->tok[TOKLEN] = savech; RETURN(DUP); } } /* Propagate errors in case we got a warning from the arch */ yasm_errwarn_propagate(parser_nasm->errwarns, cur_line); /* Just an identifier, return as such. */ s->tok[TOKLEN] = savech; lvalp->str_val = yasm__xstrndup(TOK, TOKLEN); RETURN(ID); } #line 578 "nasm-token.c" yy14: yych = *++YYCURSOR; if(yych == 'W') goto yy177; if(yych == 'w') goto yy177; goto yy51; yy15: yych = *++YYCURSOR; if(yych <= 'R'){ if(yych == 'O') goto yy170; if(yych <= 'Q') goto yy51; goto yy171; } else { if(yych <= 'o'){ if(yych <= 'n') goto yy51; goto yy170; } else { if(yych == 'r') goto yy171; goto yy51; } } yy16: yych = *++YYCURSOR; switch(yych){ case 'B': case 'b': goto yy144; case 'D': case 'd': goto yy146; case 'H': case 'h': goto yy148; case 'O': case 'o': goto yy149; case 'Q': case 'q': goto yy151; case 'T': case 't': goto yy153; case 'W': case 'w': goto yy155; case 'Y': case 'y': goto yy157; default: goto yy51; } yy17: yych = *++YYCURSOR; if(yych == 'O') goto yy140; if(yych == 'o') goto yy140; goto yy51; yy18: yych = *++YYCURSOR; if(yych == 'W') goto yy135; if(yych == 'w') goto yy135; goto yy51; yy19: yych = *++YYCURSOR; if(yych <= 'W'){ if(yych == 'I') goto yy125; if(yych <= 'V') goto yy51; goto yy126; } else { if(yych <= 'i'){ if(yych <= 'h') goto yy51; goto yy125; } else { if(yych == 'w') goto yy126; goto yy51; } } yy20: yych = *++YYCURSOR; if(yych == 'W') goto yy120; if(yych == 'w') goto yy120; goto yy51; yy21: yych = *++YYCURSOR; if(yych == 'W') goto yy115; if(yych == 'w') goto yy115; goto yy51; yy22: yych = *++YYCURSOR; if(yych == 'E') goto yy92; if(yych == 'e') goto yy92; goto yy51; yy23: yych = *++YYCURSOR; if(yych == 'N') goto yy86; if(yych == 'n') goto yy86; goto yy51; yy24: yych = *++YYCURSOR; if(yych == 'Q') goto yy83; if(yych == 'q') goto yy83; goto yy51; yy25: yych = *++YYCURSOR; if(yych <= 'T'){ if(yych == 'E') goto yy74; if(yych <= 'S') goto yy51; goto yy75; } else { if(yych <= 'e'){ if(yych <= 'd') goto yy51; goto yy74; } else { if(yych == 't') goto yy75; goto yy51; } } yy26: yych = *++YYCURSOR; if(yych == 'B') goto yy71; if(yych == 'b') goto yy71; goto yy51; yy27: yych = *++YYCURSOR; if(yych == 'O') goto yy64; if(yych == 'o') goto yy64; goto yy51; yy28: yych = *++YYCURSOR; if(yych == '<') goto yy62; goto yy29; yy29: #line 503 "./modules/parsers/nasm/nasm-token.re" { yasm_warn_set(YASM_WARN_UNREC_CHAR, N_("ignoring unrecognized character `%s'"), yasm__conv_unprint(s->tok[0])); goto scan; } #line 684 "nasm-token.c" yy30: yych = *++YYCURSOR; if(yych == '>') goto yy60; goto yy29; yy31: yych = *++YYCURSOR; if(yych == '/') goto yy58; goto yy8; yy32: yych = *++YYCURSOR; goto yy8; yy33: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy8; yy34: yych = *++YYCURSOR; goto yy35; yy35: #line 373 "./modules/parsers/nasm/nasm-token.re" { RETURN(s->tok[0]); } #line 703 "nasm-token.c" yy36: yych = *++YYCURSOR; if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy29; if(yych <= '$') goto yy56; goto yy29; } else { if(yych == '/') goto yy29; if(yych <= '9') goto yy56; goto yy29; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy56; if(yych == '_') goto yy56; goto yy29; } else { if(yych <= 'z') goto yy56; if(yych == '~') goto yy56; goto yy29; } } yy37: yych = *++YYCURSOR; if(yych == '@') goto yy52; goto yy51; yy38: yych = *++YYCURSOR; goto yy51; yy39: yych = *++YYCURSOR; goto yy49; yy40: #line 497 "./modules/parsers/nasm/nasm-token.re" { goto scan; } #line 736 "nasm-token.c" yy41: yych = *++YYCURSOR; goto yy47; yy42: #line 499 "./modules/parsers/nasm/nasm-token.re" { goto scan; } #line 742 "nasm-token.c" yy43: yych = *++YYCURSOR; goto yy44; yy44: #line 501 "./modules/parsers/nasm/nasm-token.re" { goto endofinput; } #line 748 "nasm-token.c" yy45: yych = *++YYCURSOR; goto yy29; yy46: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy47; yy47: if(yybm[256+yych] & 128) { goto yy46; } goto yy42; yy48: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy49; yy49: if(yybm[0+yych] & 1) { goto yy48; } goto yy40; yy50: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy51; yy51: if(yybm[0+yych] & 2) { goto yy50; } goto yy13; yy52: yych = *++YYCURSOR; if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy13; if(yych >= '%') goto yy13; goto yy53; } else { if(yych == '/') goto yy13; if(yych >= ':') goto yy13; goto yy53; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy53; if(yych != '_') goto yy13; goto yy53; } else { if(yych <= 'z') goto yy53; if(yych != '~') goto yy13; goto yy53; } } yy53: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy54; yy54: if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy55; if(yych <= '$') goto yy53; goto yy55; } else { if(yych == '/') goto yy55; if(yych <= '9') goto yy53; goto yy55; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy53; if(yych == '_') goto yy53; goto yy55; } else { if(yych <= 'z') goto yy53; if(yych == '~') goto yy53; goto yy55; } } yy55: #line 376 "./modules/parsers/nasm/nasm-token.re" { RETURN(handle_dot_label(lvalp, TOK, TOKLEN, 0, parser_nasm)); } #line 827 "nasm-token.c" yy56: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy57; yy57: if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy55; if(yych <= '$') goto yy56; goto yy55; } else { if(yych == '/') goto yy55; if(yych <= '9') goto yy56; goto yy55; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy56; if(yych == '_') goto yy56; goto yy55; } else { if(yych <= 'z') goto yy56; if(yych == '~') goto yy56; goto yy55; } } yy58: yych = *++YYCURSOR; goto yy59; yy59: #line 369 "./modules/parsers/nasm/nasm-token.re" { RETURN(SIGNDIV); } #line 858 "nasm-token.c" yy60: yych = *++YYCURSOR; goto yy61; yy61: #line 368 "./modules/parsers/nasm/nasm-token.re" { RETURN(RIGHT_OP); } #line 864 "nasm-token.c" yy62: yych = *++YYCURSOR; goto yy63; yy63: #line 367 "./modules/parsers/nasm/nasm-token.re" { RETURN(LEFT_OP); } #line 870 "nasm-token.c" yy64: yych = *++YYCURSOR; if(yych == 'S') goto yy65; if(yych != 's') goto yy51; goto yy65; yy65: yych = *++YYCURSOR; if(yych == 'P') goto yy66; if(yych != 'p') goto yy51; goto yy66; yy66: yych = *++YYCURSOR; if(yych == 'L') goto yy67; if(yych != 'l') goto yy51; goto yy67; yy67: yych = *++YYCURSOR; if(yych == 'I') goto yy68; if(yych != 'i') goto yy51; goto yy68; yy68: yych = *++YYCURSOR; if(yych == 'T') goto yy69; if(yych != 't') goto yy51; goto yy69; yy69: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy70; yy70: #line 363 "./modules/parsers/nasm/nasm-token.re" { RETURN(NOSPLIT); } #line 899 "nasm-token.c" yy71: yych = *++YYCURSOR; if(yych == 'S') goto yy72; if(yych != 's') goto yy51; goto yy72; yy72: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy73; yy73: #line 360 "./modules/parsers/nasm/nasm-token.re" { RETURN(ABS); } #line 912 "nasm-token.c" yy74: yych = *++YYCURSOR; if(yych == 'G') goto yy81; if(yych == 'g') goto yy81; goto yy51; yy75: yych = *++YYCURSOR; if(yych == 'R') goto yy76; if(yych != 'r') goto yy51; goto yy76; yy76: yych = *++YYCURSOR; if(yych == 'I') goto yy77; if(yych != 'i') goto yy51; goto yy77; yy77: yych = *++YYCURSOR; if(yych == 'C') goto yy78; if(yych != 'c') goto yy51; goto yy78; yy78: yych = *++YYCURSOR; if(yych == 'T') goto yy79; if(yych != 't') goto yy51; goto yy79; yy79: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy80; yy80: #line 364 "./modules/parsers/nasm/nasm-token.re" { RETURN(STRICT); } #line 941 "nasm-token.c" yy81: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy82; yy82: #line 357 "./modules/parsers/nasm/nasm-token.re" { RETURN(SEG); } #line 950 "nasm-token.c" yy83: yych = *++YYCURSOR; if(yych == 'U') goto yy84; if(yych != 'u') goto yy51; goto yy84; yy84: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy85; yy85: #line 353 "./modules/parsers/nasm/nasm-token.re" { RETURN(EQU); } #line 963 "nasm-token.c" yy86: yych = *++YYCURSOR; if(yych == 'C') goto yy87; if(yych != 'c') goto yy51; goto yy87; yy87: yych = *++YYCURSOR; if(yych == 'B') goto yy88; if(yych != 'b') goto yy51; goto yy88; yy88: yych = *++YYCURSOR; if(yych == 'I') goto yy89; if(yych != 'i') goto yy51; goto yy89; yy89: yych = *++YYCURSOR; if(yych == 'N') goto yy90; if(yych != 'n') goto yy51; goto yy90; yy90: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy91; yy91: #line 351 "./modules/parsers/nasm/nasm-token.re" { RETURN(INCBIN); } #line 988 "nasm-token.c" yy92: yych = *++YYCURSOR; if(yych <= 'S'){ if(yych == 'L') goto yy94; if(yych <= 'R') goto yy51; goto yy93; } else { if(yych <= 'l'){ if(yych <= 'k') goto yy51; goto yy94; } else { if(yych != 's') goto yy51; goto yy93; } } yy93: yych = *++YYCURSOR; switch(yych){ case 'B': case 'b': goto yy96; case 'D': case 'd': goto yy98; case 'H': case 'h': goto yy100; case 'O': case 'o': goto yy101; case 'Q': case 'q': goto yy103; case 'T': case 't': goto yy105; case 'W': case 'w': goto yy107; case 'Y': case 'y': goto yy109; default: goto yy51; } yy94: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy95; yy95: #line 361 "./modules/parsers/nasm/nasm-token.re" { RETURN(REL); } #line 1023 "nasm-token.c" yy96: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy97; yy97: #line 305 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 8; parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1036 "nasm-token.c" yy98: yych = *++YYCURSOR; if(yych <= 'Q'){ if(yych <= '.'){ if(yych <= '"') goto yy99; if(yych <= '$') goto yy50; if(yych >= '.') goto yy50; goto yy99; } else { if(yych <= '9'){ if(yych >= '0') goto yy50; goto yy99; } else { if(yych <= '>') goto yy99; if(yych <= 'P') goto yy50; goto yy113; } } } else { if(yych <= 'p'){ if(yych <= '^'){ if(yych <= 'Z') goto yy50; goto yy99; } else { if(yych != '`') goto yy50; goto yy99; } } else { if(yych <= 'z'){ if(yych <= 'q') goto yy113; goto yy50; } else { if(yych == '~') goto yy50; goto yy99; } } } yy99: #line 320 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*2; parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1080 "nasm-token.c" yy100: yych = *++YYCURSOR; if(yych == 'W') goto yy111; if(yych == 'w') goto yy111; goto yy51; yy101: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy102; yy102: #line 340 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*8; parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1097 "nasm-token.c" yy103: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy104; yy104: #line 325 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*4; parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1110 "nasm-token.c" yy105: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy106; yy106: #line 330 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 80; parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1123 "nasm-token.c" yy107: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy108; yy108: #line 315 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch); parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1136 "nasm-token.c" yy109: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy110; yy110: #line 345 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 256; parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1149 "nasm-token.c" yy111: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy112; yy112: #line 310 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)/2; parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1162 "nasm-token.c" yy113: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy114; yy114: #line 335 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*8; parser_nasm->state = INSTRUCTION; RETURN(RESERVE_SPACE); } #line 1175 "nasm-token.c" yy115: yych = *++YYCURSOR; if(yych == 'O') goto yy116; if(yych != 'o') goto yy51; goto yy116; yy116: yych = *++YYCURSOR; if(yych == 'R') goto yy117; if(yych != 'r') goto yy51; goto yy117; yy117: yych = *++YYCURSOR; if(yych == 'D') goto yy118; if(yych != 'd') goto yy51; goto yy118; yy118: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy119; yy119: #line 253 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 256; RETURN(SIZE_OVERRIDE); } #line 1199 "nasm-token.c" yy120: yych = *++YYCURSOR; if(yych == 'O') goto yy121; if(yych != 'o') goto yy51; goto yy121; yy121: yych = *++YYCURSOR; if(yych == 'R') goto yy122; if(yych != 'r') goto yy51; goto yy122; yy122: yych = *++YYCURSOR; if(yych == 'D') goto yy123; if(yych != 'd') goto yy51; goto yy123; yy123: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy124; yy124: #line 249 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*8; RETURN(SIZE_OVERRIDE); } #line 1223 "nasm-token.c" yy125: yych = *++YYCURSOR; if(yych == 'M') goto yy131; if(yych == 'm') goto yy131; goto yy51; yy126: yych = *++YYCURSOR; if(yych == 'O') goto yy127; if(yych != 'o') goto yy51; goto yy127; yy127: yych = *++YYCURSOR; if(yych == 'R') goto yy128; if(yych != 'r') goto yy51; goto yy128; yy128: yych = *++YYCURSOR; if(yych == 'D') goto yy129; if(yych != 'd') goto yy51; goto yy129; yy129: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy130; yy130: #line 244 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 80; RETURN(SIZE_OVERRIDE); } #line 1248 "nasm-token.c" yy131: yych = *++YYCURSOR; if(yych == 'E') goto yy132; if(yych != 'e') goto yy51; goto yy132; yy132: yych = *++YYCURSOR; if(yych == 'S') goto yy133; if(yych != 's') goto yy51; goto yy133; yy133: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy134; yy134: #line 355 "./modules/parsers/nasm/nasm-token.re" { RETURN(TIMES); } #line 1265 "nasm-token.c" yy135: yych = *++YYCURSOR; if(yych == 'O') goto yy136; if(yych != 'o') goto yy51; goto yy136; yy136: yych = *++YYCURSOR; if(yych == 'R') goto yy137; if(yych != 'r') goto yy51; goto yy137; yy137: yych = *++YYCURSOR; if(yych == 'D') goto yy138; if(yych != 'd') goto yy51; goto yy138; yy138: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy139; yy139: #line 240 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*4; RETURN(SIZE_OVERRIDE); } #line 1289 "nasm-token.c" yy140: yych = *++YYCURSOR; if(yych == 'N') goto yy141; if(yych != 'n') goto yy51; goto yy141; yy141: yych = *++YYCURSOR; if(yych == 'G') goto yy142; if(yych != 'g') goto yy51; goto yy142; yy142: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy143; yy143: #line 236 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*2; RETURN(SIZE_OVERRIDE); } #line 1309 "nasm-token.c" yy144: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy145; yy145: #line 259 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 8; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1322 "nasm-token.c" yy146: yych = *++YYCURSOR; if(yych <= 'Q'){ if(yych <= '.'){ if(yych <= '"') goto yy147; if(yych <= '$') goto yy50; if(yych >= '.') goto yy50; goto yy147; } else { if(yych <= '9'){ if(yych >= '0') goto yy50; goto yy147; } else { if(yych <= '>') goto yy147; if(yych <= 'P') goto yy50; goto yy168; } } } else { if(yych <= 'p'){ if(yych <= '^'){ if(yych <= 'Z') goto yy50; goto yy147; } else { if(yych != '`') goto yy50; goto yy147; } } else { if(yych <= 'z'){ if(yych <= 'q') goto yy168; goto yy50; } else { if(yych == '~') goto yy50; goto yy147; } } } yy147: #line 274 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*2; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1366 "nasm-token.c" yy148: yych = *++YYCURSOR; if(yych == 'W') goto yy166; if(yych == 'w') goto yy166; goto yy51; yy149: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy150; yy150: #line 294 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*8; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1383 "nasm-token.c" yy151: yych = *++YYCURSOR; if(yych <= 'W'){ if(yych <= '.'){ if(yych <= '"') goto yy152; if(yych <= '$') goto yy50; if(yych >= '.') goto yy50; goto yy152; } else { if(yych <= '9'){ if(yych >= '0') goto yy50; goto yy152; } else { if(yych <= '>') goto yy152; if(yych <= 'V') goto yy50; goto yy161; } } } else { if(yych <= 'v'){ if(yych <= '^'){ if(yych <= 'Z') goto yy50; goto yy152; } else { if(yych != '`') goto yy50; goto yy152; } } else { if(yych <= 'z'){ if(yych <= 'w') goto yy161; goto yy50; } else { if(yych == '~') goto yy50; goto yy152; } } } yy152: #line 279 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*4; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1427 "nasm-token.c" yy153: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy154; yy154: #line 284 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 80; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1440 "nasm-token.c" yy155: yych = *++YYCURSOR; if(yych <= 'O'){ if(yych <= '.'){ if(yych <= '"') goto yy156; if(yych <= '$') goto yy50; if(yych >= '.') goto yy50; goto yy156; } else { if(yych <= '9'){ if(yych >= '0') goto yy50; goto yy156; } else { if(yych <= '>') goto yy156; if(yych <= 'N') goto yy50; goto yy159; } } } else { if(yych <= 'n'){ if(yych <= '^'){ if(yych <= 'Z') goto yy50; goto yy156; } else { if(yych != '`') goto yy50; goto yy156; } } else { if(yych <= 'z'){ if(yych <= 'o') goto yy159; goto yy50; } else { if(yych == '~') goto yy50; goto yy156; } } } yy156: #line 269 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch); parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1484 "nasm-token.c" yy157: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy158; yy158: #line 299 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 256; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1497 "nasm-token.c" yy159: yych = *++YYCURSOR; if(yych == 'R') goto yy160; if(yych != 'r') goto yy51; goto yy160; yy160: yych = *++YYCURSOR; if(yych == 'D') goto yy142; if(yych == 'd') goto yy142; goto yy51; yy161: yych = *++YYCURSOR; if(yych == 'O') goto yy162; if(yych != 'o') goto yy51; goto yy162; yy162: yych = *++YYCURSOR; if(yych == 'R') goto yy163; if(yych != 'r') goto yy51; goto yy163; yy163: yych = *++YYCURSOR; if(yych == 'D') goto yy164; if(yych != 'd') goto yy51; goto yy164; yy164: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy165; yy165: #line 245 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*8; RETURN(SIZE_OVERRIDE); } #line 1529 "nasm-token.c" yy166: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy167; yy167: #line 264 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)/2; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1542 "nasm-token.c" yy168: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy169; yy169: #line 289 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)*8; parser_nasm->state = INSTRUCTION; RETURN(DECLARE_DATA); } #line 1555 "nasm-token.c" yy170: yych = *++YYCURSOR; if(yych == 'R') goto yy174; if(yych == 'r') goto yy174; goto yy51; yy171: yych = *++YYCURSOR; if(yych == 'T') goto yy172; if(yych != 't') goto yy51; goto yy172; yy172: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy173; yy173: #line 358 "./modules/parsers/nasm/nasm-token.re" { RETURN(WRT); } #line 1572 "nasm-token.c" yy174: yych = *++YYCURSOR; if(yych == 'D') goto yy175; if(yych != 'd') goto yy51; goto yy175; yy175: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy176; yy176: #line 232 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch); RETURN(SIZE_OVERRIDE); } #line 1588 "nasm-token.c" yy177: yych = *++YYCURSOR; if(yych == 'O') goto yy178; if(yych != 'o') goto yy51; goto yy178; yy178: yych = *++YYCURSOR; if(yych == 'R') goto yy179; if(yych != 'r') goto yy51; goto yy179; yy179: yych = *++YYCURSOR; if(yych == 'D') goto yy180; if(yych != 'd') goto yy51; goto yy180; yy180: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy181; yy181: #line 228 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = yasm_arch_wordsize(p_object->arch)/2; RETURN(SIZE_OVERRIDE); } #line 1612 "nasm-token.c" yy182: yych = *++YYCURSOR; if(yych == 'T') goto yy183; if(yych != 't') goto yy51; goto yy183; yy183: yych = *++YYCURSOR; if(yych == 'E') goto yy184; if(yych != 'e') goto yy51; goto yy184; yy184: yych = *++YYCURSOR; if(yybm[0+yych] & 2) { goto yy50; } goto yy185; yy185: #line 227 "./modules/parsers/nasm/nasm-token.re" { lvalp->int_info = 8; RETURN(SIZE_OVERRIDE); } #line 1629 "nasm-token.c" yy186: yych = *++YYCURSOR; goto yy187; yy187: #line 370 "./modules/parsers/nasm/nasm-token.re" { RETURN(SIGNMOD); } #line 1635 "nasm-token.c" yy188: yych = *++YYCURSOR; if(yych == 'i') goto yy190; goto yy189; yy189: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy3; case 3: goto yy225; case 2: goto yy205; case 1: goto yy8; } yy190: yych = *++YYCURSOR; if(yych != 'n') goto yy189; goto yy191; yy191: yych = *++YYCURSOR; if(yych != 'e') goto yy189; goto yy192; yy192: yych = *++YYCURSOR; goto yy193; yy193: #line 220 "./modules/parsers/nasm/nasm-token.re" { parser_nasm->state = LINECHG; linechg_numcount = 0; RETURN(LINE); } #line 1661 "nasm-token.c" yy194: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy195; yy195: if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy196; if(yych <= '$') goto yy194; goto yy196; } else { if(yych == '/') goto yy196; if(yych <= '9') goto yy194; goto yy196; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy194; if(yych == '_') goto yy194; goto yy196; } else { if(yych <= 'z') goto yy194; if(yych == '~') goto yy194; goto yy196; } } yy196: #line 381 "./modules/parsers/nasm/nasm-token.re" { if (TOK[1] == '.' || (parser_nasm->tasm && TOK[1] == '@' && TOK[2] == '@')) { /* handle like .label */ RETURN(handle_dot_label(lvalp, TOK, TOKLEN, 1, parser_nasm)); } lvalp->str_val = yasm__xstrndup(TOK+1, TOKLEN-1); RETURN(ID); } #line 1698 "nasm-token.c" yy197: yych = *++YYCURSOR; if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy198; if(yych <= '$') goto yy194; goto yy198; } else { if(yych == '/') goto yy198; if(yych <= '9') goto yy194; goto yy198; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy194; if(yych == '_') goto yy194; goto yy198; } else { if(yych <= 'z') goto yy194; if(yych == '~') goto yy194; goto yy198; } } yy198: #line 371 "./modules/parsers/nasm/nasm-token.re" { RETURN(START_SECTION_ID); } #line 1724 "nasm-token.c" yy199: yych = *++YYCURSOR; if(yybm[0+yych] & 4) { goto yy200; } goto yy195; yy200: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy201; yy201: if(yybm[0+yych] & 4) { goto yy200; } if(yych <= '>'){ if(yych <= '$'){ if(yych >= '#') goto yy194; goto yy202; } else { if(yych == '.') goto yy194; goto yy202; } } else { if(yych <= 'z'){ if(yych <= 'Z') goto yy194; if(yych >= 'g') goto yy194; goto yy202; } else { if(yych == '~') goto yy194; goto yy202; } } yy202: #line 191 "./modules/parsers/nasm/nasm-token.re" { savech = s->tok[TOKLEN]; s->tok[TOKLEN] = '\0'; if (s->tok[1] == 'x' || s->tok[1] == 'X') /* skip 0 and x */ lvalp->intn = yasm_intnum_create_hex(TOK+2); else /* don't skip 0 */ lvalp->intn = yasm_intnum_create_hex(TOK+1); s->tok[TOKLEN] = savech; RETURN(INTNUM); } #line 1769 "nasm-token.c" yy203: yyaccept = 2; YYMARKER = ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; goto yy204; yy204: if(yybm[0+yych] & 8) { goto yy203; } if(yych == 'E') goto yy212; if(yych == 'e') goto yy212; goto yy205; yy205: #line 205 "./modules/parsers/nasm/nasm-token.re" { savech = s->tok[TOKLEN]; s->tok[TOKLEN] = '\0'; lvalp->flt = yasm_floatnum_create(TOK); s->tok[TOKLEN] = savech; RETURN(FLTNUM); } #line 1790 "nasm-token.c" yy206: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy207; yy207: if(yych <= 'G'){ if(yych <= '/'){ if(yych == '.') goto yy203; goto yy3; } else { if(yych <= '9') goto yy206; if(yych <= '@') goto yy3; if(yych >= 'G') goto yy3; goto yy208; } } else { if(yych <= '`'){ if(yych <= 'H') goto yy210; if(yych != '_') goto yy3; goto yy208; } else { if(yych <= 'f') goto yy208; if(yych == 'h') goto yy210; goto yy3; } } yy208: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy209; yy209: if(yych <= 'H'){ if(yych <= '@'){ if(yych <= '/') goto yy189; if(yych <= '9') goto yy208; goto yy189; } else { if(yych <= 'F') goto yy208; if(yych <= 'G') goto yy189; goto yy210; } } else { if(yych <= '`'){ if(yych == '_') goto yy208; goto yy189; } else { if(yych <= 'f') goto yy208; if(yych != 'h') goto yy189; goto yy210; } } yy210: yych = *++YYCURSOR; goto yy211; yy211: #line 184 "./modules/parsers/nasm/nasm-token.re" { s->tok[TOKLEN-1] = '\0'; /* strip off 'h' */ lvalp->intn = yasm_intnum_create_hex(TOK); RETURN(INTNUM); } #line 1850 "nasm-token.c" yy212: yych = *++YYCURSOR; if(yych <= ','){ if(yych != '+') goto yy189; goto yy213; } else { if(yych <= '-') goto yy213; if(yych <= '/') goto yy189; if(yych <= '9') goto yy214; goto yy189; } yy213: yych = *++YYCURSOR; if(yych <= '/') goto yy189; if(yych >= ':') goto yy189; goto yy214; yy214: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy215; yy215: if(yych <= '/') goto yy205; if(yych <= '9') goto yy214; goto yy205; yy216: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy217; yy217: if(yybm[0+yych] & 16) { goto yy216; } if(yych <= 'P'){ if(yych <= '@'){ if(yych <= '.'){ if(yych <= '-') goto yy3; goto yy203; } else { if(yych <= '/') goto yy3; if(yych <= '9') goto yy206; goto yy3; } } else { if(yych <= 'H'){ if(yych <= 'F') goto yy208; if(yych <= 'G') goto yy3; goto yy210; } else { if(yych == 'O') goto yy220; goto yy3; } } } else { if(yych <= 'g'){ if(yych <= '_'){ if(yych <= 'Q') goto yy220; if(yych <= '^') goto yy3; goto yy218; } else { if(yych <= '`') goto yy3; if(yych <= 'f') goto yy208; goto yy3; } } else { if(yych <= 'o'){ if(yych <= 'h') goto yy210; if(yych <= 'n') goto yy3; goto yy220; } else { if(yych == 'q') goto yy220; goto yy3; } } } yy218: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy219; yy219: if(yybm[0+yych] & 32) { goto yy218; } if(yych <= 'P'){ if(yych <= 'F'){ if(yych <= '7') goto yy189; if(yych <= '9') goto yy208; if(yych <= '@') goto yy189; goto yy208; } else { if(yych <= 'H'){ if(yych <= 'G') goto yy189; goto yy210; } else { if(yych != 'O') goto yy189; goto yy220; } } } else { if(yych <= 'h'){ if(yych <= '`'){ if(yych >= 'R') goto yy189; goto yy220; } else { if(yych <= 'f') goto yy208; if(yych <= 'g') goto yy189; goto yy210; } } else { if(yych <= 'o'){ if(yych <= 'n') goto yy189; goto yy220; } else { if(yych != 'q') goto yy189; goto yy220; } } } yy220: yych = *++YYCURSOR; goto yy221; yy221: #line 177 "./modules/parsers/nasm/nasm-token.re" { s->tok[TOKLEN-1] = '\0'; /* strip off 'q' or 'o' */ lvalp->intn = yasm_intnum_create_oct(TOK); RETURN(INTNUM); } #line 1973 "nasm-token.c" yy222: yyaccept = 0; YYMARKER = ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; goto yy223; yy223: if(yybm[0+yych] & 64) { goto yy222; } switch(yych){ case '.': goto yy203; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': goto yy216; case '8': case '9': goto yy206; case 'A': case 'C': case 'D': case 'E': case 'F': case 'a': case 'c': case 'd': case 'e': case 'f': goto yy208; case 'B': case 'b': goto yy224; case 'H': case 'h': goto yy210; case 'O': case 'Q': case 'o': case 'q': goto yy220; case '_': goto yy226; default: goto yy3; } yy224: yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'H'){ if(yych <= '@'){ if(yych <= '/') goto yy225; if(yych <= '9') goto yy208; goto yy225; } else { if(yych <= 'F') goto yy208; if(yych >= 'H') goto yy210; goto yy225; } } else { if(yych <= '`'){ if(yych == '_') goto yy208; goto yy225; } else { if(yych <= 'f') goto yy208; if(yych == 'h') goto yy210; goto yy225; } } yy225: #line 170 "./modules/parsers/nasm/nasm-token.re" { s->tok[TOKLEN-1] = '\0'; /* strip off 'b' */ lvalp->intn = yasm_intnum_create_bin(TOK); RETURN(INTNUM); } #line 2036 "nasm-token.c" yy226: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; goto yy227; yy227: if(yybm[0+yych] & 128) { goto yy226; } switch(yych){ case '2': case '3': case '4': case '5': case '6': case '7': goto yy218; case '8': case '9': case 'A': case 'C': case 'D': case 'E': case 'F': case 'a': case 'c': case 'd': case 'e': case 'f': goto yy208; case 'B': case 'b': goto yy224; case 'H': case 'h': goto yy210; case 'O': case 'Q': case 'o': case 'q': goto yy220; default: goto yy189; } yy228: yych = *++YYCURSOR; if(yych <= 'F'){ if(yych <= '/') goto yy189; if(yych <= '9') goto yy229; if(yych <= '@') goto yy189; goto yy229; } else { if(yych <= '_'){ if(yych <= '^') goto yy189; goto yy229; } else { if(yych <= '`') goto yy189; if(yych >= 'g') goto yy189; goto yy229; } } yy229: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy230; yy230: if(yych <= 'F'){ if(yych <= '/') goto yy202; if(yych <= '9') goto yy229; if(yych <= '@') goto yy202; goto yy229; } else { if(yych <= '_'){ if(yych <= '^') goto yy202; goto yy229; } else { if(yych <= '`') goto yy202; if(yych <= 'f') goto yy229; goto yy202; } } } } #line 509 "./modules/parsers/nasm/nasm-token.re" /* %line linenum+lineinc filename */ linechg: SCANINIT(); if (*cursor == '\0') goto endofinput; { static unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 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, }; #line 2146 "nasm-token.c" { YYCTYPE yych; goto yy231; ++YYCURSOR; yy231: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '\037'){ if(yych <= '\t'){ if(yych <= '\000') goto yy235; if(yych <= '\b') goto yy241; goto yy239; } else { if(yych == '\r') goto yy239; goto yy241; } } else { if(yych <= '+'){ if(yych <= ' ') goto yy239; if(yych <= '*') goto yy241; goto yy237; } else { if(yych <= '/') goto yy241; if(yych >= ':') goto yy241; goto yy233; } } yy233: yych = *++YYCURSOR; goto yy246; yy234: #line 518 "./modules/parsers/nasm/nasm-token.re" { linechg_numcount++; savech = s->tok[TOKLEN]; s->tok[TOKLEN] = '\0'; lvalp->intn = yasm_intnum_create_dec(TOK); s->tok[TOKLEN] = savech; RETURN(INTNUM); } #line 2186 "nasm-token.c" yy235: yych = *++YYCURSOR; goto yy236; yy236: #line 527 "./modules/parsers/nasm/nasm-token.re" { goto endofinput; } #line 2192 "nasm-token.c" yy237: yych = *++YYCURSOR; goto yy238; yy238: #line 529 "./modules/parsers/nasm/nasm-token.re" { RETURN(s->tok[0]); } #line 2200 "nasm-token.c" yy239: yych = *++YYCURSOR; goto yy244; yy240: #line 533 "./modules/parsers/nasm/nasm-token.re" { if (linechg_numcount == 2) { parser_nasm->state = LINECHG2; goto linechg2; } goto linechg; } #line 2212 "nasm-token.c" yy241: yych = *++YYCURSOR; goto yy242; yy242: #line 541 "./modules/parsers/nasm/nasm-token.re" { yasm_warn_set(YASM_WARN_UNREC_CHAR, N_("ignoring unrecognized character `%s'"), yasm__conv_unprint(s->tok[0])); goto linechg; } #line 2223 "nasm-token.c" yy243: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy244; yy244: if(yybm[0+yych] & 64) { goto yy243; } goto yy240; yy245: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy246; yy246: if(yybm[0+yych] & 128) { goto yy245; } goto yy234; } } #line 547 "./modules/parsers/nasm/nasm-token.re" linechg2: SCANINIT(); if (*cursor == '\0') goto endofinput; { static unsigned char yybm[] = { 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; #line 2286 "nasm-token.c" { YYCTYPE yych; goto yy247; ++YYCURSOR; yy247: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '\000') goto yy249; if(yych == '\r') goto yy251; goto yy253; yy249: yych = *++YYCURSOR; goto yy250; yy250: #line 555 "./modules/parsers/nasm/nasm-token.re" { goto endofinput; } #line 2302 "nasm-token.c" yy251: yych = *++YYCURSOR; if(yybm[0+yych] & 128) { goto yy253; } goto yy252; yy252: #line 557 "./modules/parsers/nasm/nasm-token.re" { goto linechg2; } #line 2311 "nasm-token.c" yy253: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy254; yy254: if(yybm[0+yych] & 128) { goto yy253; } goto yy255; yy255: #line 559 "./modules/parsers/nasm/nasm-token.re" { parser_nasm->state = LINECHG; lvalp->str_val = yasm__xstrndup(TOK, TOKLEN); RETURN(FILENAME); } #line 2327 "nasm-token.c" } } #line 564 "./modules/parsers/nasm/nasm-token.re" /* directive: [name value] */ directive: SCANINIT(); if (*cursor == '\0') goto endofinput; { static unsigned char yybm[] = { 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, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 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, }; #line 2375 "nasm-token.c" { YYCTYPE yych; goto yy256; ++YYCURSOR; yy256: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= ']'){ if(yych <= '@'){ if(yych >= '\001') goto yy263; goto yy258; } else { if(yych <= 'Z') goto yy261; if(yych <= '\\') goto yy263; goto yy260; } } else { if(yych <= '_'){ if(yych <= '^') goto yy263; goto yy261; } else { if(yych <= '`') goto yy263; if(yych <= 'z') goto yy261; goto yy263; } } yy258: yych = *++YYCURSOR; goto yy259; yy259: #line 573 "./modules/parsers/nasm/nasm-token.re" { goto endofinput; } #line 2407 "nasm-token.c" yy260: yych = *++YYCURSOR; goto yy259; yy261: yych = *++YYCURSOR; goto yy266; yy262: #line 575 "./modules/parsers/nasm/nasm-token.re" { lvalp->str_val = yasm__xstrndup(TOK, TOKLEN); if (yasm__strcasecmp(lvalp->str_val, "section") == 0 || yasm__strcasecmp(lvalp->str_val, "segment") == 0) parser_nasm->state = SECTION_DIRECTIVE; else parser_nasm->state = DIRECTIVE2; RETURN(DIRECTIVE_NAME); } #line 2423 "nasm-token.c" yy263: yych = *++YYCURSOR; goto yy264; yy264: #line 585 "./modules/parsers/nasm/nasm-token.re" { yasm_warn_set(YASM_WARN_UNREC_CHAR, N_("ignoring unrecognized character `%s'"), yasm__conv_unprint(s->tok[0])); goto directive; } #line 2434 "nasm-token.c" yy265: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy266; yy266: if(yybm[0+yych] & 128) { goto yy265; } goto yy262; } } #line 591 "./modules/parsers/nasm/nasm-token.re" /* section directive (the section name portion thereof) */ section_directive: SCANINIT(); if (*cursor == '\0') goto endofinput; { static unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 128, 128, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 0, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 0, 0, 128, 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, }; #line 2490 "nasm-token.c" { YYCTYPE yych; goto yy267; ++YYCURSOR; yy267: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= ','){ if(yych <= '\037'){ if(yych <= '\t'){ if(yych <= '\000') goto yy275; if(yych <= '\b') goto yy278; goto yy273; } else { if(yych == '\r') goto yy273; goto yy278; } } else { if(yych <= '"'){ if(yych <= ' ') goto yy273; if(yych <= '!') goto yy278; goto yy271; } else { if(yych <= '$') goto yy269; if(yych == '\'') goto yy271; goto yy278; } } } else { if(yych <= ']'){ if(yych <= '9'){ if(yych == '/') goto yy278; goto yy269; } else { if(yych <= '>') goto yy278; if(yych <= 'Z') goto yy269; if(yych <= '\\') goto yy278; goto yy277; } } else { if(yych <= '`'){ if(yych != '_') goto yy278; goto yy269; } else { if(yych <= 'z') goto yy269; if(yych != '~') goto yy278; goto yy269; } } } yy269: yych = *++YYCURSOR; goto yy283; yy270: #line 600 "./modules/parsers/nasm/nasm-token.re" { lvalp->str.contents = yasm__xstrndup(TOK, TOKLEN); lvalp->str.len = TOKLEN; parser_nasm->state = DIRECTIVE2; RETURN(STRING); } #line 2551 "nasm-token.c" yy271: yych = *++YYCURSOR; goto yy272; yy272: #line 607 "./modules/parsers/nasm/nasm-token.re" { parser_nasm->state = DIRECTIVE2; endch = s->tok[0]; goto stringconst; } #line 2561 "nasm-token.c" yy273: yych = *++YYCURSOR; goto yy281; yy274: #line 613 "./modules/parsers/nasm/nasm-token.re" { parser_nasm->state = DIRECTIVE2; goto section_directive; } #line 2570 "nasm-token.c" yy275: yych = *++YYCURSOR; goto yy276; yy276: #line 618 "./modules/parsers/nasm/nasm-token.re" { goto endofinput; } #line 2576 "nasm-token.c" yy277: yych = *++YYCURSOR; goto yy276; yy278: yych = *++YYCURSOR; goto yy279; yy279: #line 620 "./modules/parsers/nasm/nasm-token.re" { yasm_warn_set(YASM_WARN_UNREC_CHAR, N_("ignoring unrecognized character `%s'"), yasm__conv_unprint(s->tok[0])); goto section_directive; } #line 2589 "nasm-token.c" yy280: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy281; yy281: if(yybm[0+yych] & 64) { goto yy280; } goto yy274; yy282: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy283; yy283: if(yybm[0+yych] & 128) { goto yy282; } goto yy270; } } #line 626 "./modules/parsers/nasm/nasm-token.re" /* inner part of directive */ directive2: SCANINIT(); if (*cursor == '\0') goto endofinput; { static unsigned char yybm[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 255, 255, 63, 63, 63, 63, 63, 63, 15, 15, 1, 1, 1, 1, 1, 3, 3, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 167, 1, 7, 7, 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 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, }; #line 2685 "nasm-token.c" { YYCTYPE yych; unsigned int yyaccept; goto yy284; ++YYCURSOR; yy284: if((YYLIMIT - YYCURSOR) < 3) YYFILL(3); yych = *YYCURSOR; if(yych <= '7'){ if(yych <= '#'){ if(yych <= '\r'){ if(yych <= '\b'){ if(yych <= '\000') goto yy309; goto yy311; } else { if(yych <= '\t') goto yy307; if(yych <= '\f') goto yy311; goto yy307; } } else { if(yych <= ' '){ if(yych <= '\037') goto yy311; goto yy307; } else { if(yych == '"') goto yy293; goto yy311; } } } else { if(yych <= '-'){ if(yych <= '%'){ if(yych <= '$') goto yy291; goto yy299; } else { if(yych == '\'') goto yy293; goto yy300; } } else { if(yych <= '/'){ if(yych <= '.') goto yy303; goto yy298; } else { if(yych <= '0') goto yy286; if(yych <= '1') goto yy288; goto yy289; } } } } else { if(yych <= '['){ if(yych <= '='){ if(yych <= ':'){ if(yych <= '9') goto yy290; goto yy300; } else { if(yych <= ';') goto yy305; if(yych <= '<') goto yy295; goto yy300; } } else { if(yych <= '?'){ if(yych <= '>') goto yy297; goto yy303; } else { if(yych <= '@') goto yy311; if(yych <= 'Z') goto yy303; goto yy300; } } } else { if(yych <= '`'){ if(yych <= ']'){ if(yych <= '\\') goto yy311; goto yy301; } else { if(yych <= '^') goto yy300; if(yych <= '_') goto yy303; goto yy311; } } else { if(yych <= '|'){ if(yych <= 'z') goto yy303; if(yych <= '{') goto yy311; goto yy300; } else { if(yych == '~') goto yy300; goto yy311; } } } } yy286: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if(yych == 'X') goto yy352; if(yych == 'x') goto yy352; goto yy347; yy287: #line 636 "./modules/parsers/nasm/nasm-token.re" { savech = s->tok[TOKLEN]; s->tok[TOKLEN] = '\0'; lvalp->intn = yasm_intnum_create_dec(TOK); s->tok[TOKLEN] = savech; RETURN(INTNUM); } #line 2791 "nasm-token.c" yy288: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy347; yy289: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy341; yy290: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); goto yy334; yy291: yych = *++YYCURSOR; if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy292; if(yych <= '$') goto yy326; goto yy292; } else { if(yych <= '.') goto yy326; if(yych <= '/') goto yy292; if(yych <= '9') goto yy329; goto yy292; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy326; if(yych == '_') goto yy326; goto yy292; } else { if(yych <= 'z') goto yy326; if(yych == '~') goto yy326; goto yy292; } } yy292: #line 690 "./modules/parsers/nasm/nasm-token.re" { RETURN(s->tok[0]); } #line 2827 "nasm-token.c" yy293: yych = *++YYCURSOR; goto yy294; yy294: #line 680 "./modules/parsers/nasm/nasm-token.re" { endch = s->tok[0]; goto stringconst; } #line 2836 "nasm-token.c" yy295: yych = *++YYCURSOR; if(yych == '<') goto yy324; goto yy296; yy296: #line 728 "./modules/parsers/nasm/nasm-token.re" { yasm_warn_set(YASM_WARN_UNREC_CHAR, N_("ignoring unrecognized character `%s'"), yasm__conv_unprint(s->tok[0])); goto scan; } #line 2848 "nasm-token.c" yy297: yych = *++YYCURSOR; if(yych == '>') goto yy322; goto yy296; yy298: yych = *++YYCURSOR; if(yych == '/') goto yy320; goto yy292; yy299: yych = *++YYCURSOR; if(yych == '%') goto yy318; goto yy292; yy300: yych = *++YYCURSOR; goto yy292; yy301: yych = *++YYCURSOR; goto yy302; yy302: #line 693 "./modules/parsers/nasm/nasm-token.re" { goto endofinput; } #line 2865 "nasm-token.c" yy303: yych = *++YYCURSOR; goto yy317; yy304: #line 704 "./modules/parsers/nasm/nasm-token.re" { savech = s->tok[TOKLEN]; s->tok[TOKLEN] = '\0'; switch (yasm_arch_parse_check_regtmod (p_object->arch, TOK, TOKLEN, &lvalp->arch_data)) { case YASM_ARCH_REG: s->tok[TOKLEN] = savech; RETURN(REG); default: s->tok[TOKLEN] = savech; } /* Propagate errors in case we got a warning from the arch */ yasm_errwarn_propagate(parser_nasm->errwarns, cur_line); /* Just an identifier, return as such. */ lvalp->str_val = yasm__xstrndup(TOK, TOKLEN); RETURN(ID); } #line 2887 "nasm-token.c" yy305: yych = *++YYCURSOR; goto yy315; yy306: #line 722 "./modules/parsers/nasm/nasm-token.re" { goto directive2; } #line 2893 "nasm-token.c" yy307: yych = *++YYCURSOR; goto yy313; yy308: #line 724 "./modules/parsers/nasm/nasm-token.re" { goto directive2; } #line 2899 "nasm-token.c" yy309: yych = *++YYCURSOR; goto yy310; yy310: #line 726 "./modules/parsers/nasm/nasm-token.re" { goto endofinput; } #line 2905 "nasm-token.c" yy311: yych = *++YYCURSOR; goto yy296; yy312: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy313; yy313: if(yybm[256+yych] & 128) { goto yy312; } goto yy308; yy314: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy315; yy315: if(yybm[0+yych] & 1) { goto yy314; } goto yy306; yy316: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy317; yy317: if(yybm[0+yych] & 2) { goto yy316; } goto yy304; yy318: yych = *++YYCURSOR; goto yy319; yy319: #line 689 "./modules/parsers/nasm/nasm-token.re" { RETURN(SIGNMOD); } #line 2937 "nasm-token.c" yy320: yych = *++YYCURSOR; goto yy321; yy321: #line 688 "./modules/parsers/nasm/nasm-token.re" { RETURN(SIGNDIV); } #line 2943 "nasm-token.c" yy322: yych = *++YYCURSOR; goto yy323; yy323: #line 687 "./modules/parsers/nasm/nasm-token.re" { RETURN(RIGHT_OP); } #line 2949 "nasm-token.c" yy324: yych = *++YYCURSOR; goto yy325; yy325: #line 686 "./modules/parsers/nasm/nasm-token.re" { RETURN(LEFT_OP); } #line 2955 "nasm-token.c" yy326: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy327; yy327: if(yych <= '>'){ if(yych <= '-'){ if(yych <= '"') goto yy328; if(yych <= '$') goto yy326; goto yy328; } else { if(yych == '/') goto yy328; if(yych <= '9') goto yy326; goto yy328; } } else { if(yych <= '`'){ if(yych <= 'Z') goto yy326; if(yych == '_') goto yy326; goto yy328; } else { if(yych <= 'z') goto yy326; if(yych == '~') goto yy326; goto yy328; } } yy328: #line 698 "./modules/parsers/nasm/nasm-token.re" { lvalp->str_val = yasm__xstrndup(TOK, TOKLEN); RETURN(ID); } #line 2987 "nasm-token.c" yy329: yych = *++YYCURSOR; if(yybm[0+yych] & 4) { goto yy330; } goto yy327; yy330: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy331; yy331: if(yybm[0+yych] & 4) { goto yy330; } if(yych <= '>'){ if(yych <= '$'){ if(yych >= '#') goto yy326; goto yy332; } else { if(yych == '.') goto yy326; goto yy332; } } else { if(yych <= 'z'){ if(yych <= 'Z') goto yy326; if(yych >= 'g') goto yy326; goto yy332; } else { if(yych == '~') goto yy326; goto yy332; } } yy332: #line 666 "./modules/parsers/nasm/nasm-token.re" { savech = s->tok[TOKLEN]; s->tok[TOKLEN] = '\0'; if (s->tok[1] == 'x' || s->tok[1] == 'X') /* skip 0 and x */ lvalp->intn = yasm_intnum_create_hex(TOK+2); else /* don't skip 0 */ lvalp->intn = yasm_intnum_create_hex(TOK+1); s->tok[TOKLEN] = savech; RETURN(INTNUM); } #line 3032 "nasm-token.c" yy333: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy334; yy334: if(yybm[0+yych] & 8) { goto yy333; } if(yych <= '^'){ if(yych <= 'F'){ if(yych <= '@') goto yy287; goto yy335; } else { if(yych == 'H') goto yy338; goto yy287; } } else { if(yych <= 'f'){ if(yych == '`') goto yy287; goto yy335; } else { if(yych == 'h') goto yy338; goto yy287; } } yy335: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy336; yy336: if(yych <= 'H'){ if(yych <= '@'){ if(yych <= '/') goto yy337; if(yych <= '9') goto yy335; goto yy337; } else { if(yych <= 'F') goto yy335; if(yych >= 'H') goto yy338; goto yy337; } } else { if(yych <= '`'){ if(yych == '_') goto yy335; goto yy337; } else { if(yych <= 'f') goto yy335; if(yych == 'h') goto yy338; goto yy337; } } yy337: YYCURSOR = YYMARKER; switch(yyaccept){ case 0: goto yy287; case 1: goto yy349; } yy338: yych = *++YYCURSOR; goto yy339; yy339: #line 659 "./modules/parsers/nasm/nasm-token.re" { s->tok[TOKLEN-1] = '\0'; /* strip off 'h' */ lvalp->intn = yasm_intnum_create_hex(TOK); RETURN(INTNUM); } #line 3096 "nasm-token.c" yy340: yyaccept = 0; YYMARKER = ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy341; yy341: if(yybm[0+yych] & 16) { goto yy340; } if(yych <= 'Q'){ if(yych <= 'G'){ if(yych <= '9'){ if(yych <= '7') goto yy287; goto yy333; } else { if(yych <= '@') goto yy287; if(yych <= 'F') goto yy335; goto yy287; } } else { if(yych <= 'N'){ if(yych <= 'H') goto yy338; goto yy287; } else { if(yych == 'P') goto yy287; goto yy344; } } } else { if(yych <= 'g'){ if(yych <= '_'){ if(yych <= '^') goto yy287; goto yy342; } else { if(yych <= '`') goto yy287; if(yych <= 'f') goto yy335; goto yy287; } } else { if(yych <= 'o'){ if(yych <= 'h') goto yy338; if(yych <= 'n') goto yy287; goto yy344; } else { if(yych == 'q') goto yy344; goto yy287; } } } yy342: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy343; yy343: if(yybm[0+yych] & 32) { goto yy342; } if(yych <= 'P'){ if(yych <= 'F'){ if(yych <= '7') goto yy337; if(yych <= '9') goto yy335; if(yych <= '@') goto yy337; goto yy335; } else { if(yych <= 'H'){ if(yych <= 'G') goto yy337; goto yy338; } else { if(yych != 'O') goto yy337; goto yy344; } } } else { if(yych <= 'h'){ if(yych <= '`'){ if(yych >= 'R') goto yy337; goto yy344; } else { if(yych <= 'f') goto yy335; if(yych <= 'g') goto yy337; goto yy338; } } else { if(yych <= 'o'){ if(yych <= 'n') goto yy337; goto yy344; } else { if(yych != 'q') goto yy337; goto yy344; } } } yy344: yych = *++YYCURSOR; goto yy345; yy345: #line 652 "./modules/parsers/nasm/nasm-token.re" { s->tok[TOKLEN-1] = '\0'; /* strip off 'q' or 'o' */ lvalp->intn = yasm_intnum_create_oct(TOK); RETURN(INTNUM); } #line 3196 "nasm-token.c" yy346: yyaccept = 0; YYMARKER = ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; goto yy347; yy347: if(yybm[0+yych] & 64) { goto yy346; } switch(yych){ case '2': case '3': case '4': case '5': case '6': case '7': goto yy340; case '8': case '9': goto yy333; case 'A': case 'C': case 'D': case 'E': case 'F': case 'a': case 'c': case 'd': case 'e': case 'f': goto yy335; case 'B': case 'b': goto yy348; case 'H': case 'h': goto yy338; case 'O': case 'Q': case 'o': case 'q': goto yy344; case '_': goto yy350; default: goto yy287; } yy348: yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if(yych <= 'H'){ if(yych <= '@'){ if(yych <= '/') goto yy349; if(yych <= '9') goto yy335; goto yy349; } else { if(yych <= 'F') goto yy335; if(yych >= 'H') goto yy338; goto yy349; } } else { if(yych <= '`'){ if(yych == '_') goto yy335; goto yy349; } else { if(yych <= 'f') goto yy335; if(yych == 'h') goto yy338; goto yy349; } } yy349: #line 645 "./modules/parsers/nasm/nasm-token.re" { s->tok[TOKLEN-1] = '\0'; /* strip off 'b' */ lvalp->intn = yasm_intnum_create_bin(TOK); RETURN(INTNUM); } #line 3256 "nasm-token.c" yy350: ++YYCURSOR; if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; goto yy351; yy351: if(yybm[0+yych] & 128) { goto yy350; } switch(yych){ case '2': case '3': case '4': case '5': case '6': case '7': goto yy342; case '8': case '9': case 'A': case 'C': case 'D': case 'E': case 'F': case 'a': case 'c': case 'd': case 'e': case 'f': goto yy335; case 'B': case 'b': goto yy348; case 'H': case 'h': goto yy338; case 'O': case 'Q': case 'o': case 'q': goto yy344; default: goto yy337; } yy352: yych = *++YYCURSOR; if(yych <= 'F'){ if(yych <= '/') goto yy337; if(yych <= '9') goto yy353; if(yych <= '@') goto yy337; goto yy353; } else { if(yych <= '_'){ if(yych <= '^') goto yy337; goto yy353; } else { if(yych <= '`') goto yy337; if(yych >= 'g') goto yy337; goto yy353; } } yy353: ++YYCURSOR; if(YYLIMIT == YYCURSOR) YYFILL(1); yych = *YYCURSOR; goto yy354; yy354: if(yych <= 'F'){ if(yych <= '/') goto yy332; if(yych <= '9') goto yy353; if(yych <= '@') goto yy332; goto yy353; } else { if(yych <= '_'){ if(yych <= '^') goto yy332; goto yy353; } else { if(yych <= '`') goto yy332; if(yych <= 'f') goto yy353; goto yy332; } } } } #line 734 "./modules/parsers/nasm/nasm-token.re" /* string/character constant values */ stringconst: strbuf = yasm_xmalloc(STRBUF_ALLOC_SIZE); strbuf_size = STRBUF_ALLOC_SIZE; count = 0; stringconst_scan: SCANINIT(); if (*cursor == '\0') goto stringconst_error; { #line 3337 "nasm-token.c" { YYCTYPE yych; goto yy355; ++YYCURSOR; yy355: if((YYLIMIT - YYCURSOR) < 2) YYFILL(2); yych = *YYCURSOR; if(yych <= '"'){ if(yych <= '\000') goto yy357; if(yych <= '!') goto yy362; goto yy361; } else { if(yych == '\'') goto yy359; goto yy362; } yy357: yych = *++YYCURSOR; goto yy358; yy358: #line 748 "./modules/parsers/nasm/nasm-token.re" { goto stringconst_error; } #line 3358 "nasm-token.c" yy359: yych = *++YYCURSOR; if(yych == '\'') goto yy363; goto yy360; yy360: #line 770 "./modules/parsers/nasm/nasm-token.re" { if (s->tok[0] == endch) goto stringconst_end; strbuf[count++] = s->tok[0]; if (count >= strbuf_size) { strbuf = yasm_xrealloc(strbuf, strbuf_size + STRBUF_ALLOC_SIZE); strbuf_size += STRBUF_ALLOC_SIZE; } goto stringconst_scan; } #line 3376 "nasm-token.c" yy361: yych = *++YYCURSOR; if(yych == '"') goto yy363; goto yy360; yy362: yych = *++YYCURSOR; goto yy360; yy363: yych = *++YYCURSOR; goto yy364; yy364: #line 750 "./modules/parsers/nasm/nasm-token.re" { if (endch != s->tok[0]) { strbuf[count++] = s->tok[0]; if (count >= strbuf_size) { strbuf = yasm_xrealloc(strbuf, strbuf_size + STRBUF_ALLOC_SIZE); strbuf_size += STRBUF_ALLOC_SIZE; } } else if (!parser_nasm->tasm) { YYCURSOR--; goto stringconst_end; } strbuf[count++] = s->tok[0]; if (count >= strbuf_size) { strbuf = yasm_xrealloc(strbuf, strbuf_size + STRBUF_ALLOC_SIZE); strbuf_size += STRBUF_ALLOC_SIZE; } goto stringconst_scan; } #line 3405 "nasm-token.c" } } #line 782 "./modules/parsers/nasm/nasm-token.re" stringconst_error: yasm_error_set(YASM_ERROR_SYNTAX, N_("unterminated string")); stringconst_end: strbuf[count] = '\0'; lvalp->str.contents = (char *)strbuf; lvalp->str.len = count; RETURN(STRING); endofinput: parser_nasm->state = INITIAL; RETURN(s->tok[0]); }