#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, none_style } CmtDirStyle; /* Commands correspond to keywords in the requirements file. */ typedef enum { CommandNone, CommandAlias, /* alias */ CommandApplication, /* application */ CommandApplyPattern, /* apply_pattern */ CommandAuthor, /* author */ CommandBranches, /* branch */ CommandBuildStrategy, /* build strategy */ CommandCleanupScript, /* user script */ CommandDocument, /* document */ CommandIgnorePattern, /* ignore_pattern */ CommandIncludeDirs, /* include_dirs */ CommandIncludePath, /* include_path */ CommandLanguage, /* language */ CommandLibrary, /* library */ CommandMacro, /* macro */ CommandMacroPrepend, /* +macro */ CommandMacroAppend, /* macro+ */ CommandMacroRemove, /* macro- */ CommandMacroRemoveAll, /* macro-- */ CommandMakeFragment, /* make_fragment */ CommandManager, /* package manager */ CommandPackage, /* package name */ CommandPath, /* package path */ CommandPathAppend, /* path */ CommandPathPrepend, /* path */ CommandPathRemove, /* path */ CommandPattern, /* pattern */ CommandPrivate, /* private */ CommandPublic, /* public */ CommandSet, /* set */ CommandSetAppend, /* set_append */ CommandSetPrepend, /* set_prepend */ CommandSetRemove, /* set_remove */ CommandSetupScript, /* user script */ CommandTag, /* tag */ CommandTagExclude, /* tag_exclude */ CommandUse, /* use */ CommandVersion, /* package version */ CommandVersionStrategy, /* version strategy */ 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 { PriorityLowest = 0, PriorityDefault = 1, PriorityUname = 2, PrioritySite = 3, PriorityUserTag = 4, PriorityTag = 5, PriorityConfig = 6, PriorityArgument = 7 } Priority; typedef enum { SetupScript, CleanupScript } ScriptType; typedef enum { BestFit, // The current default BestFitNoCheck, // The current default without compatibility check FirstChoice, // The first reference will not be overridden LastChoice, // The last reference wins KeepAll, // Keep all uses Strategies } VersionStrategy; // // 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