Branch data Line data Source code
1 : : #pragma once
2 : :
3 : : void startmacro(const char * line);
4 : : void tomacro(const char * line);
5 : : void endmacro(bool insert);
6 : : void callmacro(const char * data);
7 : : string replace_macro_args(const char* line);
8 : :
9 : : extern int macrorecursion;
10 : : extern int calledmacros;
11 : : extern int reallycalledmacros;
12 : : extern bool inmacro;
13 : : extern int numvarargs;
14 : :
15 : : extern string defining_macro_name;
16 : :
17 : 70 : struct macrodata
18 : : {
19 : : autoarray<string> lines;
20 : : int numlines;
21 : : int startline;
22 : : const char * fname;
23 : : const char * const* arguments;
24 : : const char *arguments_buffer;
25 : : int numargs;
26 : : bool variadic;
27 : : const macrodata* parent_macro;
28 : : int parent_macro_num_varargs;
29 : : };
30 : :
31 : : void freemacro(macrodata* & macro);
32 : :
33 : : extern assocarr<macrodata*> macros;
34 : : extern macrodata* current_macro;
35 : : extern const char* const* current_macro_args;
36 : : extern int current_macro_numargs;
|