Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JEquation.cc
Go to the documentation of this file.
1
2#include <string>
3#include <iostream>
4#include <fstream>
5#include <sstream>
6#include <locale>
7#include <iomanip>
8#include <limits>
9#include <iterator>
10
11#include "JLang/JException.hh"
12#include "JLang/JEquation.hh"
13
14#include "Jeep/JParser.hh"
15#include "Jeep/JMessage.hh"
16
17
18/**
19 * \file
20 *
21 * Example program to test JLANG::JEquation class.
22 * \author mdejong
23 */
24int main(int argc, char **argv)
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}
int main(int argc, char **argv)
Definition JEquation.cc:24
Exceptions.
General purpose messaging.
#define FATAL(A)
Definition JMessage.hh:67
int debug
debug level
Definition JSirene.cc:72
Utility class to parse command line options.
#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).
virtual JEquationFacet * clone() const override
Clone this facet.
Simple data structure to support I/O of equations (see class JLANG::JEquation).
bool isDivision(const char c) const
Test for division character.
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).