2005-04-10 16:30:47 +01:00
# ifndef SWITCHES
# define SWITCHES
2005-06-07 16:02:27 +01:00
# include "term.h"
# include "system.h"
void switchesInit ( ) ;
void switchesDone ( ) ;
//! Command-line switches structure
struct switchdata
{
// Command-line
int argc ;
char * * argv ;
// Methods
int engine ; //!< Engine type (POR_ENGINE,ARACHNE_ENGINE)
int match ; //!< Matching type.
int clp ; //!< Do we use clp?
2005-08-12 13:59:25 +01:00
int tupling ; //!< Tupling is by default 0: right-associative, optionally 1: left-associative.
2005-06-07 16:02:27 +01:00
// Pruning and Bounding
int prune ; //!< Type of pruning.
int maxproofdepth ; //!< Maximum proof depth
int maxtracelength ; //!< Maximum trace length allowed
int runs ; //!< The number of runs as in the switch
Term filterClaim ; //!< Which claim should be checked?
2005-08-15 13:49:32 +01:00
int maxAttacks ; //!< When not 0, maximum number of attacks
2005-06-07 16:02:27 +01:00
// Modelchecker
int traverse ; //!< Traversal method
int forceChoose ; //!< Force chooses for each run, even if involved in first read
int chooseFirst ; //!< Priority to chooses, implicit and explicit
int readSymmetries ; //!< Enable read symmetry reduction
int agentSymmetries ; //!< Enable agent symmetry reduction
int orderSymmetries ; //!< Enable symmetry order reduction
int pruneNomoreClaims ; //!< Enable no more claims cutter
int reduceEndgame ; //!< Enable endgame cutter
int reduceClaims ; //!< Symmetry reduction on claims (only works when switchAgentSymm is true)
// Parallellism
int scenario ; //!< -1 to count, 0 for disable, 1-n to select the choose scenario
int scenarioSize ; //!< Scenario size, also called fixed trace prefix length
// Arachne
int arachneSelector ; //!< Goal selection method for Arachne engine
2005-08-21 22:38:32 +01:00
int maxIntruderActions ; //!< Maximum number of intruder actions in the semitrace (encrypt/decrypt)
2005-10-08 20:54:30 +01:00
int agentTypecheck ; //!< Check type of agent variables in all matching modes
2005-11-12 21:13:00 +00:00
int concrete ; //!< Swap out variables at the end.
2005-06-07 16:02:27 +01:00
// Misc
int switchP ; //!< A multi-purpose integer parameter, passed to the partial order reduction method selected.
2005-10-07 14:09:07 +01:00
int experimental ; //!< Experimental stuff goes here until it moves into main stuff.
2005-06-07 16:02:27 +01:00
// Output
int output ; //!< From enum outputs: what should be produced. Default ATTACK.
int report ;
int reportClaims ; //!< Enable claims report
int xml ; //!< xml output
int human ; //!< human readable
int reportMemory ; //!< Memory display switch.
int reportTime ; //!< Time display switch.
int reportStates ; //!< Progress display switch. (traversed states)
2005-06-21 12:04:34 +01:00
int extendNonReads ; //!< Show further events in arachne xml output.
2005-08-12 13:13:50 +01:00
int extendTrivial ; //!< Show further events in arachne xml output, based on knowledge underapproximation. (Includes at least the events of the nonreads extension)
2005-06-21 12:04:34 +01:00
2005-06-07 16:02:27 +01:00
//! Latex output switch.
/**
* Obsolete . Use globalLatex instead .
* \ sa globalLatex
*/
int latex ;
} ;
extern struct switchdata switches ;
2005-04-10 16:30:47 +01:00
# endif