struct / union in initializer, RFE #901.
[sdcc.git] / sdcc / src / SDCCasm.h
blob2554b9417b79c58e9f2bdf11d04b837bce1e3a57
1 /*-------------------------------------------------------------------------
2 SDCCasm.h - header file for all types of stuff to support different assemblers.
4 Copyright (C) 2000, Michael Hope <michaelh@juju.net.nz>
6 This program is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
9 later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 -------------------------------------------------------------------------*/
21 #ifndef SDCCASM_H
22 #define SDCCASM_H
24 #include "dbuf.h"
26 void tfprintf (FILE * fp, const char *szFormat, ...);
27 void dbuf_tprintf (struct dbuf_s *dbuf, const char *szFormat, ...);
28 void dbuf_tvprintf (struct dbuf_s *dbuf, const char *szFormat, va_list ap);
30 typedef struct
32 const char *szKey;
33 const char *szValue;
35 ASM_MAPPING;
37 typedef struct _ASM_MAPPINGS ASM_MAPPINGS;
39 /* PENDING: could include the peephole rules here as well.
41 struct _ASM_MAPPINGS
43 const ASM_MAPPINGS *pParent;
44 const ASM_MAPPING *pMappings;
47 /* The default asxxxx token mapping.
49 extern const ASM_MAPPINGS asm_asxxxx_mapping;
51 /* The default mapping for small (<16 bit word) Padauk architectures.
53 extern const ASM_MAPPINGS asm_asxxxx_smallpdk_mapping;
54 extern const ASM_MAPPINGS asm_gas_mapping;
55 extern const ASM_MAPPINGS asm_a390_mapping;
57 /** Last entry has szKey = NULL.
59 void asm_addTree (const ASM_MAPPINGS * pMappings);
61 const char *FileBaseName (const char *fileFullName);
63 const char *printILine (iCode * ic);
64 const char *printCLine (const char *srcFile, int lineno);
65 #endif