25{
27
28 string inputFile;
30
31 try {
32
33 JParser<> zap(
"Example program to test equation parsing");
34
37
38 zap(argc, argv);
39 }
40 catch(const exception &error) {
41 FATAL(error.what() << endl);
42 }
43
44
46
47 const int KEY_WIDTH = 6;
48 const int VAL_WIDTH = 30;
49 const char SEP = '|';
50
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 make_field(A,...)
macro to convert parameter to JParserTemplateElement object
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.
Utility class to parse command line options.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).