1#ifndef __JLANG__JEQUATIONFACET__ 
    2#define __JLANG__JEQUATIONFACET__ 
   21namespace JPP { 
using namespace JLANG; }
 
   85                            const std::ios_base&      format,
 
   86                            std::ios_base::iostate&   result,
 
   89      return do_get(__begin, __end, format, result, buffer);
 
 
  103                            const std::ios_base& format,
 
  105                            const char           buffer)
 const 
  107      return do_put(out, format, c, buffer);
 
 
  118    const std::string 
getPrefix(
const std::string& prefix, 
const std::string& name)
 const 
 
  133    std::istream& 
pop(std::istream& in)
 const 
  136        for (
int c; (c = in.peek()) != EOF && 
isWhiteSpace((
char) c); ) { in.get(); }
 
  138      catch(
const std::exception& error) {};
 
 
  156                                       const std::ios_base&      format,
 
  157                                       std::ios_base::iostate&   result,
 
  158                                       std::string&              buffer)
 const override 
  162      result = (ios_base::iostate) 0;  
 
  164      streamsize n = format.width();   
 
  167        n = numeric_limits<streamsize>::max();
 
  178        result |= ios_base::failbit;    
 
  179        result |= ios_base::eofbit;
 
  185        result |= ios_base::failbit;    
 
  190        buffer.push_back(*i);
 
  192        for (++i, --n; i != __end && n != 0 && (!
isWhiteSpace(*i) &&
 
  196          buffer.push_back(*i);
 
  199          result |= ios_base::eofbit;
 
 
  219                                       const std::ios_base&      format,
 
  220                                       std::ios_base::iostate&   result,
 
  225      result = (ios_base::iostate) 0;  
 
  235        result |= ios_base::failbit;    
 
  236        result |= ios_base::eofbit;
 
  240        result |= ios_base::failbit;    
 
 
  261                                       const std::ios_base& format,
 
  263                                       const std::string&   buffer)
 const override 
  267      if (format.flags() & ios_base::right) {
 
  268        for (streamsize i = buffer.size(); i < format.width(); ++i, ++out) {
 
  273      for (string::const_iterator i = buffer.begin(); i != buffer.end(); ++i, ++out) {
 
  277      if (format.flags() & ios_base::left) {
 
  278        for (streamsize i = buffer.size(); i < format.width(); ++i, ++out) {
 
 
  297                                       const std::ios_base& format,
 
  299                                       const char           buffer)
 const 
  303      if (format.flags() & ios_base::right) {
 
  304        for (streamsize i = 1; i < format.width(); ++i, ++out) {
 
  312      if (format.flags() & ios_base::left) {
 
  313        for (streamsize i = 1; i < format.width(); ++i, ++out) {
 
 
  360                                           std::ios_base::iostate&   result,
 
  361                                           std::string&              buffer)
 const override 
  365      result = (ios_base::iostate) 0;  
 
  375        result |= ios_base::failbit;    
 
  376        result |= ios_base::eofbit;
 
  386        for (
int count = 0; i != __end && (count != 0 || !
isEndOfLine(*i)); ++i) {
 
  388          buffer.push_back(*i);
 
  404        string::size_type pos = buffer.find(
getComment());
 
  406        if (pos != string::npos) {
 
 
 
  459      if (has_facet<JEquationFacet>(out.getloc()))
 
  460        out << use_facet<JEquationFacet>(out.getloc()).getPreferredEndOfLine(eol.
index);
 
 
 
  491    in.imbue(locale(in.getloc(), facet.
clone()));
 
 
  508    out.imbue(locale(out.getloc(), facet.
clone()));
 
 
  523    using namespace JLANG;
 
  525    if (has_facet<JEquationFacet>(out.getloc()))
 
  526      out << use_facet<JEquationFacet>(out.getloc()).getDefaultWhiteSpace();
 
 
  543    using namespace JLANG;
 
  545    if (has_facet<JEquationFacet>(out.getloc()))
 
  546      out << use_facet<JEquationFacet>(out.getloc()).getDefaultDivision();
 
 
  563    using namespace JLANG;
 
  565    if (has_facet<JEquationFacet>(out.getloc()))
 
  566      out << use_facet<JEquationFacet>(out.getloc()).getDefaultSeparator();
 
 
  589    using namespace JLANG;
 
  591    if (has_facet<JEquationFacet>(out.getloc()))
 
  592      out << use_facet<JEquationFacet>(out.getloc()).getLeftBracket();
 
 
  609    using namespace JLANG;
 
  611    if (has_facet<JEquationFacet>(out.getloc()))
 
  612      out << use_facet<JEquationFacet>(out.getloc()).getRightBracket();
 
 
Facet class to specify parsing of equations in currect locale (see class JLANG::JEquation).
 
void operator=(const JEquationFacet &)
 
JEquationFacet(const JEquationFacet &)
 
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.
 
std::istream & pop(std::istream &in) const
Pop white spaces.
 
ostreambuf_iterator put(ostreambuf_iterator out, const std::ios_base &format, const char c, const char buffer) const
Put character.
 
virtual istreambuf_iterator do_getline(const istreambuf_iterator __begin, const istreambuf_iterator __end, std::ios_base::iostate &result, std::string &buffer) const override
Read string.
 
JEquationFacet(const JEquationParameters ¶meters)
Constructor.
 
JEquationFacet()
Default constructor.
 
virtual istreambuf_iterator do_get(const istreambuf_iterator __begin, const istreambuf_iterator __end, const std::ios_base &format, std::ios_base::iostate &result, std::string &buffer) const override
Get string.
 
const std::string getPrefix(const std::string &prefix, const std::string &name) const
Get combined prefix for output.
 
virtual istreambuf_iterator do_get(const istreambuf_iterator __begin, const istreambuf_iterator __end, const std::ios_base &format, std::ios_base::iostate &result, char &buffer) const
Get character.
 
virtual JEquationFacet * clone() const override
Clone this facet.
 
virtual ostreambuf_iterator do_put(ostreambuf_iterator out, const std::ios_base &format, const char c, const char buffer) const
Put character.
 
virtual ostreambuf_iterator do_put(ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const override
Put string.
 
Simple data structure to support I/O of equations (see class JLANG::JEquation).
 
bool isSeparator(const char c) const
Test for separator character.
 
const std::string & getComment() const
Get comment string.
 
bool isDivision(const char c) const
Test for division character.
 
bool isEndOfLine(const char c) const
Test for end of line character.
 
bool isRightBracket(const char c) const
Test for right bracket character.
 
bool isLeftBracket(const char c) const
Test for left bracket character.
 
bool isWhiteSpace(const char c) const
Test for white space character.
 
const char getDefaultDivision() const
Get default division character.
 
Facet class to specify parsing of a JLANG::JString object.
 
ostreambuf_iterator put(ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const
Put string.
 
istreambuf_iterator get(const istreambuf_iterator __begin, const istreambuf_iterator __end, const std::ios_base &format, std::ios_base::iostate &result, std::string &buffer) const
Get string.
 
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
 
std::ostreambuf_iterator< char, std::char_traits< char > > ostreambuf_iterator
 
Auxiliary classes and methods for language specific functionality.
 
std::ostream & right_bracket(std::ostream &out)
Print right bracket.
 
std::ostream & left_bracket(std::ostream &out)
Print left bracket.
 
std::ostream & white_space(std::ostream &out)
Print white space.
 
std::ostream & operator<<(std::ostream &out, const JLANG::JEquationFacet &facet)
Parse facet.
 
JLANG::JEquationFacet setequation
Type definition of stream manipulator for equational I/O.
 
std::ostream & separator(std::ostream &out)
Print separator.
 
std::istream & operator>>(std::istream &in, const JLANG::JEquationFacet &facet)
Parse facet.
 
std::ostream & division(std::ostream &out)
Print division.
 
static const JLANG::JEndOfLine end_of_line
Print end of line.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Auxiliary class for end of line.
 
const JEndOfLine & operator()(const unsigned int i) const
Constructor.
 
JEndOfLine()
Default constructor.
 
friend std::ostream & operator<<(std::ostream &out, const JEndOfLine &eol)
Print end of line.