macro.h revision 33965
11556Srgrimes/* macro.h - header file for macro support for gas and gasp
21556Srgrimes   Copyright (C) 1994, 1995 Free Software Foundation, Inc.
31556Srgrimes
41556Srgrimes   Written by Steve and Judy Chamberlain of Cygnus Support,
51556Srgrimes      sac@cygnus.com
61556Srgrimes
71556Srgrimes   This file is part of GAS, the GNU Assembler.
81556Srgrimes
91556Srgrimes   GAS is free software; you can redistribute it and/or modify
101556Srgrimes   it under the terms of the GNU General Public License as published by
111556Srgrimes   the Free Software Foundation; either version 2, or (at your option)
121556Srgrimes   any later version.
131556Srgrimes
141556Srgrimes   GAS is distributed in the hope that it will be useful,
151556Srgrimes   but WITHOUT ANY WARRANTY; without even the implied warranty of
161556Srgrimes   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
171556Srgrimes   GNU General Public License for more details.
181556Srgrimes
191556Srgrimes   You should have received a copy of the GNU General Public License
201556Srgrimes   along with GAS; see the file COPYING.  If not, write to the Free
211556Srgrimes   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
221556Srgrimes   02111-1307, USA. */
231556Srgrimes
241556Srgrimes#ifndef MACRO_H
251556Srgrimes
261556Srgrimes#define MACRO_H
271556Srgrimes
281556Srgrimes#include "ansidecl.h"
291556Srgrimes#include "sb.h"
301556Srgrimes
311556Srgrimes/* Whether any macros have been defined.  */
321556Srgrimes
331556Srgrimesextern int macro_defined;
341556Srgrimes
353044Sdg/* The macro nesting level.  */
3620742Ssteve
371556Srgrimesextern int macro_nest;
381556Srgrimes
391556Srgrimesextern int buffer_and_nest
4020425Ssteve  PARAMS ((const char *, const char *, sb *, int (*) PARAMS ((sb *))));
411556Srgrimesextern void macro_init
421556Srgrimes  PARAMS ((int alternate, int mri, int strip_at,
4317987Speter	   int (*) PARAMS ((const char *, int, sb *, int *))));
4417987Speterextern const char *define_macro
4517987Speter  PARAMS ((int idx, sb *in, sb *label, int (*get_line) PARAMS ((sb *)),
4617987Speter	   const char **namep));
471556Srgrimesextern int check_macro PARAMS ((const char *, sb *, int, const char **));
481556Srgrimesextern void delete_macro PARAMS ((const char *));
491556Srgrimesextern const char *expand_irp
501556Srgrimes  PARAMS ((int, int, sb *, sb *, int (*) PARAMS ((sb *)), int));
511556Srgrimes
521556Srgrimes#endif
531556Srgrimes