Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(801)

Side by Side Diff: third_party/yasm/patched-yasm/modules/parsers/nasm/nasm-token.re

Issue 6170009: Update our yasm copy to yasm 1.1.0 (Part 1: yasm side)... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * NASM-compatible re2c lexer 2 * NASM-compatible re2c lexer
3 * 3 *
4 * Copyright (C) 2001-2007 Peter Johnson 4 * Copyright (C) 2001-2007 Peter Johnson
5 * 5 *
6 * Portions based on re2c's example code. 6 * Portions based on re2c's example code.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions 9 * modification, are permitted provided that the following conditions
10 * are met: 10 * are met:
11 * 1. Redistributions of source code must retain the above copyright 11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer. 12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright 13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the 14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution. 15 * documentation and/or other materials provided with the distribution.
16 * 16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS'' 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND OTHER CONTRIBUTORS ``AS IS''
18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR OTHER CONTRIBUTORS BE
21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 * POSSIBILITY OF SUCH DAMAGE. 27 * POSSIBILITY OF SUCH DAMAGE.
28 */ 28 */
29 #include <util.h> 29 #include <util.h>
30 RCSID("$Id: nasm-token.re 2139 2008-10-08 05:19:47Z peter $"); 30 RCSID("$Id: nasm-token.re 2277 2010-01-19 07:03:15Z peter $");
31 31
32 #include <libyasm.h> 32 #include <libyasm.h>
33 33
34 #include "modules/parsers/nasm/nasm-parser.h" 34 #include "modules/parsers/nasm/nasm-parser.h"
35 #include "modules/preprocs/nasm/nasm.h" 35 #include "modules/preprocs/nasm/nasm.h"
36 36
37 37
38 #define YYCURSOR cursor 38 #define YYCURSOR cursor
39 #define YYLIMIT (s->lim) 39 #define YYLIMIT (s->lim)
40 #define YYMARKER (s->ptr) 40 #define YYMARKER (s->ptr)
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 { 77 {
78 /* check for special non-local labels like ..start */ 78 /* check for special non-local labels like ..start */
79 if (tok[zeropos+1] == '.') { 79 if (tok[zeropos+1] == '.') {
80 lvalp->str_val = yasm__xstrndup(tok+zeropos+(parser_nasm->tasm?2:0), 80 lvalp->str_val = yasm__xstrndup(tok+zeropos+(parser_nasm->tasm?2:0),
81 toklen-zeropos-(parser_nasm->tasm?2:0)); 81 toklen-zeropos-(parser_nasm->tasm?2:0));
82 /* check for special non-local ..@label */ 82 /* check for special non-local ..@label */
83 if (lvalp->str_val[zeropos+2] == '@') 83 if (lvalp->str_val[zeropos+2] == '@')
84 return NONLOCAL_ID; 84 return NONLOCAL_ID;
85 return SPECIAL_ID; 85 return SPECIAL_ID;
86 } 86 }
87 if (parser_nasm->masm && tok[zeropos] == '.') {
88 lvalp->str_val = yasm__xstrndup(tok + zeropos, toklen - zeropos);
89 return SPECIAL_ID;
90 }
87 if (parser_nasm->tasm && (!tasm_locals || 91 if (parser_nasm->tasm && (!tasm_locals ||
88 (tok[zeropos] == '.' && 92 (tok[zeropos] == '.' &&
89 tok[zeropos+1] != '@' && tok[zeropos+2] != '@'))) { 93 tok[zeropos+1] != '@' && tok[zeropos+2] != '@'))) {
90 /* no locals on Tasm without the 'locals' directive */ 94 /* no locals on Tasm without the 'locals' directive */
91 /* .foo is never local either, but .@@foo may be (local structure 95 /* .foo is never local either, but .@@foo may be (local structure
92 * members) */ 96 * members) */
93 lvalp->str_val = yasm__xstrndup(tok + zeropos, toklen - zeropos); 97 lvalp->str_val = yasm__xstrndup(tok + zeropos, toklen - zeropos);
94 return SPECIAL_ID; 98 return SPECIAL_ID;
95 } 99 }
96 if (!parser_nasm->locallabel_base) { 100 if (!parser_nasm->locallabel_base) {
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
409 (p_object->arch, TOK, TOKLEN, &lvalp->arch_data)) { 413 (p_object->arch, TOK, TOKLEN, &lvalp->arch_data)) {
410 case YASM_ARCH_REG: 414 case YASM_ARCH_REG:
411 s->tok[TOKLEN] = savech; 415 s->tok[TOKLEN] = savech;
412 RETURN(REG); 416 RETURN(REG);
413 case YASM_ARCH_SEGREG: 417 case YASM_ARCH_SEGREG:
414 s->tok[TOKLEN] = savech; 418 s->tok[TOKLEN] = savech;
415 RETURN(SEGREG); 419 RETURN(SEGREG);
416 case YASM_ARCH_TARGETMOD: 420 case YASM_ARCH_TARGETMOD:
417 s->tok[TOKLEN] = savech; 421 s->tok[TOKLEN] = savech;
418 RETURN(TARGETMOD); 422 RETURN(TARGETMOD);
423 case YASM_ARCH_REGGROUP:
424 if (parser_nasm->masm) {
425 s->tok[TOKLEN] = savech;
426 RETURN(REGGROUP);
427 }
419 default: 428 default:
420 break; 429 break;
421 } 430 }
422 if (parser_nasm->tasm) { 431 if (parser_nasm->masm) {
432 if (!yasm__strcasecmp(TOK, "offset")) {
433 s->tok[TOKLEN] = savech;
434 RETURN(OFFSET);
435 }
436 } else if (parser_nasm->tasm) {
423 if (!yasm__strcasecmp(TOK, "shl")) { 437 if (!yasm__strcasecmp(TOK, "shl")) {
424 s->tok[TOKLEN] = savech; 438 s->tok[TOKLEN] = savech;
425 RETURN(LEFT_OP); 439 RETURN(LEFT_OP);
426 } 440 }
427 if (!yasm__strcasecmp(TOK, "shr")) { 441 if (!yasm__strcasecmp(TOK, "shr")) {
428 s->tok[TOKLEN] = savech; 442 s->tok[TOKLEN] = savech;
429 RETURN(RIGHT_OP); 443 RETURN(RIGHT_OP);
430 } 444 }
431 if (!yasm__strcasecmp(TOK, "and")) { 445 if (!yasm__strcasecmp(TOK, "and")) {
432 s->tok[TOKLEN] = savech; 446 s->tok[TOKLEN] = savech;
433 RETURN('&'); 447 RETURN('&');
434 } 448 }
435 if (!yasm__strcasecmp(TOK, "or")) { 449 if (!yasm__strcasecmp(TOK, "or")) {
436 s->tok[TOKLEN] = savech; 450 s->tok[TOKLEN] = savech;
437 RETURN('|'); 451 RETURN('|');
438 } 452 }
453 if (!yasm__strcasecmp(TOK, "not")) {
454 s->tok[TOKLEN] = savech;
455 RETURN('~');
456 }
439 if (!yasm__strcasecmp(TOK, "low")) { 457 if (!yasm__strcasecmp(TOK, "low")) {
440 s->tok[TOKLEN] = savech; 458 s->tok[TOKLEN] = savech;
441 RETURN(LOW); 459 RETURN(LOW);
442 } 460 }
443 if (!yasm__strcasecmp(TOK, "high")) { 461 if (!yasm__strcasecmp(TOK, "high")) {
444 s->tok[TOKLEN] = savech; 462 s->tok[TOKLEN] = savech;
445 RETURN(HIGH); 463 RETURN(HIGH);
446 } 464 }
447 if (!yasm__strcasecmp(TOK, "offset")) { 465 if (!yasm__strcasecmp(TOK, "offset")) {
448 s->tok[TOKLEN] = savech; 466 s->tok[TOKLEN] = savech;
(...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after
769 stringconst_end: 787 stringconst_end:
770 strbuf[count] = '\0'; 788 strbuf[count] = '\0';
771 lvalp->str.contents = (char *)strbuf; 789 lvalp->str.contents = (char *)strbuf;
772 lvalp->str.len = count; 790 lvalp->str.len = count;
773 RETURN(STRING); 791 RETURN(STRING);
774 792
775 endofinput: 793 endofinput:
776 parser_nasm->state = INITIAL; 794 parser_nasm->state = INITIAL;
777 RETURN(s->tok[0]); 795 RETURN(s->tok[0]);
778 } 796 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698