1 /******************************************************************************
2 *
3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project - http://www.gentee.com.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * ID: define 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov ( gentee )
13 *
14 * Summary: macro functions
15 *
16 ******************************************************************************/
17
18 #ifndef _MACRO_
19 #define _MACRO_
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif // __cplusplus
24
25 #include "lexem.h"
26 #include "macroexp.h"
27
28 //--------------------------------------------------------------------------
29
30 #define MACROF_PREDEF 0x01 // Predefined macro
31 #define MACROF_GROUP 0x02 // The name of define command
32 // If !mr.type then it is alias (shortname) and nameid - link to full macro
33 //#define MACROF_ALIAS 0x04 // Macro is define command with name
34 #define MACRO_NAMEDEF 0x80000000 // for macro_set
35
36 /*-----------------------------------------------------------------------------
37 *
38 * ID: macro 19.10.06 0.0.A.
39 *
40 * Summary: Macro structure
41 *
42 -----------------------------------------------------------------------------*/
43
44 typedef struct
45 {
46 macrores mr;
47 uint flag;
48 } macro, * pmacro;
49
50 /*-----------------------------------------------------------------------------
51 *
52 * ID: defmacro 19.10.06 0.0.A.
53 *
54 * Summary: Predefined macros
55 *
56 -----------------------------------------------------------------------------*/
57
58 #define MACRO_FILE 0
59 #define MACRO_DATE 1
60 #define MACRO_TIME 2
61 #define MACRO_LINE 3
62 #define MACRO_WINDOWS 4
63 #define MACRO_LINUX 5
64
65 //--------------------------------------------------------------------------
66
67 uint STDCALL macro_init( void );
68 pmacro STDCALL macro_set( plexem plex, uint type, uint group );
69 plexem STDCALL macro_get( plexem plex );
70
71 //--------------------------------------------------------------------------
72
73 #ifdef __cplusplus
74 }
75 #endif // __cplusplus
76
77 #endif // _MACRO_
78