1 #ifndef __JLANG__JEQUATIONFACET__ 
    2 #define __JLANG__JEQUATIONFACET__ 
   21 namespace JPP { 
using namespace JLANG; }
 
   85                             const std::ios_base&      format,
 
   86                             std::ios_base::iostate&   
result,
 
  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);
 
  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.
 
ostreambuf_iterator put(ostreambuf_iterator out, const std::ios_base &format, const char c, const char buffer) const
Put character.
 
std::istream & pop(std::istream &in) const
Pop white spaces.
 
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 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.
 
virtual JEquationFacet * clone() const override
Clone this facet.
 
Simple data structure to support I/O of equations (see class JLANG::JEquation).
 
bool isSeparator(const char c) const
Test for separator character.
 
bool isDivision(const char c) const
Test for division character.
 
const std::string & getComment() const
Get comment string.
 
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.
 
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
 
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::ostreambuf_iterator< char, std::char_traits< char > > ostreambuf_iterator
 
Auxiliary classes and methods for language specific functionality.
 
std::istream & operator>>(std::istream &in, const JLANG::JEquationFacet &facet)
Parse facet.
 
std::ostream & separator(std::ostream &out)
Print separator.
 
std::ostream & left_bracket(std::ostream &out)
Print left bracket.
 
JLANG::JEquationFacet setequation
Type definition of stream manipulator for equational I/O.
 
std::ostream & operator<<(std::ostream &out, const JLANG::JEquationFacet &facet)
Parse facet.
 
std::ostream & white_space(std::ostream &out)
Print white space.
 
std::ostream & right_bracket(std::ostream &out)
Print right bracket.
 
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.
 
friend std::ostream & operator<<(std::ostream &out, const JEndOfLine &eol)
Print end of line.
 
JEndOfLine()
Default constructor.
 
const JEndOfLine & operator()(const unsigned int i) const
Constructor.