//-----------------------------------------------------------
// Copyright Christian Arnault LAL-Orsay CNRS
// arnault@lal.in2p3.fr
// Modified by garonne@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
{
default_structuring_style,
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,
CommandProjectAuthor,
CommandPublic,
CommandSet,
CommandSetAppend,
CommandSetPrepend,
CommandSetRemove,
CommandSetRemoveRegexp,
CommandSetupScript,
CommandSetupStrategy,
CommandStructureStrategy,
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