source: CMT/v1r16p20040901/src/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.8 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  RebuildMakefiles  = NoPrototypes << 1,
162  KeepMakefiles     = RebuildMakefiles << 1,
163  DefaultMakefilesStrategy = RebuildMakefiles, 
164  KeepMakefilesMask = RebuildMakefiles | KeepMakefiles,
165
166  WithInstallArea    = KeepMakefiles << 1,
167  WithoutInstallArea = WithInstallArea << 1,
168  DefaultInstallAreaStrategy = WithInstallArea, 
169  InstallAreaMask    = WithInstallArea | WithoutInstallArea,
170
171  BuildStrategyMask  = PrototypesMask | KeepMakefilesMask | InstallAreaMask,
172
173  DefaultBuildStrategy = DefaultPrototypesStrategy | DefaultMakefilesStrategy | DefaultInstallAreaStrategy
174} BuildStrategy;
175
176typedef enum
177{
178  SetupConfig = 0x1,
179  SetupNoConfig = SetupConfig << 1,
180  SetupConfigMask = SetupConfig | SetupNoConfig,
181
182  SetupRoot = SetupNoConfig << 1,
183  SetupNoRoot = SetupRoot << 1,
184  SetupRootMask = SetupRoot | SetupNoRoot,
185
186  SetupCleanup = SetupNoRoot << 1,
187  SetupNoCleanup = SetupCleanup << 1,
188  SetupCleanupMask = SetupCleanup | SetupNoCleanup,
189
190  SetupStrategyMask = SetupConfigMask | SetupRootMask | SetupCleanupMask,
191
192  DefaultSetupStrategy = SetupConfig | SetupRoot | SetupCleanup
193} SetupStrategy;
194
195typedef enum
196{
197  Application,
198  Library,
199  Document
200} ConstituentType;
201
202/*
203  Command line action
204  */
205typedef enum
206{
207  action_none,
208  action_awk,
209  action_broadcast,
210
211  action_build,
212
213  action_build_constituent_makefile,
214  action_build_constituents_makefile,
215  action_build_dependencies,
216  action_build_library_links,
217  action_build_make_setup,
218  action_build_msdev,
219  action_build_CMT_pacman,
220  // Visual Studio.net Support                 
221  action_build_vsnet,                           
222  action_build_os9_makefile,
223  action_build_prototype,
224  action_build_readme,
225  action_build_tag_makefile,
226  action_build_temporary_name,
227  action_build_triggers,
228  action_build_windefs,
229
230  action_check,
231
232  action_check_configuration,
233  action_check_files,
234  action_check_version,
235  action_checkout,
236  action_cleanup,
237  action_config,
238  action_create,
239  action_create_project,
240  action_cvsbranches,
241  action_cvssubpackages,
242  action_cvstags,
243  action_do,
244  action_expand_model,
245  action_filter,
246  action_help,
247  action_load,
248  action_lock,
249  action_remove,
250  action_remove_library_links,
251  action_run,
252  action_run_sequence,
253
254  action_set_version,
255  action_set_versions,
256
257  action_setup,
258
259  action_show,
260
261  action_show_action,
262  action_show_action_value,
263  action_show_action_names,
264  action_show_actions,
265  action_show_all_tags,
266  action_show_applied_patterns,
267  action_show_author,
268  action_show_branches,
269  action_show_clients,
270  action_show_cmtpath_patterns,
271  action_show_constituent,
272  action_show_constituent_names,
273  action_show_constituents,
274  action_show_cycles,
275  action_show_fragment,
276  action_show_fragments,
277  action_show_groups,
278  action_show_include_dirs,
279  action_show_language,
280  action_show_languages,
281  action_show_macro,
282  action_show_macro_value,
283  action_show_macro_names,
284  action_show_macros,
285  action_show_manager,
286  action_show_packages,
287  action_show_path,
288  action_show_pattern,
289  action_show_pattern_names,
290  action_show_patterns,
291  action_show_projects,
292  action_show_setup,
293  action_show_pwd,
294  action_show_set,
295  action_show_set_names,
296  action_show_set_value,
297  action_show_sets,
298  action_show_strategies,
299  action_show_tags,
300  action_show_use_paths,
301  action_show_uses,
302  action_show_version,
303  action_show_versions,
304
305  action_system,
306  action_unlock,
307  action_version
308} ActionType;
309
310#define SLASH '/'
311
312class Use;
313typedef Use* UseRef;
314
315#include "cmt_std.h"
316#include "cmt_string.h"
317#include "cmt_vector.h"
318#include "cmt.h"
319
320#endif
Note: See TracBrowser for help on using the repository browser.