?

Log in

No account? Create an account
Yet another C++ colorizer... - Valse oubliée [entries|archive|friends|userinfo]
aruslan

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]
[ delicious | aruslan's delicious ]

Links
[Links:| Tags Profile Friends FG1 PP gamedev XNA FF Entries Comments Memories ]

Yet another C++ colorizer... [Oct. 15th, 2005|05:37 am]
aruslan
[Tags|]

http://www.chami.com/colorizer/

И он опять не проходит простые тесты.
На комментарии, на литералы.
Даже безо всяких триграфов.


// Вырезка из набора простых boundary test cases парсера C++ комментариев
#include <iostream>

int main()
{
// Константы
  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
}



via __ak__
LinkReply

Comments:
[User Picture]From: _winnie
2005-10-15 06:06 am (UTC)
ну триграфы - хрен с ними. я бы вообще сделал отдельную опцию компилятора, _разрешающую_ их. Или выдавал бы warnings на них.
(Reply) (Thread)
[User Picture]From: _winnie
2005-10-15 08:42 am (UTC)
Ага, g++ со мной солидарен -
lowlevel_print.cpp:37:23: warning: trigraph ??/ ignored, use -trigraphs to enable
(Reply) (Parent) (Thread)
[User Picture]From: aruslan
2005-10-16 06:54 am (UTC)
Триграфы - да, нафик.
Меня расстраивают камменты.
(Reply) (Parent) (Thread)
From: __ak__
2005-10-15 07:18 am (UTC)
Всё таки лучше чем ничего. Всяко читабельнее получаецца.
(Reply) (Thread)
[User Picture]From: aruslan
2005-10-16 06:54 am (UTC)
Угу. Лучше так, чем никак, однозначна.
(Reply) (Parent) (Thread)
[User Picture]From: ayaromenok
2005-10-15 09:50 am (UTC)

главное,

чтобы colorizer повышал читабельность кода.
PS. такой код хорош для примера, а вот встертить в сырцах я бы не хотел.
(Reply) (Thread)
[User Picture]From: aruslan
2005-10-16 06:53 am (UTC)

Это

точно :)
(Reply) (Parent) (Thread)
[User Picture]From: corporateshark
2005-10-26 04:41 pm (UTC)
У меня колорер в FARe заваливается только на последних трёх строчках, которые он всё-таки считает за комменты.
(Reply) (Thread)