1 #ifndef __JLANG__JEQUATION__
2 #define __JLANG__JEQUATION__
19 namespace JPP {
using namespace JLANG; }
78 ostream::sentry sentry(out);
82 const locale&
loc = out.getloc();
84 if (has_facet<JEquationFacet>(loc)) {
90 out << equation.
value;
97 out << equation.
value;
202 istream::sentry sentry(in,
false);
208 const locale&
loc = in.getloc();
210 if (has_facet<JEquationFacet>(loc)) {
214 ios_base::iostate state = in.rdstate();
217 for (
int c; (
c = in.peek()) != EOF && facet.
isSkipLine((
char)
c); ) {
222 if (state == ios_base::goodbit) facet.
get(in, istreambuf_iterator<char>(), in, state, equation.
key);
223 if (state == ios_base::goodbit) facet.
get(in, istreambuf_iterator<char>(), in, state, equation.
sep);
224 if (state == ios_base::goodbit) facet.
getline(in, equation.
value);
231 JString::const_iterator p = equation.
value. begin();
232 JString::const_reverse_iterator q = equation.
value.rbegin();
234 for ( ; ; ++p, ++q) {
245 if (p != equation.
value.begin() || q != equation.
value.rbegin()) {
246 equation.
value = string(p, q.base());
250 if (state != ios_base::goodbit && state != ios_base::eofbit) {
254 if (!(state & ios_base::eofbit)) {
257 in.setstate(ios_base::badbit);
263 in.setstate(ios_base::failbit);
282 ostream::sentry sentry(out);
286 const locale&
loc = out.getloc();
288 if (has_facet<JEquationFacet>(loc)) {
294 out << equation.
value;
301 out << equation.
value;
321 istringstream
in(buffer);
323 in.imbue(locale(in.getloc(), facet.
clone()));
const std::string & getKey() const
Get key.
Auxiliary data structure for equation.
static JEquation valueOf(const std::string &buffer, const JEquationFacet &facet)
Extract equation.
friend std::ostream & operator<<(std::ostream &out, const equation_type &equation)
Write equation to output stream.
const std::string & getValue() const
Get value.
Wrapper class around STL string class.
Facet class to specify parsing of equations in currect locale (see class JLANG::JEquation).
const char getDefaultSeparator() const
Get default separator character.
static equation_type< T > make_equation(const std::string &key, const T &value)
Auxiliary method to create equation type.
JEquation & setEquation(const JEquationFacet &facet)
Set this equation to its value.
std::string toString() const
Convert equation to string.
General purpose equation class.
JEquation(const std::string &key, const std::string &value)
Constructor.
friend std::istream & operator>>(std::istream &in, JEquation &equation)
Read equation from input stream.
JEquation(const std::string &buffer, const JEquationFacet &facet)
Constructor.
char getRightBracket() const
Get right bracket.
equation_type(const std::string __key, const T &__value)
Constructor.
istreambuf_iterator get(const istreambuf_iterator __begin, const istreambuf_iterator __end, const std::ios_base &format, std::ios_base::iostate &result, char &buffer) const
Get character.
char getLeftBracket() const
Get left bracket.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
friend std::ostream & operator<<(std::ostream &out, const JEquation &equation)
Write equation to output stream.
std::istream & ignore(std::istream &in) const
Ignore characters until next end of line.
std::istream & getline(std::istream &in, std::string &buffer) const
Read characters until next end of line.
JEquation & setEquation(const std::string &buffer, const JEquationFacet &facet)
Set equation.
const char getDefaultEndOfLine() const
Get default end of line character.
bool isWhiteSpace(const char c) const
Test for white space character.
bool isSkipLine(const char c) const
Test for skip line character.
bool isSeparator(const char c) const
Test for separator character.
JEquation()
Default constructor.
const char getSeparator() const
Get separator.
bool isDivision(const char c) const
Test for division character.
$WORKDIR ev_configure_domsimulator txt echo process $DOM_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DOM_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
virtual JEquationFacet * clone() const override
Clone this facet.