1 //
2 //  m3_info.h
3 //
4 //  Created by Steven Massey on 12/6/19.
5 //  Copyright © 2019 Steven Massey. All rights reserved.
6 //
7 
8 #ifndef m3_info_h
9 #define m3_info_h
10 
11 #include "m3_compile.h"
12 
13 d_m3BeginExternC
14 
15 #ifdef DEBUG
16 
17 void            dump_type_stack         (IM3Compilation o);
18 void            log_opcode              (IM3Compilation o, m3opcode_t i_opcode);
19 const char *    get_indention_string    (IM3Compilation o);
20 void            emit_stack_dump         (IM3Compilation o);
21 void            log_emit                (IM3Compilation o, IM3Operation i_operation);
22 
23 cstr_t          SPrintFuncTypeSignature (IM3FuncType i_funcType);
24 
25 #else // DEBUG
26 
27 #define         dump_type_stack(...)      {}
28 #define         log_opcode(...)           {}
29 #define         get_indention_string(...) ""
30 #define         emit_stack_dump(...)      {}
31 #define         log_emit(...)             {}
32 
33 #endif // DEBUG
34 
35 d_m3EndExternC
36 
37 #endif // m3_info_h
38