26   const char OPTIONS_SEPARATOR = 
',';   
 
   54       return (first.name  == second.name &&
 
   55               first.value == second.value);
 
   67     inline std::istream& 
read(std::istream& in)
 
   69       return in >> this->value;
 
   81     inline std::ostream& 
write(std::ostream& out)
 const 
   83       return out << this->value;
 
  132     return out << (this->value ? 
"1" : 
"0");
 
  146     return parameter.read(in);
 
  160     return parameter.write(out);
 
  167   template<
class T = JNullType>
 
  189       __terminate__(false),
 
  197     virtual ~JShellParser()
 
  206     virtual void terminate(
const int status) 
 
  208       __terminate__ = 
true;
 
  209       __exit_code__ = status;
 
  239         gexit(__exit_code__);
 
  257   struct JShellParser :
 
  258     public JShellParser<>
 
  260     typedef JShellParser<>::key_type                   key_type;
 
  268     void evaluate()
 const 
  270       for (
typename data_type::const_iterator i = this->
data.begin(); i != this->data.end(); ++i) {
 
  272         std::ostringstream os;
 
  297   struct JEnvironment<
std::string> :
 
  298     public JShellParser<std::string>
 
  300     typedef JShellParser<std::string>::key_type          key_type;
 
  318     friend inline std::istream& 
operator>>(std::istream& in, JEnvironment& environment)
 
  329       if (!has_facet<JEquationFacet>(in.getloc())) {
 
  330         in.imbue(locale(in.getloc(), facet.clone()));
 
  333       if (in >> c >> key >> equation) {
 
  335         if (c == 
'-' && !equation.
getKey().empty()) {
 
  337           environment.data.push_back(parameter_type(equation.
getKey()));
 
  339           parameter_type& parameter = environment.data.back();
 
  345             istringstream is(equation.
getValue());
 
  349             for (parameter_type buffer(parameter.name); 
getline(is, buffer.value, OPTIONS_SEPARATOR); ) {
 
  351               buffer.value = 
trim(buffer.value);
 
  353               possible_values.push_back(buffer);
 
  356             environment[key] = 
JPARSER::getOption(parameter, equation.
getKey(), possible_values.begin(), possible_values.end());
 
  378   struct JEnvironment<bool> :
 
  379     public JShellParser<bool>
 
  381     typedef JShellParser<bool>::key_type                 key_type;
 
  399     friend inline std::istream& 
operator>>(std::istream& in, JEnvironment& environment)
 
  410       if (!has_facet<JEquationFacet>(in.getloc())) {
 
  411         in.imbue(locale(in.getloc(), facet.clone()));
 
  414       if (in >> c >> key >> equation) {
 
  416         if (c == 
'-' && !equation.
getKey().empty()) {
 
  418           environment.data.push_back(parameter_type(equation.
getKey()));
 
  420           parameter_type& parameter = environment.data.back();
 
  452 int main(
int argc, 
char **argv)
 
  459     JEnvironment<bool>   boolean;
 
  460     JEnvironment<string> regular;
 
  467     const JArgs options = zap(argc, argv);
 
  469     JShellParser<> buffer;
 
  471     buffer.join(
boolean);
 
  472     buffer.join(regular);
 
  479   catch(
const exception& error) {
 
  480     return gexit(2, error.what());
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
 
std::istream & operator>>(std::istream &in, JAANET::JHead &header)
Read header from input.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
int main(int argc, char **argv)
 
Data structure to store command line arguments.
 
Facet class to specify parsing of equations in currect locale (see class JLANG::JEquation).
 
Simple data structure to support I/O of equations (see class JLANG::JEquation).
 
General purpose equation class.
 
const std::string & getKey() const
Get key.
 
const std::string & getValue() const
Get value.
 
const char getSeparator() const
Get separator.
 
JParameter()
Default constructor.
 
Exception for parsing value.
 
This class can be used to temporarily redirect one output (input) stream to another output (input) st...
 
Utility class to parse command line options.
 
bool write(const Vec &v, std::ostream &os)
Write a Vec(tor) to a stream.
 
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter=' ')
Read test summary.
 
std::istream & getline(std::istream &in, JString &object)
Read string from input stream until end of line.
 
std::string trim(const std::string &buffer)
Trim string.
 
JParserTemplateElement< JType_t > getOption(JType_t &object, const std::string &name, const std::string &help="")
Auxiliary method for creation of template parser element object.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
std::vector< event_type > data_type
 
int gexit(int status, const std::string &message="")
Exit method.
 
void gprint(const std::string &message)
Print method.
 
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
 
Data structure for measured coincidence rates of all pairs of PMTs in optical module.
 
friend bool operator==(const JParameter< T > &first, typename JClass< JSecond_t >::argument_type second)
Equal operator.
 
Auxiliary class for no type definition.
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...