00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <mpcl/text/codegen/defs.hh>
00027 #include <mpcl/text/codegen/instruction_tag_string.hh>
00028
00029
00030
00031
00032
00033
00034 void mpcl::text::codegen::TInstructionTagString::
00035 read (std::basic_istream<char_type, traits_type>& rtSOURCE_ISTREAM)
00036 {
00037
00038 using regex::TMatcher;
00039 using std::basic_string;
00040 using std::ios;
00041
00042 TMatcher tMatcher (rtSOURCE_ISTREAM);
00043
00044 tMatcher.setCaseSensitiveness (false);
00045 while ( tMatcher.scan (pkcCommentTagPattern, NULL) );
00046 if ( !tMatcher.scan (pkcINSTRUCT_TagPattern, (basic_string<char>*) this, NULL) )
00047 {
00048 rtSOURCE_ISTREAM.setstate (ios::failbit);
00049 }
00050
00051 }
00052
00053
00054
00055
00056
00057
00058 void mpcl::text::codegen::TInstructionTagString::
00059 write (std::basic_ostream<char_type, traits_type>& rtTARGET_OSTREAM) const
00060 {
00061
00062 rtTARGET_OSTREAM << "<instruct name=\"";
00063 operator << (rtTARGET_OSTREAM, (std::string) *this);
00064 rtTARGET_OSTREAM << "\">\n";
00065
00066 }