source: CMT/v1r18p20041201/source/cmt_parser.h @ 1

Last change on this file since 1 was 1, checked in by arnault, 19 years ago

Import all tags

File size: 6.6 KB
Line 
1//-----------------------------------------------------------
2// Copyright Christian Arnault LAL-Orsay CNRS
3// arnault@lal.in2p3.fr
4// See the complete license in cmt_license.txt "http://www.cecill.info".
5//-----------------------------------------------------------
6
7#ifndef __cmt_parser_h__
8#define __cmt_parser_h__
9
10/*
11  Generation of shell scripts :
12  We consider for the moment only csh and sh
13  */
14typedef enum
15{
16  Csh,
17  Sh,
18  Bat,
19  Make
20} PrintMode;
21
22typedef enum
23{
24  mgr_style,
25  cmt_style,
26  no_version_style,
27  none_style
28} CmtDirStyle;
29
30typedef enum
31{
32  with_version_directory,
33  without_version_directory
34} CmtStructuringStyle;
35
36typedef enum
37{
38  default_filtering_mode,
39  block_private_uses,
40  reach_private_uses
41} CmtScopeFilteringMode;
42
43/*
44  Commands correspond to keywords in the requirements file.
45  */
46typedef enum
47{
48  CommandNone,
49  CommandAction,
50  CommandAlias,
51  CommandApplication,
52  CommandApplyPattern,
53  CommandApplyTag,
54  CommandAuthor,
55  CommandBranches,
56  CommandBuildStrategy,
57  CommandCleanupScript,
58  CommandCmtPathPattern,
59  CommandDocument,
60  CommandEndPrivate,
61  CommandEndPublic,
62  CommandIgnorePattern,
63  CommandIncludeDirs,
64  CommandIncludePath,
65  CommandLanguage,
66  CommandLibrary,
67  CommandMacro,
68  CommandMacroPrepend,
69  CommandMacroAppend,
70  CommandMacroRemove,
71  CommandMacroRemoveRegexp,
72  CommandMacroRemoveAll,
73  CommandMacroRemoveAllRegexp,
74  CommandMakeFragment,
75  CommandManager,
76  CommandPackage,
77  CommandPath,
78  CommandPathAppend,
79  CommandPathPrepend,
80  CommandPathRemove,
81  CommandPathRemoveRegexp,
82  CommandPattern,
83  CommandPrivate,
84  CommandProject,
85  CommandPublic,
86  CommandSet,
87  CommandSetAppend,
88  CommandSetPrepend,
89  CommandSetRemove,
90  CommandSetRemoveRegexp,
91  CommandSetupScript,
92  CommandSetupStrategy,
93  CommandTag,
94  CommandTagExclude,
95  CommandUse,
96  CommandVersion,
97  CommandVersionStrategy,
98  Commands
99} CommandType;
100
101/*
102  The scope is modified while the requirements file is read
103  when the keywords public or private are met.
104  It is also set to public when a used requirements file is read.
105  */
106
107typedef enum
108{
109  DeveloperMode,
110  UserMode
111} AccessMode;
112
113typedef enum
114{
115  ScopeUnspecified,
116  ScopePublic,
117  ScopePrivate
118} ScopeType;
119
120typedef enum
121{
122  Unspecified = -1,
123  Off = 0,
124  On = 1
125} State;
126
127typedef enum
128{
129  PriorityLowest   = 0,
130  PriorityDefault  = 1,
131  PriorityVersion  = 2,
132  PriorityUname    = 3,
133  PrioritySite     = 4,
134  PriorityUserTag  = 5,
135  PriorityTag      = 6,
136  PriorityConfig   = 7,
137  PriorityArgument = 8
138} Priority;
139
140typedef enum
141{
142  SetupScript,
143  CleanupScript
144} ScriptType;
145
146//
147// Build strategy is a mix of various options
148//  + predefined values should be multiples of 2^n
149//  + effective value is an OR of these options
150//  + all options should be specified inthis enum as pairs
151//    of <option> - no<option>. One of them being preset to zero
152//    (which represents the default) the other being set to a unique 2^n value.
153//
154typedef enum
155{
156  Prototypes     = 0x1,
157  NoPrototypes   = Prototypes << 1,
158  DefaultPrototypesStrategy = Prototypes, 
159  PrototypesMask = Prototypes | NoPrototypes,
160
161  WithInstallArea    = NoPrototypes << 1,
162  WithoutInstallArea = WithInstallArea << 1,
163  DefaultInstallAreaStrategy = WithoutInstallArea, 
164  InstallAreaMask    = WithInstallArea | WithoutInstallArea,
165
166  BuildStrategyMask  = PrototypesMask | InstallAreaMask,
167
168  DefaultBuildStrategy = DefaultPrototypesStrategy | DefaultInstallAreaStrategy
169} BuildStrategy;
170
171typedef enum
172{
173  SetupConfig = 0x1,
174  SetupNoConfig = SetupConfig << 1,
175  SetupConfigMask = SetupConfig | SetupNoConfig,
176
177  SetupRoot = SetupNoConfig << 1,
178  SetupNoRoot = SetupRoot << 1,
179  SetupRootMask = SetupRoot | SetupNoRoot,
180
181  SetupCleanup = SetupNoRoot << 1,
182  SetupNoCleanup = SetupCleanup << 1,
183  SetupCleanupMask = SetupCleanup | SetupNoCleanup,
184
185  SetupStrategyMask = SetupConfigMask | SetupRootMask | SetupCleanupMask,
186
187  DefaultSetupStrategy = SetupConfig | SetupRoot | SetupCleanup
188} SetupStrategy;
189
190typedef enum
191{
192  Application,
193  Library,
194  Document
195} ConstituentType;
196
197/*
198  Command line action
199  */
200typedef enum
201{
202  action_none,
203  action_awk,
204  action_broadcast,
205
206  action_build,
207
208  action_build_constituent_makefile,
209  action_build_constituents_makefile,
210  action_build_dependencies,
211  action_build_library_links,
212  action_build_make_setup,
213  action_build_msdev,
214  action_build_CMT_pacman,
215  // Visual Studio.net Support                 
216  action_build_vsnet,                           
217  action_build_os9_makefile,
218  action_build_prototype,
219  action_build_readme,
220  action_build_tag_makefile,
221  action_build_temporary_name,
222  action_build_triggers,
223  action_build_windefs,
224
225  action_check,
226
227  action_check_configuration,
228  action_check_files,
229  action_check_version,
230  action_checkout,
231  action_cleanup,
232  action_config,
233  action_create,
234  action_create_project,
235  action_cvsbranches,
236  action_cvssubpackages,
237  action_cvstags,
238  action_do,
239  action_expand_model,
240  action_filter,
241  action_help,
242  action_load,
243  action_lock,
244  action_remove,
245  action_remove_library_links,
246  action_run,
247  action_run_sequence,
248
249  action_set_version,
250  action_set_versions,
251
252  action_setup,
253
254  action_show,
255
256  action_show_action,
257  action_show_action_value,
258  action_show_action_names,
259  action_show_actions,
260  action_show_all_tags,
261  action_show_applied_patterns,
262  action_show_author,
263  action_show_branches,
264  action_show_clients,
265  action_show_cmtpath_patterns,
266  action_show_constituent,
267  action_show_constituent_names,
268  action_show_constituents,
269  action_show_cycles,
270  action_show_fragment,
271  action_show_fragments,
272  action_show_groups,
273  action_show_include_dirs,
274  action_show_language,
275  action_show_languages,
276  action_show_macro,
277  action_show_macro_value,
278  action_show_macro_names,
279  action_show_macros,
280  action_show_manager,
281  action_show_packages,
282  action_show_path,
283  action_show_pattern,
284  action_show_pattern_names,
285  action_show_patterns,
286  action_show_projects,
287  action_show_setup,
288  action_show_pwd,
289  action_show_set,
290  action_show_set_names,
291  action_show_set_value,
292  action_show_sets,
293  action_show_strategies,
294  action_show_tags,
295  action_show_use_paths,
296  action_show_uses,
297  action_show_version,
298  action_show_versions,
299
300  action_system,
301  action_unlock,
302  action_version
303} ActionType;
304
305#define SLASH '/'
306
307class Use;
308typedef Use* UseRef;
309
310#include "cmt_std.h"
311#include "cmt_string.h"
312#include "cmt_vector.h"
313#include "cmt.h"
314
315#endif
Note: See TracBrowser for help on using the repository browser.