Index: third_party/yasm/patched-yasm/modules/parsers/nasm/nasm-parser-struct.h |
=================================================================== |
--- third_party/yasm/patched-yasm/modules/parsers/nasm/nasm-parser-struct.h (revision 0) |
+++ third_party/yasm/patched-yasm/modules/parsers/nasm/nasm-parser-struct.h (revision 0) |
@@ -0,0 +1,85 @@ |
+/* $Id: nasm-parser-struct.h 2277 2010-01-19 07:03:15Z peter $ |
+ * NASM-compatible parser struct header file |
+ * |
+ * Copyright (C) 2002-2007 Peter Johnson |
+ * |
+ * 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. |
+ */ |
+#ifndef YASM_NASM_PARSER_STRUCT_H |
+#define YASM_NASM_PARSER_STRUCT_H |
+ |
+typedef union { |
+ unsigned int int_info; |
+ char *str_val; |
+ yasm_intnum *intn; |
+ yasm_floatnum *flt; |
+ yasm_bytecode *bc; |
+ uintptr_t arch_data; |
+ struct { |
+ char *contents; |
+ size_t len; |
+ } str; |
+} nasm_yystype; |
+ |
+typedef struct yasm_parser_nasm { |
+ int tasm; |
+ int masm; |
+ |
+ /*@only@*/ yasm_object *object; |
+ |
+ /* last "base" label for local (.) labels */ |
+ /*@null@*/ char *locallabel_base; |
+ size_t locallabel_base_len; |
+ |
+ /*@dependent@*/ yasm_preproc *preproc; |
+ /*@dependent@*/ yasm_errwarns *errwarns; |
+ |
+ /*@dependent@*/ yasm_linemap *linemap; |
+ |
+ /*@null@*/ yasm_bytecode *prev_bc; |
+ |
+ int save_input; |
+ |
+ yasm_scanner s; |
+ int state; |
+ |
+ int token; /* enum tokentype or any character */ |
+ nasm_yystype tokval; |
+ char tokch; /* first character of token */ |
+ |
+ /* one token of lookahead; used sparingly */ |
+ int peek_token; /* NONE if none */ |
+ nasm_yystype peek_tokval; |
+ char peek_tokch; |
+ |
+ /* Starting point of the absolute section. NULL if not in an absolute |
+ * section. |
+ */ |
+ /*@null@*/ yasm_expr *absstart; |
+ |
+ /* Current location inside an absolute section (including the start). |
+ * NULL if not in an absolute section. |
+ */ |
+ /*@null@*/ yasm_expr *abspos; |
+} yasm_parser_nasm; |
+ |
+#endif |