//----------------------------------------------------------- // Copyright Christian Arnault LAL-Orsay CNRS // arnault@lal.in2p3.fr // See the complete license in cmt_license.txt "http://www.cecill.info". //----------------------------------------------------------- #ifndef __cmt_parser_h__ #define __cmt_parser_h__ /* Generation of shell scripts : We consider for the moment only csh and sh */ typedef enum { Csh, Sh, Bat, Make } PrintMode; typedef enum { mgr_style, cmt_style, no_version_style, none_style } CmtDirStyle; typedef enum { with_version_directory, without_version_directory } CmtStructuringStyle; typedef enum { default_filtering_mode, block_private_uses, reach_private_uses } CmtScopeFilteringMode; /* Commands correspond to keywords in the requirements file. */ typedef enum { CommandNone, CommandAction, CommandAlias, CommandApplication, CommandApplyPattern, CommandApplyTag, CommandAuthor, CommandBranches, CommandBuildStrategy, CommandCleanupScript, CommandCmtPathPattern, CommandDocument, CommandEndPrivate, CommandEndPublic, CommandIgnorePattern, CommandIncludeDirs, CommandIncludePath, CommandLanguage, CommandLibrary, CommandMacro, CommandMacroPrepend, CommandMacroAppend, CommandMacroRemove, CommandMacroRemoveRegexp, CommandMacroRemoveAll, CommandMacroRemoveAllRegexp, CommandMakeFragment, CommandManager, CommandPackage, CommandPath, CommandPathAppend, CommandPathPrepend, CommandPathRemove, CommandPathRemoveRegexp, CommandPattern, CommandPrivate, CommandProject, CommandPublic, CommandSet, CommandSetAppend, CommandSetPrepend, CommandSetRemove, CommandSetRemoveRegexp, CommandSetupScript, CommandSetupStrategy, CommandTag, CommandTagExclude, CommandUse, CommandVersion, CommandVersionStrategy, Commands } CommandType; /* The scope is modified while the requirements file is read when the keywords public or private are met. It is also set to public when a used requirements file is read. */ typedef enum { DeveloperMode, UserMode } AccessMode; typedef enum { ScopeUnspecified, ScopePublic, ScopePrivate } ScopeType; typedef enum { Unspecified = -1, Off = 0, On = 1 } State; typedef enum { PriorityLowest = 0, PriorityDefault = 1, PriorityVersion = 2, PriorityUname = 3, PrioritySite = 4, PriorityUserTag = 5, PriorityTag = 6, PriorityConfig = 7, PriorityArgument = 8 } Priority; typedef enum { SetupScript, CleanupScript } ScriptType; // // Build strategy is a mix of various options // + predefined values should be multiples of 2^n // + effective value is an OR of these options // + all options should be specified inthis enum as pairs // of