1 #ifndef __JLANG__JCPPFACET__
2 #define __JLANG__JCPPFACET__
19 namespace JPP {
using namespace JLANG; }
49 static inline bool is_eol (
const char c) {
return c ==
';'; }
70 const std::ios_base& format,
71 std::ios_base::iostate&
result,
72 std::string& buffer)
const
88 const std::ios_base& format,
90 const std::string& buffer)
const
92 return do_put(out, format, c, buffer);
109 const std::ios_base& format,
110 std::ios_base::iostate&
result,
111 std::string& buffer)
const
115 result = (ios_base::iostate) 0;
117 streamsize
n = format.width();
120 n = numeric_limits<streamsize>::max();
125 if (i == __end || (i =
do_ignore(i, __end)) == __end) {
127 result |= ios_base::failbit;
128 result |= ios_base::eofbit;
134 for (++i; i != __end; c = *i, ++i) {
142 else if (c ==
'_' || isalpha(c))
150 result |= ios_base::failbit;
151 result |= ios_base::eofbit;
158 for (--
n; i != __end &&
n != 0 && (*i ==
'_' ||
161 buffer.push_back(*i);
165 result |= ios_base::eofbit;
184 const std::ios_base& format,
186 const std::string& buffer)
const
190 if (format.flags() & ios_base::right) {
191 for (streamsize i = buffer.size(); i < format.width(); ++i, ++out) {
196 for (string::const_iterator i = buffer.begin(); i != buffer.end(); ++i, ++out) {
200 if (format.flags() & ios_base::left) {
201 for (streamsize i = buffer.size(); i < format.width(); ++i, ++out) {
222 while (i != __end && (isspace(*i) ||
is_eol(*i))) {
ostreambuf_iterator put(ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const
Put string.
static bool is_begin_single_line_comment(const char c1, const char c2)
virtual istreambuf_iterator do_ignore(const istreambuf_iterator __begin, const istreambuf_iterator __end) const
Ignore white space and end of line characters.
void operator=(const JCppFacet &)
std::istreambuf_iterator< char, std::char_traits< char > > istreambuf_iterator
virtual ostreambuf_iterator do_put(ostreambuf_iterator out, const std::ios_base &format, const char c, const std::string &buffer) const
Put string.
std::ostreambuf_iterator< char, std::char_traits< char > > ostreambuf_iterator
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
Get string.
static bool is_end_single_line_comment(const char c1)
virtual istreambuf_iterator do_ignore_single_line_comment(const istreambuf_iterator __begin, const istreambuf_iterator __end) const
Ignore characters until end of line.
virtual istreambuf_iterator do_ignore_multi_line_comment(const istreambuf_iterator __begin, const istreambuf_iterator __end) const
Ignore characters until next end of comment.
TCanvas * c1
Global variables to handle mouse events.
Facet class to specify parsing of a C[++] variable name.
static bool is_eol(const char c)
Facet class to specify parsing of a JLANG::JString object.
virtual JCppFacet * clone() const override
Clone this facet.
static bool is_begin_multi_line_comment(const char c1, const char c2)
$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 &))'
static bool is_end_multi_line_comment(const char c1, const char c2)