Winnie C++ Colorizer

07.01.2008 updated! Winnie C++ Colorizer 1.4.3 (source for Unix/Windows and Windows binary)
minor bugs fixed, new "light" default style, files for EMO-style colors and old black-acid colors.
typical code:

#
#  if BOOST_WORKAROUND(__GNUC__, == 2)
#   define BOOST_PYTHON_UNFORWARD_LOCAL(z, n, _) BOOST_PP_COMMA_IF(n) (typename unforward<A##n>::type)objects::do_unforward(a##n,0)
#  else
#   define BOOST_PYTHON_UNFORWARD_LOCAL(z, n, _) BOOST_PP_COMMA_IF(n) objects::do_unforward(a##n,0)
#  endif  
#

template<class Archive>
void basic_xml_oarchive<Archive>::init(){

    // xml header
    header = true;
    this->This()->put("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>\n");

    this->This()->put("<!DOCTYPE boost_serialization>\n");
    // xml document wrapper - outer root
    this->This()->put("<boost_serialization");

    write_attribute("signature", ARCHIVE_SIGNATURE); 
    write_attribute("version", static_cast<unsigned int>(ARCHIVE_VERSION)); 
    this->This()->put(">\n");

} 
_Winnie C++ Colorizer

some pervert tests:


for (int i = 0; i < 07; ++i)
    std::cout << "hello, world" << 0x20 << 12e34 << 12e+34 << 12.0e-34;
   
/\
*
yeah baby, this is comment too =O.o=
*\
/

#
#include <iostream>
#   include"iostream"
#   
#

# /*       */ include <iostream>
#   /*       */ include /*       */ "iostream"
??= include <iostream>
#\
include <iostream>

#/*
*/include/*
*/<iostream>

wchar_t *str3 = L"12321\x12335345\d0232433\nasdfasdf\u12345677082834\U823410293840234\\alsk\'alsd'asdf\"laksjdf";
System::String * __gc = S"Hello, world";

                        (reinterpret_cast)
            __identifier(reinterpret_c\
ast)
                        (reinterpret_c\
ast)

int main()
{
// Вырезка из набора простых boundary test cases парсера C++ комментариев
// 2003-2005 (ц) Руслан "aruslan" Абдикеев

// Константы
  std::cout << "C1. This is /* not a comment */\n";
  std::cout << "C2. This is // not a comment\n";
  std::cout << "C3. This is \" /* not a comment as well*/ \"\n";
  std::cout << "C4. This is \" // not a comment as well \"\n";
  std::cout << "C5. Let's print some random numbers: " << '/*' << '*/' << '\n';
  std::cout << "C6. Let's print a random number: " << '//' << '\n';
  std::cout << "C7. This is\" '/*' not a comment '*/' \"\n";
  std::cout << "C8. This is\" '//' not a comment \"\n";
// Конец строки
  std::cout << "F5. This is "
    // line-continuation character: \
    "SOMETHING ERRONEOUS BUT" // */

    " not a comment\n";
// Триграфы + конец строки
  std::cout << "H5. This is obviously "

    // Триграфы?! - это что такое???????/
    "SOMETHING ERRONEOUS BUT"
    " not a comment\n";

// Триграфы + константы
#ifndef __GNUC__ // gcc up to 3.2.3 fails to handle trigraphs in these contexts
  std::cout << "J1. This is ??/" /* not a comment */ ??/"\n";

  std::cout << "J2. This is ??/" // not a comment at all */ ??/"\n";
  std::cout << "??/" '??/' '/*J3. Yeah, baby, this is NOT a comment*/' ??/"\n";
#endif
}
//commnt
#include <a> //comm
#include <c>
#include <d> /* 
*/ #include <b>

??x ?\?r "????" 
replacement trigraph replacement trigraph replacement _  _ 
??= # ??( [ ??< {  
??/ \ ??) ] ??> } _ 
?? ? ??! | ??- ? _  

??= include <hello>

??=

interface class

interface, class

interface class ICloneable {
Object^ Clone();
};
interface class IComparable { 10
int CompareTo(Object^ other);
};
ref class ListEntry : ICloneable, IComparable {
public:
Object^ Clone() {  } 15
int CompareTo(Object^ other) {  }
};

#if 1
for each
миня нет
#include "stdafx.h" 

# //hello
include <vector>   //not directive

# /*
*/  include <vector>  //directive

a   b  //test tabulation
aa  b
aaa b
aaaa    b
aaaaa   b
aaaaaa  b
aaaaaaa b
aaaaaaaa    b

delete xor_\
eq

#pragmakill //mane ne

//xxx
# error "xxxx"
#hello world  
#include alskdfjalskdfj

 x #pragma /* */

     ref class
 {
     int ref = 10;
 };

 value /*  


       */ class x;

"trailing eol
#pragma
"trailing eol

здафствуй мир   S"lake"  L"la\nke"  Q"la\nke"

|1|
|1u|
|1ull|
|1ul|
|1lu|
|1l|
|1ll|
|1llu|
11\
LL
|123ull|123lll|123lul|123uLL|123uL|123Luu(error)|0x123LL|
|0X123LL|0X123|0123u|0123|1.e10|.1e10|1.1e10|1.1e+10|1e-6|
|1.1e-10|1.e10L|.1e10l|1.1e10f|1.1e+10F|1.1e+10E(error)| 

    std::cout 
        <<std::fixed 
        <<0x10f <<std::endl
        << 010f <<std::endl (error)
        << 010  <<std::endl
        <<  10f <<std::endl (error)
        <<  10  <<std::endl
        <<  0x10.<<std::endl       //hexademical c99 
        <<  0x10.L<<std::endl
        <<  0x10.f<<std::endl
        <<  0x10.F<<std::endl
        <<  0x10.0P10<<std::endl
        <<  0x10.0P10L<<std::endl
        <<  0x.0P+10L<<std::endl;

#include "stdafx.h" #if 1 //directive and not directive

using std::vector;
using std::cout;

//random binary
\$@[11]\$Du[7]»[1]   л[2]3Ы…лt˜»I   3нйWяяяSѓм(Ќ\$4Ќ
L$DЌT$[24]Ќ[4]$PRh    QS‹\$Dи    T$,L$0D$4[19]
K[4]C[8]D$8C[12]‹ГѓД<[ГђSѓм(Ќ\$4ЌL$DЌT$[24]Ќ[4]$PRhђ
   QS‹\$Dи    T$,L$0D$4[19]K[4]C[8]D$8C[12]‹Г
ѓД<[ГђWVUSѓмHD$\‹X[4]83цЌSrЃъ„   vO…Ы[15]ЋЂ[1]  
D$`‹l$\‰8U[4]P[4]M[8]][12]H[8]X[12]u[16]U[20]p[16]P[20]…яt
[7]ё Ђяял[5]ё Ђ  T$`‰B[4]ѓДH[]^_Г3А‰D$[4]3н…Ы[15]Њf[1] 
 t$\‹n[8]l$[4]n[12]‹учЮѓЖ@‹Оё[1]   3ТѓБя‰[12]$и    
[12]$T$[8]‹Х‰D$[12]D$[4]и    [12]$и    L$[12]t$[16]‰\$[20]‹с
‹\$[8]‹л[3]р[19]к[3]Й[19]Ы‰t$[4]L$[12]‰\$[8]‹\$[20]+р‹t$[16]‹Е[27]Вr[25]
С3А№    +В‹T$[8][27]К!D$[4]#йл[17]4$3А‰D$[4]Ѕ   ЂѓГ[1]D
$[4]|$0‰\$4D$8l$<ЌT$0Ќ\$[24]3А‰D$@‰D$DSPj[1]RD
$lPи    ѓД[20]D$T$[24]P3ЫSj[1]Sj[22]h [2]  Rи    ѓД[28]
D$[4]‹Х‹Ои    3Т+Р…яu[2]‹Р‹D$`[3]P[4]P[4]ѓДH[]^_Г‹l$
8[1]  [21]<[1]  
@[1]  [29]D[1]  ЗE     E[8]U[12]M[16]ЗE[4]
[1]   ][20]ѓДH[]^_Г‹D$\‰|$[24]X[4]‰\$[28]X[8]P[12]‰\$ T$
$X[16]‹@[20]‰\$(D$,йKяяяђђVѓмXЌt$dЌD$(ЌL$[24]Ќ[20]$RQ
h [1]  Pj Vt$xи    ѓД[24]ѓк |SЌT$(ЌD$@PRи    ЌL
$ ЌD$[8]P3ТRhЋ   RhЏ   QЌD$`Pи    T$<L$@‹D$
D[22]N[4]F[8]D$HF[12]‹ЖѓД|^Г‹T$[24]L$[28][22]T$ N[4]V[8]
T$$V[12]‹ЖѓДX^Г[28]        [6] "         
[6] :        [6] E         [6] Y         
[6] b        [6] w   [21]   [20] Ќ       [6]    [22] 
  [20] ¬   [23]   [20] э   [23]   [20] [18][1]         [6] [24][1]  [24] 
  [20] 5[1]  [23]   [20] N[1]       [6] u[1]        
[6] Ѓ[1]  [25]   [20] D[2]  [26]  

end of file if
_Winnie C++ Colorizer