mirror of
https://github.com/NishiOwO/JWasm.git
synced 2025-04-21 08:44:38 +00:00
77 lines
3.1 KiB
C
77 lines
3.1 KiB
C
/****************************************************************************
|
|
*
|
|
* Open Watcom Project
|
|
*
|
|
* Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
|
|
*
|
|
* ========================================================================
|
|
*
|
|
* This file contains Original Code and/or Modifications of Original
|
|
* Code as defined in and that are subject to the Sybase Open Watcom
|
|
* Public License version 1.0 (the 'License'). You may not use this file
|
|
* except in compliance with the License. BY USING THIS FILE YOU AGREE TO
|
|
* ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
|
|
* provided with the Original Code and Modifications, and is also
|
|
* available at www.sybase.com/developer/opensource.
|
|
*
|
|
* The Original Code and all software distributed under the License are
|
|
* distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
|
|
* EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
|
|
* ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
|
|
* NON-INFRINGEMENT. Please see the License for the specific language
|
|
* governing rights and limitations under the License.
|
|
*
|
|
* ========================================================================
|
|
*
|
|
* Description: prototypes for macro stuff
|
|
*
|
|
****************************************************************************/
|
|
|
|
#ifndef _MACRO_H_
|
|
#define _MACRO_H_
|
|
|
|
#define PLACEHOLDER_CHAR '\n' /* "escape" char for macro placeholders */
|
|
|
|
enum macro_flags {
|
|
#if MACROLABEL
|
|
MF_LABEL = 0x01, /* a label exists at pos 0 */
|
|
#endif
|
|
MF_NOSAVE = 0x02, /* no need to save/restore input status */
|
|
MF_IGNARGS = 0x04 /* ignore additional arguments (for FOR directive) */
|
|
};
|
|
|
|
/* functions in expans.c */
|
|
|
|
extern int GetLiteralValue( char *, const char * );
|
|
extern int RunMacro( struct dsym *, int, struct asm_tok[], char *, int, bool * );
|
|
extern ret_code ExpandText( char *, struct asm_tok[], unsigned int );
|
|
extern int ExpandLineItems( char *, int, struct asm_tok[], int, int );
|
|
extern ret_code ExpandLine( char *, struct asm_tok[] );
|
|
extern void ExpandLiterals( int i, struct asm_tok[] );
|
|
|
|
/* functions in macro.c */
|
|
|
|
extern struct dsym *CreateMacro( const char * );/* create a macro symbol */
|
|
extern void ReleaseMacroData( struct dsym * );
|
|
extern void fill_placeholders( char *, const char *, unsigned, unsigned, char * * );
|
|
extern void SkipCurrentQueue( struct asm_tok[] );
|
|
extern ret_code StoreMacro( struct dsym *, int, struct asm_tok[], bool ); /* store macro content */
|
|
extern ret_code MacroInit( int );
|
|
#ifdef DEBUG_OUT
|
|
extern void MacroFini( void );
|
|
#endif
|
|
|
|
/* functions in string.c */
|
|
|
|
extern struct asym *SetTextMacro( struct asm_tok[], struct asym *, const char *, const char * ); /* EQU for texts */
|
|
extern struct asym *AddPredefinedText( const char *, const char * );
|
|
extern int TextItemError( struct asm_tok * );
|
|
|
|
extern void StringInit( void );
|
|
#ifdef DEBUG_OUT
|
|
extern void StringFini( void );
|
|
#endif
|
|
|
|
#endif
|