Go to the documentation of this file.    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;
 
  189       istream::sentry sentry(in, 
false);
 
  195         const locale& 
loc = in.getloc();
 
  197         if (has_facet<JEquationFacet>(
loc)) {
 
  201           ios_base::iostate state = in.rdstate();
 
  204           for (
int c; (c = in.peek()) != EOF && facet.
isSkipLine((
char) c); ) {
 
  209           if (state == ios_base::goodbit) facet.
get(in, istreambuf_iterator<char>(), in, state, equation.
key);
 
  210           if (state == ios_base::goodbit) facet.
get(in, istreambuf_iterator<char>(), in, state, equation.
sep);
 
  211           if (state == ios_base::goodbit) facet.
getline(in, equation.
value);
 
  218             JString::const_iterator         p = equation.
value. begin();
 
  219             JString::const_reverse_iterator q = equation.
value.rbegin();
 
  221             for ( ; ; ++p, ++q) {
 
  232             if (p != equation.
value.begin() || q != equation.
value.rbegin()) {
 
  233               equation.
value = string(p, q.base());
 
  237           if (state != ios_base::goodbit && state != ios_base::eofbit) {
 
  241           if (!(state & ios_base::eofbit)) {
 
  244               in.setstate(ios_base::badbit);
 
  250           in.setstate(ios_base::failbit);
 
  269       ostream::sentry sentry(out);
 
  273         const locale& 
loc = out.getloc();
 
  275         if (has_facet<JEquationFacet>(
loc)) {
 
  281           out << equation.
value;
 
  288           out << equation.
value;
 
  308       istringstream in(buffer);
 
  310       in.imbue(locale(in.getloc(), facet.
clone()));
 
 
JEquation()
Default constructor.
 
bool isSkipLine(const char c) const
Test for skip line character.
 
Auxiliary data structure for equation.
 
friend std::istream & operator>>(std::istream &in, JEquation &equation)
Read equation from input stream.
 
bool isSeparator(const char c) const
Test for separator character.
 
bool isDivision(const char c) const
Test for division character.
 
const std::string & getValue() const
Get value.
 
std::istream & ignore(std::istream &in) const
Ignore characters until next end of line.
 
static JEquation valueOf(const std::string &buffer, const JEquationFacet &facet)
Extract equation.
 
JEquation & setEquation(const JEquationFacet &facet)
Set this equation to its value.
 
std::string toString() const
Convert equation to string.
 
equation_type(const std::string __key, const T &__value)
Constructor.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
virtual JEquationFacet * clone() const
Clone this facet.
 
General purpose equation class.
 
Wrapper class around STL string class.
 
Facet class to specify parsing of equations in currect locale (see class JLANG::JEquation).
 
const char getDefaultEndOfLine() const
Get default end of line character.
 
bool isWhiteSpace(const char c) const
Test for white space character.
 
JEquation(const std::string &buffer, const JEquationFacet &facet)
Constructor.
 
const char getSeparator() const
Get separator.
 
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.
 
const char getDefaultSeparator() const
Get default separator character.
 
JEquation & setEquation(const std::string &buffer, const JEquationFacet &facet)
Set equation.
 
static equation_type< T > make_equation(const std::string &key, const T &value)
Auxiliary method to create equation type.
 
friend std::ostream & operator<<(std::ostream &out, const JEquation &equation)
Write equation to output stream.
 
char getLeftBracket() const
Get left bracket.
 
std::istream & getline(std::istream &in, std::string &buffer) const
Read characters until next end of line.
 
Auxiliary classes and methods for language specific functionality.
 
const std::string & getKey() const
Get key.
 
char getRightBracket() const
Get right bracket.
 
friend std::ostream & operator<<(std::ostream &out, const equation_type &equation)
Write equation to output stream.