Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JEquation.cc File Reference

Example program to test JLANG::JEquation class. More...

#include <string>
#include <iostream>
#include <fstream>
#include <sstream>
#include <locale>
#include <iomanip>
#include <limits>
#include <iterator>
#include "JLang/JException.hh"
#include "JLang/JEquation.hh"
#include "Jeep/JParser.hh"
#include "Jeep/JMessage.hh"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

Example program to test JLANG::JEquation class.

Author
mdejong

Definition in file JEquation.cc.

Function Documentation

◆ main()

int main ( int argc,
char ** argv )

Definition at line 24 of file JEquation.cc.

25{
26 using namespace std;
27
28 string inputFile;
29 int debug;
30
31 try {
32
33 JParser<> zap("Example program to test equation parsing");
34
35 zap['f'] = make_field(inputFile);
36 zap['d'] = make_field(debug) = 0;
37
38 zap(argc, argv);
39 }
40 catch(const exception &error) {
41 FATAL(error.what() << endl);
42 }
43
44
45 using namespace JPP;
46
47 const int KEY_WIDTH = 6;
48 const int VAL_WIDTH = 30;
49 const char SEP = '|';
50
51 const JEquationFacet facet(JEquationParameters("=", ";\n", "./", "#"));
52
53 ifstream in(inputFile.c_str());
54
55 in.imbue(locale(in.getloc(), facet.clone()));
56
57 cout << setw(4) << " " << ' '
58 << setw(KEY_WIDTH) << left << "key" << SEP << ' '
59 << setw(VAL_WIDTH) << left << "value" << endl;
60
61 cout << setw(KEY_WIDTH + 5) << setfill('-') << left << "-"
62 << setw(VAL_WIDTH + 0) << setfill('-') << left << "+" << setfill(' ') << endl;
63
64 for (JEquation equation; in >> equation; ) {
65
66 int i = 0;
67
68 for ( ; facet.isDivision(equation.getSeparator()); ++i) {
69
70 cout << "[" << setw(2) << right << i << "]" << ' '
71 << setw(KEY_WIDTH) << left << equation.getKey() << SEP << ' '
72 << setw(VAL_WIDTH) << left << equation.getValue() << endl;
73
74 equation.setEquation(facet);
75 }
76
77 cout << "[" << setw(2) << right << i << "]" << ' '
78 << setw(KEY_WIDTH) << left << equation.getKey() << SEP << ' '
79 << setw(VAL_WIDTH) << left << equation.getValue() << endl;
80 }
81
82 in.close();
83}
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
Definition JParser.hh:2142
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.
Definition JEquation.hh:47
Utility class to parse command line options.
Definition JParser.hh:1698
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).