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

Side by Side Diff: third_party/yasm/patched-yasm/modules/parsers/gas/gas-parser.h

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 /* $Id: gas-parser.h 2167 2009-01-02 08:36:09Z peter $ 1 /* $Id: gas-parser.h 2279 2010-01-19 07:57:43Z peter $
2 * GAS-compatible parser header file 2 * GAS-compatible parser header file
3 * 3 *
4 * Copyright (C) 2005-2007 Peter Johnson 4 * Copyright (C) 2005-2007 Peter Johnson
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright 11 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 yasm_floatnum *flt; 57 yasm_floatnum *flt;
58 yasm_bytecode *bc; 58 yasm_bytecode *bc;
59 uintptr_t arch_data; 59 uintptr_t arch_data;
60 struct { 60 struct {
61 char *contents; 61 char *contents;
62 size_t len; 62 size_t len;
63 } str; 63 } str;
64 } yystype; 64 } yystype;
65 #define YYSTYPE yystype 65 #define YYSTYPE yystype
66 66
67 typedef struct gas_rept_line {
68 STAILQ_ENTRY(gas_rept_line) link;
69 YYCTYPE *data; /* line characters */
70 size_t len; /* length of data */
71 } gas_rept_line;
72
73 typedef struct gas_rept {
74 STAILQ_HEAD(reptlinelist, gas_rept_line) lines; /* repeated lines */
75 unsigned long startline; /* line number of rept directive */
76 unsigned long numrept; /* number of repititions to generate */
77 unsigned long numdone; /* number of repititions executed so far */
78 /*@null@*/ gas_rept_line *line; /* next line to repeat */
79 size_t linepos; /* position to start pulling chars from line */
80 int ended; /* seen endr directive yet? */
81
82 YYCTYPE *oldbuf; /* saved previous fill buffer */
83 size_t oldbuflen; /* previous fill buffer length */
84 size_t oldbufpos; /* position in previous fill buffer */
85 } gas_rept;
86
87 enum gas_parser_state { 67 enum gas_parser_state {
88 INITIAL, 68 INITIAL,
89 COMMENT, 69 COMMENT,
90 SECTION_DIRECTIVE, 70 SECTION_DIRECTIVE,
91 NASM_FILENAME 71 NASM_FILENAME
92 }; 72 };
93 73
94 typedef struct yasm_parser_gas { 74 typedef struct yasm_parser_gas {
95 /*@only@*/ yasm_object *object; 75 /*@only@*/ yasm_object *object;
96 76
(...skipping 30 matching lines...) Expand all
127 107
128 int token; /* enum tokentype or any character */ 108 int token; /* enum tokentype or any character */
129 yystype tokval; 109 yystype tokval;
130 char tokch; /* first character of token */ 110 char tokch; /* first character of token */
131 111
132 /* one token of lookahead; used sparingly */ 112 /* one token of lookahead; used sparingly */
133 int peek_token; /* NONE if none */ 113 int peek_token; /* NONE if none */
134 yystype peek_tokval; 114 yystype peek_tokval;
135 char peek_tokch; 115 char peek_tokch;
136 116
137 /*@null@*/ gas_rept *rept;
138
139 /* Index of local labels; what's stored here is the /next/ index, 117 /* Index of local labels; what's stored here is the /next/ index,
140 * so these are all 0 at start. 118 * so these are all 0 at start.
141 */ 119 */
142 unsigned long local[10]; 120 unsigned long local[10];
143 121
144 /* Parser-handled directives HAMT lookup */ 122 /* Parser-handled directives HAMT lookup */
145 HAMT *dirs; 123 HAMT *dirs;
146 124
125 int intel_syntax;
126
147 int is_nasm_preproc; 127 int is_nasm_preproc;
148 int is_cpp_preproc; 128 int is_cpp_preproc;
149 } yasm_parser_gas; 129 } yasm_parser_gas;
150 130
151 /* shorter access names to commonly used parser_gas fields */ 131 /* shorter access names to commonly used parser_gas fields */
152 #define p_object (parser_gas->object) 132 #define p_object (parser_gas->object)
153 #define p_symtab (parser_gas->object->symtab) 133 #define p_symtab (parser_gas->object->symtab)
154 #define cursect (parser_gas->object->cur_section) 134 #define cursect (parser_gas->object->cur_section)
155 #define curtok (parser_gas->token) 135 #define curtok (parser_gas->token)
156 #define curval (parser_gas->tokval) 136 #define curval (parser_gas->tokval)
(...skipping 10 matching lines...) Expand all
167 #define LABEL_val (curval.str.contents) 147 #define LABEL_val (curval.str.contents)
168 #define LABEL_len (curval.str.len) 148 #define LABEL_len (curval.str.len)
169 149
170 #define cur_line (yasm_linemap_get_current(parser_gas->linemap)) 150 #define cur_line (yasm_linemap_get_current(parser_gas->linemap))
171 151
172 #define p_expr_new(l,o,r) yasm_expr_create(o,l,r,cur_line) 152 #define p_expr_new(l,o,r) yasm_expr_create(o,l,r,cur_line)
173 #define p_expr_new_tree(l,o,r) yasm_expr_create_tree(l,o,r,cur_line) 153 #define p_expr_new_tree(l,o,r) yasm_expr_create_tree(l,o,r,cur_line)
174 #define p_expr_new_branch(o,r) yasm_expr_create_branch(o,r,cur_line) 154 #define p_expr_new_branch(o,r) yasm_expr_create_branch(o,r,cur_line)
175 #define p_expr_new_ident(r) yasm_expr_create_ident(r,cur_line) 155 #define p_expr_new_ident(r) yasm_expr_create_ident(r,cur_line)
176 156
157 yasm_bytecode *parse_instr_intel(yasm_parser_gas *parser_gas);
158
177 void gas_parser_parse(yasm_parser_gas *parser_gas); 159 void gas_parser_parse(yasm_parser_gas *parser_gas);
178 void gas_parser_cleanup(yasm_parser_gas *parser_gas); 160 void gas_parser_cleanup(yasm_parser_gas *parser_gas);
179 int gas_parser_lex(YYSTYPE *lvalp, yasm_parser_gas *parser_gas); 161 int gas_parser_lex(YYSTYPE *lvalp, yasm_parser_gas *parser_gas);
180 162
181 #endif 163 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698