Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

cmt_parser.h

Go to the documentation of this file.
00001 //-----------------------------------------------------------
00002 // Copyright Christian Arnault LAL-Orsay CNRS
00003 // arnault@lal.in2p3.fr
00004 // See the complete license in cmt_license.txt "http://www.cecill.info". 
00005 //-----------------------------------------------------------
00006 
00007 #ifndef __cmt_parser_h__
00008 #define __cmt_parser_h__
00009 
00010 /*
00011   Generation of shell scripts :
00012   We consider for the moment only csh and sh
00013   */
00014 typedef enum
00015 {
00016   Csh,
00017   Sh,
00018   Bat,
00019   Make
00020 } PrintMode;
00021 
00022 typedef enum
00023 {
00024   mgr_style,
00025   cmt_style,
00026   no_version_style,
00027   none_style
00028 } CmtDirStyle;
00029 
00030 typedef enum
00031 {
00032   with_version_directory,
00033   without_version_directory
00034 } CmtStructuringStyle;
00035 
00036 typedef enum
00037 {
00038   default_filtering_mode,
00039   block_private_uses,
00040   reach_private_uses
00041 } CmtScopeFilteringMode;
00042 
00043 /*
00044   Commands correspond to keywords in the requirements file.
00045   */
00046 typedef enum
00047 {
00048   CommandNone,
00049   CommandAction,
00050   CommandAlias,
00051   CommandApplication,
00052   CommandApplyPattern,
00053   CommandApplyTag,
00054   CommandAuthor,
00055   CommandBranches,
00056   CommandBuildStrategy,
00057   CommandCleanupScript,
00058   CommandCmtPathPattern,
00059   CommandDocument,
00060   CommandEndPrivate,
00061   CommandEndPublic,
00062   CommandIgnorePattern,
00063   CommandIncludeDirs,
00064   CommandIncludePath,
00065   CommandLanguage,
00066   CommandLibrary,
00067   CommandMacro,
00068   CommandMacroPrepend,
00069   CommandMacroAppend,
00070   CommandMacroRemove,
00071   CommandMacroRemoveRegexp,
00072   CommandMacroRemoveAll,
00073   CommandMacroRemoveAllRegexp,
00074   CommandMakeFragment,
00075   CommandManager,
00076   CommandPackage,
00077   CommandPath,
00078   CommandPathAppend,
00079   CommandPathPrepend,
00080   CommandPathRemove,
00081   CommandPathRemoveRegexp,
00082   CommandPattern,
00083   CommandPrivate,
00084   CommandProject,
00085   CommandPublic,
00086   CommandSet,
00087   CommandSetAppend,
00088   CommandSetPrepend,
00089   CommandSetRemove,
00090   CommandSetRemoveRegexp,
00091   CommandSetupScript,
00092   CommandSetupStrategy,
00093   CommandTag,
00094   CommandTagExclude,
00095   CommandUse,
00096   CommandVersion,
00097   CommandVersionStrategy,
00098   Commands
00099 } CommandType;
00100 
00101 /*
00102   The scope is modified while the requirements file is read
00103   when the keywords public or private are met.
00104   It is also set to public when a used requirements file is read.
00105   */
00106 
00107 typedef enum
00108 {
00109   DeveloperMode,
00110   UserMode
00111 } AccessMode;
00112 
00113 typedef enum
00114 {
00115   ScopeUnspecified,
00116   ScopePublic,
00117   ScopePrivate
00118 } ScopeType;
00119 
00120 typedef enum
00121 {
00122   Unspecified = -1,
00123   Off = 0,
00124   On = 1
00125 } State;
00126 
00127 typedef enum
00128 {
00129   PriorityLowest   = 0,
00130   PriorityDefault  = 1,
00131   PriorityVersion  = 2,
00132   PriorityUname    = 3,
00133   PrioritySite     = 4,
00134   PriorityUserTag  = 5,
00135   PriorityTag      = 6,
00136   PriorityConfig   = 7,
00137   PriorityArgument = 8
00138 } Priority;
00139 
00140 typedef enum
00141 {
00142   SetupScript,
00143   CleanupScript
00144 } ScriptType;
00145 
00146 //
00147 // Build strategy is a mix of various options
00148 //  + predefined values should be multiples of 2^n
00149 //  + effective value is an OR of these options
00150 //  + all options should be specified inthis enum as pairs
00151 //    of <option> - no<option>. One of them being preset to zero
00152 //    (which represents the default) the other being set to a unique 2^n value.
00153 //
00154 typedef enum
00155 {
00156   Prototypes     = 0x1,
00157   NoPrototypes   = Prototypes << 1,
00158   DefaultPrototypesStrategy = Prototypes, 
00159   PrototypesMask = Prototypes | NoPrototypes,
00160 
00161   WithInstallArea    = NoPrototypes << 1,
00162   WithoutInstallArea = WithInstallArea << 1,
00163   DefaultInstallAreaStrategy = WithoutInstallArea, 
00164   InstallAreaMask    = WithInstallArea | WithoutInstallArea,
00165 
00166   BuildStrategyMask  = PrototypesMask | InstallAreaMask,
00167 
00168   DefaultBuildStrategy = DefaultPrototypesStrategy | DefaultInstallAreaStrategy
00169 } BuildStrategy;
00170 
00171 typedef enum
00172 {
00173   SetupConfig = 0x1,
00174   SetupNoConfig = SetupConfig << 1,
00175   SetupConfigMask = SetupConfig | SetupNoConfig,
00176 
00177   SetupRoot = SetupNoConfig << 1,
00178   SetupNoRoot = SetupRoot << 1,
00179   SetupRootMask = SetupRoot | SetupNoRoot,
00180 
00181   SetupCleanup = SetupNoRoot << 1,
00182   SetupNoCleanup = SetupCleanup << 1,
00183   SetupCleanupMask = SetupCleanup | SetupNoCleanup,
00184 
00185   SetupStrategyMask = SetupConfigMask | SetupRootMask | SetupCleanupMask,
00186 
00187   DefaultSetupStrategy = SetupConfig | SetupRoot | SetupCleanup
00188 } SetupStrategy;
00189 
00190 typedef enum
00191 {
00192   Application,
00193   Library,
00194   Document
00195 } ConstituentType;
00196 
00197 /*
00198   Command line action
00199   */
00200 typedef enum
00201 {
00202   action_none,
00203   action_awk,
00204   action_broadcast,
00205 
00206   action_build,
00207 
00208   action_build_constituent_makefile,
00209   action_build_constituents_makefile,
00210   action_build_dependencies,
00211   action_build_library_links,
00212   action_build_make_setup,
00213   action_build_msdev,
00214   action_build_CMT_pacman,
00215   // Visual Studio.net Support                  
00216   action_build_vsnet,                           
00217   action_build_os9_makefile,
00218   action_build_prototype,
00219   action_build_readme,
00220   action_build_tag_makefile,
00221   action_build_temporary_name,
00222   action_build_triggers,
00223   action_build_windefs,
00224 
00225   action_check,
00226 
00227   action_check_configuration,
00228   action_check_files,
00229   action_check_version,
00230   action_checkout,
00231   action_cleanup,
00232   action_config,
00233   action_create,
00234   action_create_project,
00235   action_cvsbranches,
00236   action_cvssubpackages,
00237   action_cvssubprojects,
00238   action_cvstags,
00239   action_do,
00240   action_expand_model,
00241   action_filter,
00242   action_help,
00243   action_load,
00244   action_lock,
00245   action_remove,
00246   action_remove_library_links,
00247   action_run,
00248   action_run_sequence,
00249 
00250   action_set_version,
00251   action_set_versions,
00252 
00253   action_setup,
00254 
00255   action_show,
00256 
00257   action_show_action,
00258   action_show_action_value,
00259   action_show_action_names,
00260   action_show_actions,
00261   action_show_all_tags,
00262   action_show_applied_patterns,
00263   action_show_author,
00264   action_show_branches,
00265   action_show_clients,
00266   action_show_cmtpath_patterns,
00267   action_show_constituent,
00268   action_show_constituent_names,
00269   action_show_constituents,
00270   action_show_cycles,
00271   action_show_fragment,
00272   action_show_fragments,
00273   action_show_groups,
00274   action_show_include_dirs,
00275   action_show_language,
00276   action_show_languages,
00277   action_show_macro,
00278   action_show_macro_value,
00279   action_show_macro_names,
00280   action_show_macros,
00281   action_show_manager,
00282   action_show_packages,
00283   action_show_path,
00284   action_show_pattern,
00285   action_show_pattern_names,
00286   action_show_patterns,
00287   action_show_projects,
00288   action_show_setup,
00289   action_show_pwd,
00290   action_show_set,
00291   action_show_set_names,
00292   action_show_set_value,
00293   action_show_sets,
00294   action_show_strategies,
00295   action_show_tags,
00296   action_show_use_paths,
00297   action_show_uses,
00298   action_show_version,
00299   action_show_versions,
00300 
00301   action_system,
00302   action_unlock,
00303   action_version
00304 } ActionType;
00305 
00306 #define SLASH '/'
00307 
00308 class Use;
00309 typedef Use* UseRef;
00310 
00311 #include "cmt_std.h"
00312 #include "cmt_string.h"
00313 #include "cmt_vector.h"
00314 #include "cmt.h"
00315 
00316 #endif

Generated on Mon May 2 10:25:05 2005 for CMT by doxygen 1.3.5