1 /* syntax.h syntax header file for vasm */ 2 /* (c) in 2002,2005,2009-2015,2017 3 by Volker Barthelmann and Frank Wille */ 4 5 /* macros to recognize identifiers */ 6 int isidchar(char); 7 int iscomment(char *); 8 #define ISIDSTART(x) ((x)=='.'||(x)=='@'||(x)=='_'||isalpha((unsigned char)(x))) 9 #define ISIDCHAR(x) isidchar(x) 10 #define ISBADID(p,l) ((l)==1&&(*(p)=='.'||*(p)=='@'||*(p)=='_')) 11 #define ISEOL(p) (*(p)=='\0'||iscomment(p)) 12 #ifdef VASM_CPU_M68K 13 char *chkidend(char *,char *); 14 #define CHKIDEND(s,e) chkidend((s),(e)) 15 #endif 16 17 /* result of a boolean operation */ 18 #define BOOLEAN(x) -(x) 19 20 /* we have a special skip() function for expressions, called exp_skip() */ 21 char *exp_skip(char *); 22 #define EXPSKIP() s=exp_skip(s) 23 24 /* ignore operand field, when the instruction has no operands */ 25 #define IGNORE_FIRST_EXTRA_OP 1 26 27 /* symbol which contains the number of macro arguments */ 28 #define NARGSYM "NARG" 29 30 /* symbol which contains the number of the current macro argument */ 31 #define CARGSYM "CARG" 32 33 /* symbol which contains the current rept-endr iteration count */ 34 #define REPTNSYM "REPTN" 35 36 /* overwrite macro defaults */ 37 #define MAXMACPARAMS 35 38 #define SKIP_MACRO_ARGNAME(p) (NULL) 39 void my_exec_macro(source *); 40 #define EXEC_MACRO(s) my_exec_macro(s) 41