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: macroexp.h 03.11.06 0.0.A.
11 *
12 * Author: Alexander Krivonogov ( algen )
13 *
14 * Summary: Macro expression
15 *
16 ******************************************************************************/
17
18 #ifndef _MACROEXP_
19 #define _MACROEXP_
20
21 #ifdef __cplusplus
22 extern "C" {
23 #endif // __cplusplus
24
25 #include "../os/user/defines.h"
26 #include "../lex/lex.h"
27 #include "../lex/lexgentee.h"
28 #include "../common/arrdata.h"
29 #include "../common/msglist.h"
30 #include "lexem.h"
31 #include "operlist.h"
32 #include "bcodes.h"
33 #include "../genteeapi/gentee.h"
34
35 /*-----------------------------------------------------------------------------
36 *
37 * ID: macro 03.11.06 0.0.A.
38 *
39 * Summary: Macroexpression result structure
40 *
41 -----------------------------------------------------------------------------*/
42 typedef struct
43 {
44 lexem vallexem; //Копия лексемы с результатом
45 uint bvalue; //Значение истинности для ifdef
46 uint colpars; //Количество параметров коллекции
47 } macrores, * pmacrores;
48
49 /*-----------------------------------------------------------------------------
50 *
51 * ID: macro 03.11.06 0.0.A.
52 *
53 * Summary: Macroexpression operation stack structure
54 *
55 -----------------------------------------------------------------------------*/
56 typedef struct
57 {
58 plexem operlexem;
59 uint operid;
60 pmacrores left;
61 uint flg;
62 } macrooper, * pmacrooper;
63
64 //----------------------------------------------------------------------------
65 //macroexp.c
66 plexem STDCALL macroexpr( plexem curlexem, pmacrores * mr );
67
68 //--------------------------------------------------------------------------
69
70 #ifdef __cplusplus
71 }
72 #endif // __cplusplus
73
74 #endif // _MACROEXP_
75
Редактировать