Warning, /frameworks/syntax-highlighting/autotests/folding/highlight.cpp.fold is written in an unsupported language. File is not indexed.

0001 #pragma once
0002 
0003 #include <cassert>
0004 #include <assert.h>
0005 #include "assert.h"
0006 #include "assert.hpp" // abc
0007 #include "path/assert.hpp"
0008 #include "assert.h"a
0009 #include "assert.h" a
0010 #include <cassert>a
0011 #include <cassert> a
0012 #include FOO() error
0013 #include_next <cassert> a
0014 #include_next <cassert> <beginfold id='1'>/*</beginfold id='1'> a
0015  <endfold id='1'>*/</endfold id='1'> b
0016 #include PATH_IN_MACRO
0017 #include PATH_IN_MACRO()
0018 #include PATH_IN_MACRO(a, b)
0019 
0020 #define SOME_VAR 1
0021 #<beginfold id='2'></beginfold id='2'>ifdef SOME_VAR
0022 
0023 #define MULTILINE_MACRO one \
0024 two \
0025 three
0026 
0027 # define MULTILINE_MACRO_TEXT                        \
0028     <beginfold id='1'>/*</beginfold id='1'> NOTE The contents of macro is too green :D <endfold id='1'>*/</endfold id='1'> \
0029     char const s[] = "a\\b"                          \
0030     "c\nd"
0031 
0032 # define VARIADIC(a, ...)          \
0033     f(a##a)                        \
0034     f(__VA_ARGS__)                 \
0035     f(#__VA_ARGS__)                \
0036     f(__VA_ARGS__)                 \
0037     f(0 __VA_OPT__(,) __VA_ARGS__) \
0038     x __VA_OPT__(= { __VA_ARGS__ })
0039 
0040 # define MACRO() BAD \ ESCAPED
0041 
0042 # error dds
0043 # warning dds
0044 # line 2 "file.cpp"
0045 # define A(x, y) x##y x#y
0046 // OK(L, a) -> L"a"
0047 # define OK(x, y) x###y
0048 # define BAD(x, y) x####y
0049 # define A <beginfold id='1'>/*</beginfold id='1'> multi line
0050 with comment <endfold id='1'>*/</endfold id='1'> expr
0051 # define A <beginfold id='1'>/*</beginfold id='1'> multi line
0052 with comment <endfold id='1'>*/</endfold id='1'>
0053 23
0054 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'> // x
0055 #42 // gcc extension = #line 42
0056 
0057 // error
0058 #wrong
0059 # wrong
0060 #<endfold id='2'>endif</endfold id='2'> x
0061 #<beginfold id='2'></beginfold id='2'>if DS()
0062 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'> x
0063 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'> <beginfold id='1'>/*</beginfold id='1'> <endfold id='1'>*/</endfold id='1'>x
0064 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'> <beginfold id='1'>/*</beginfold id='1'> x
0065 y <endfold id='1'>*/</endfold id='1'> z
0066 #<endfold id='2'>endif</endfold id='2'>
0067 
0068 // check that _XXX defines work, bug 397766
0069 #<beginfold id='2'></beginfold id='2'>ifndef _HEADER_GUARD
0070 #define _HEADER_GUARD 1
0071 #<endfold id='2'>endif</endfold id='2'>
0072 #<beginfold id='2'></beginfold id='2'>ifdef _HEADER_GUARD
0073 #<beginfold id='2'></beginfold id='2'>if (_HEADER_GUARD >= 1)
0074 #<endfold id='2'>endif</endfold id='2'>
0075 #<endfold id='2'>endif</endfold id='2'>
0076 
0077 static int g_global;
0078 
0079 template<class T, typename U, template<class> class = std::is_pointer>
0080 struct class1
0081   : private std::vector<T>, public U
0082 <beginfold id='3'>{</beginfold id='3'>
0083     class1()
0084         try
0085         : _member1(xxx)
0086     <beginfold id='3'>{</beginfold id='3'><endfold id='3'>}</endfold id='3'>
0087         catch(...)
0088     <beginfold id='3'>{</beginfold id='3'><endfold id='3'>}</endfold id='3'>
0089 
0090     class1(class1&&) = default;
0091 
0092     ~class1()
0093     <beginfold id='3'>{</beginfold id='3'><endfold id='3'>}</endfold id='3'>
0094 
0095     void foo() <beginfold id='3'>{</beginfold id='3'> return; <endfold id='3'>}</endfold id='3'>
0096     void foo() const <beginfold id='3'>{</beginfold id='3'> return; <endfold id='3'>}</endfold id='3'>
0097     void foo() noexcept <beginfold id='3'>{</beginfold id='3'> return; <endfold id='3'>}</endfold id='3'>
0098     void foo() const noexcept <beginfold id='3'>{</beginfold id='3'> return; <endfold id='3'>}</endfold id='3'>
0099     virtual void foo() const noexcept <beginfold id='3'>{</beginfold id='3'> return; <endfold id='3'>}</endfold id='3'>
0100     static void foo() <beginfold id='3'>{</beginfold id='3'> return; <endfold id='3'>}</endfold id='3'>
0101     constexpr static void foo() const
0102         noexcept(noexcept(std::is_pointer<U>::value)) override
0103     <beginfold id='3'>{</beginfold id='3'>
0104         xxx::template ttt<U>::type <beginfold id='3'>{</beginfold id='3'><endfold id='3'>}</endfold id='3'>;
0105         xxx.template get<U>();
0106         xxx.std::rdbuf();
0107         auto x = C<'a'> + y;
0108     <endfold id='3'>}</endfold id='3'>
0109 
0110     int operator->*(T (C::*m)(int));
0111     operator value_t ();
0112 
0113 private:
0114 protected:
0115 public:
0116     value_type _member1; // NOTE internal ?
0117     value_type __internal;
0118     value_type internal__;
0119     value_type _M_internal;
0120     value_t member2_;
0121     value_type m_member3;
0122 
0123     static int s_static;
0124     static constexpr int s_static;
0125     static inline int s_static;
0126     static inline constexpr int s_static;
0127 <endfold id='3'>}</endfold id='3'>;
0128 
0129 constexpr struct : xyz
0130 <beginfold id='3'>{</beginfold id='3'>
0131     using xyz::xyz;
0132     using xyz::operator=;
0133 
0134     int a : 1;
0135     int b : 7;
0136 <endfold id='3'>}</endfold id='3'> x <beginfold id='3'>{</beginfold id='3'><endfold id='3'>}</endfold id='3'>;
0137 
0138 template<class T>
0139 using is_pointer = std::is_pointer<T>::type;
0140 
0141 template<class T>
0142 constexpr auto is_pointer_v = std::is_pointer<T>::value;
0143 
0144 uint64_t namespaces()
0145 <beginfold id='3'>{</beginfold id='3'>
0146     std::vector<T>;
0147     boost::vector<T>;
0148     detail::vector<T>;
0149     details::vector<T>;
0150     aux::vector<T>;
0151     internals::vector<T>;
0152     other::vector<T>;
0153 <endfold id='3'>}</endfold id='3'>
0154 
0155 task<> tcp_echo_server() <beginfold id='3'>{</beginfold id='3'>
0156   char data[1024];
0157   for (;;) <beginfold id='3'>{</beginfold id='3'>
0158     size_t n = co_await socket.async_read_some(buffer(data));
0159     co_await async_write(socket, buffer(data, n));
0160   <endfold id='3'>}</endfold id='3'>
0161 <endfold id='3'>}</endfold id='3'>
0162 
0163 #<beginfold id='2'></beginfold id='2'>if 1
0164     double foo(const A);
0165 <endfold id='2'></endfold id='2'><beginfold id='2'>#else</beginfold id='2'> // else
0166     double foo(const A);
0167 <endfold id='2'>#endif</endfold id='2'> // end
0168 
0169 #<beginfold id='2'></beginfold id='2'>if 0
0170     double foo(const A);
0171 <endfold id='2'></endfold id='2'><beginfold id='2'>#else</beginfold id='2'> // else
0172     double foo(const A);
0173 <endfold id='2'>#endif</endfold id='2'> // end
0174 
0175 #<beginfold id='2'></beginfold id='2'>if 1
0176     double foo(const A);
0177 <endfold id='2'></endfold id='2'><beginfold id='2'>#elif</beginfold id='2'> 1
0178     double foo(const A);
0179 #elif 0
0180     double foo(const A);
0181 <endfold id='2'>#endif</endfold id='2'> // end
0182 
0183 #<beginfold id='2'></beginfold id='2'>if 0
0184     double foo(const A);
0185 <endfold id='2'></endfold id='2'><beginfold id='2'>#elif 1</beginfold id='2'>
0186     double foo(const A);
0187 <endfold id='2'></endfold id='2'><beginfold id='2'>#elif</beginfold id='2'> 0
0188     double foo(const A);
0189 <endfold id='2'>#endif</endfold id='2'> // end
0190 
0191 #<beginfold id='2'></beginfold id='2'>if 0
0192     double foo(const A);
0193 <endfold id='2'></endfold id='2'><beginfold id='2'>#elif</beginfold id='2'> a
0194     double foo(const A);
0195 #<endfold id='2'></endfold id='2'><beginfold id='2'></beginfold id='2'>elif 0
0196     double foo(const A);
0197 <endfold id='2'></endfold id='2'><beginfold id='2'>#elif</beginfold id='2'> a
0198     double foo(const A);
0199 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'> // else
0200     double foo(const A);
0201 #<endfold id='2'>endif</endfold id='2'> // end
0202 
0203 #<beginfold id='2'></beginfold id='2'>if 0 // blah blah
0204     double foo(const A);
0205 <endfold id='2'></endfold id='2'><beginfold id='2'>#elif 1 </beginfold id='2'>// blah blah
0206     double foo(const A);
0207 <endfold id='2'></endfold id='2'><beginfold id='2'>#else</beginfold id='2'> // else
0208     double foo(const A);
0209 <endfold id='2'>#endif</endfold id='2'> // end
0210 
0211 #<beginfold id='2'></beginfold id='2'>if 0 || a
0212     double foo(const A);
0213 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'> // else
0214     double foo(const A);
0215 #<endfold id='2'>endif</endfold id='2'> // end
0216 
0217 #<beginfold id='2'></beginfold id='2'>if 1 || a
0218     double foo(const A);
0219 <endfold id='2'></endfold id='2'><beginfold id='2'>#else</beginfold id='2'> // else
0220     double foo(const A);
0221 <endfold id='2'>#endif</endfold id='2'> // end
0222 
0223 #<beginfold id='2'></beginfold id='2'>if 0 && a
0224     double foo(const A);
0225 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'> // else
0226     double foo(const A);
0227 #<endfold id='2'>endif</endfold id='2'> // end
0228 
0229 #<beginfold id='2'></beginfold id='2'>if 1 && a
0230     double foo(const A);
0231 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'> // else
0232     double foo(const A);
0233 #<endfold id='2'>endif</endfold id='2'> // end
0234 
0235 #<beginfold id='2'></beginfold id='2'>if a
0236     double foo(const A);
0237 #<endfold id='2'></endfold id='2'><beginfold id='2'></beginfold id='2'>elif 0
0238     double foo(const A);
0239 <endfold id='2'>#endif</endfold id='2'> // end
0240 
0241 #<beginfold id='2'></beginfold id='2'>if a
0242     double foo(const A);
0243 #<endfold id='2'></endfold id='2'><beginfold id='2'></beginfold id='2'>elif 1
0244     double foo(const A);
0245 <endfold id='2'>#endif</endfold id='2'> // end
0246 
0247 #<beginfold id='2'></beginfold id='2'>if a
0248     double foo(const A);
0249 #<endfold id='2'></endfold id='2'><beginfold id='2'></beginfold id='2'>elif a
0250     double foo(const A);
0251 #<endfold id='2'>endif</endfold id='2'> // end
0252 
0253 int bar(void*p, void * pp)
0254 <beginfold id='3'>{</beginfold id='3'>
0255 # <beginfold id='2'></beginfold id='2'>if 0
0256     double foo();
0257 <endfold id='2'></endfold id='2'><beginfold id='2'># else</beginfold id='2'> // else
0258     double foo();
0259 <endfold id='2'># endif</endfold id='2'> // end
0260 <endfold id='3'>}</endfold id='3'>
0261 
0262 #<beginfold id='2'></beginfold id='2'>if abc 0
0263     double foo();
0264 #<endfold id='2'>endif</endfold id='2'> // end
0265 
0266 #<beginfold id='2'></beginfold id='2'>if xxx
0267     double foo();
0268 #<endfold id='2'></endfold id='2'><beginfold id='2'>else</beginfold id='2'>
0269     double foo();
0270 #<endfold id='2'>endif</endfold id='2'> // end
0271 
0272 #<beginfold id='2'></beginfold id='2'>if xxx
0273     double foo();
0274 #<endfold id='2'></endfold id='2'><beginfold id='2'></beginfold id='2'>elif xxx // elseif
0275     double foo();
0276 #<endfold id='2'></endfold id='2'><beginfold id='2'></beginfold id='2'>elif xxx // elseif
0277     double foo();
0278 #<endfold id='2'>endif</endfold id='2'> // end
0279 
0280 // error
0281 #
0282 #d
0283 # d
0284 #<beginfold id='2'></beginfold id='2'>if
0285 #<endfold id='2'></endfold id='2'><beginfold id='2'></beginfold id='2'>elif
0286 #<endfold id='2'>endif</endfold id='2'>
0287 #<beginfold id='2'></beginfold id='2'>ifndef
0288 #<endfold id='2'>endif</endfold id='2'>
0289 #<beginfold id='2'></beginfold id='2'>ifdef 0
0290 #<endfold id='2'>endif</endfold id='2'> // end
0291 
0292 static uint64_t intWithSuffix = 42ull;
0293 static long intWithSuffixAndPrefix = 0b0101L;
0294 static int octNum = 07232;
0295 static int invalidOctNum = 09231;
0296 static uint64_t hexNum = 0xDEADBEEF42;
0297 static uint64_t invalidHexNum = 0xGLDFKG;
0298 static char binNum = 0b0101010;
0299 
0300 static int64_t intWithSuffix = -42LL;
0301 static long intWithSuffixAndPrefix = -0b0101L;
0302 static int octNum = -07232;
0303 static int invalidOctNum = -09231;
0304 static int64_t hexNum = -0xDEADBEEF42;
0305 static int64_t invalidHexNum = -0xGLDFKG;
0306 static char binNum = -0b0101010;
0307 
0308 static uint64_t intWithSuffixWithSep = 4'2ull;
0309 static long intWithSuffixAndPrefixWithSep = 0b0'10'1L;
0310 static int octNumWithSep = 07'232;
0311 static int invalidOctNumWithSep = 09'23'1;
0312 static uint64_t hexNumWithSep = 0xD'EAD'BE'EF'42;
0313 static uint64_t invalidHexNumWithSep = 0xGLD'FKG;
0314 static char binNumWithSep = 0b0'1010'10;
0315 
0316 static uint64_t invalidSep = 42'ull;
0317 static uint64_t invalidSep = 42';
0318 
0319 static double d1 = 42.;
0320 static double d2 = .42;
0321 static double d2a = -0.49;
0322 static double d2b = -0.09;
0323 static double d3 = 42.3e1;
0324 static double d4 = .2e-12;
0325 static double d5 = 32.e+12;
0326 static double invalidD1 = 32.e+a12;
0327 static float floatQualifier = 23.123f;
0328 // Hexadecimal floating point (c++17)
0329 static double d6 = 0x1ffp10;
0330 static double d7 = 0X0p-1;
0331 static double d8 = 0x1.p0;
0332 static double d9 = 0xf.p-1L;
0333 static double d10 = 0x0.123p-1;
0334 static double d11 = 0xa.bp10l;
0335 static double invalidD2 = 0x0.123p-a;
0336 static float floatQualifier = 0xf.p-1f;
0337 
0338 60min; // c++17
0339 60.min;
0340 60.3min;
0341 0x1ffp10min;
0342 2us
0343 2d; // c++20
0344 23._f
0345 23._fd
0346 2.3_f
0347 2.3_fd
0348 2._f
0349 2._fd
0350 2e4_f
0351 2e4_fd
0352 
0353 // error
0354 23.fd
0355 2e_fd
0356 2e
0357 1.y
0358 1.0_E+2.0
0359 1.0_E +2.0 // ok
0360 1_p+2
0361 1_p +2 // ok
0362 4s.count()
0363 4s. count()
0364 4s .count() // ok
0365 
0366 static bool yes = true;
0367 static bool no = false;
0368 
0369 // *char*
0370 static const char     c1 = 'c';
0371 static const char     c1a = u8'c'; // utf-8 char (c++17)
0372 static const char16_t c1b = u'c';
0373 static const char32_t c1c = U'c';
0374 static const wchar_t  c1d = L'c';
0375 static const char c2 = '\n';
0376 static const char c2a = '\120'; // octal
0377 static const char c2b = '\x1f'; // hex
0378 static const char c2c = '\'';
0379 static const char c2d = '\\';
0380 static const wchar_t c2e = L'\x1ff'; // hex
0381 static const wchar_t c2e = U'\x1fffffff'; // hex
0382 // error
0383 '\x123';
0384 '\u1234';
0385 '\U12345678';
0386 U'\u12345';
0387 u'\u123';
0388 U'\U1234567';
0389 U'\U123456789';
0390 U'\x123456789';
0391 
0392 // string
0393 static const char* c3 = "string";
0394 static const char* c4 = "\"string\n\t\012\x12\"";
0395 static const char* c5 = "multiline \
0396     string";
0397 static const char* c6 = "multifragment" "other""string";
0398 static const char*      c6a = u8"string";
0399 static const char16_t*  c6b = u"string";
0400 static const char32_t*  c6c = U"string";
0401 static const wchar_t*   c6d = L"string";
0402 static const char* rawString1 = R"<beginfold id='4'>(</beginfold id='4'>string<endfold id='4'>)"</endfold id='4'>;
0403 static const char*      rawString1a = u8R"<beginfold id='4'>(</beginfold id='4'>string<endfold id='4'>)"</endfold id='4'>;
0404 static const char16_t*  rawString1b = uR"<beginfold id='4'>(</beginfold id='4'>string<endfold id='4'>)"</endfold id='4'>;
0405 static const char32_t*  rawString1c = UR"<beginfold id='4'>(</beginfold id='4'>string<endfold id='4'>)"</endfold id='4'>;
0406 static const wchar_t*   rawString1d = LR"<beginfold id='4'>(</beginfold id='4'>string\nstring<endfold id='4'>)"</endfold id='4'>;
0407 static const char* rawString2 = R"<beginfold id='4'>ab(</beginfold id='4'>string\nstring%s)ab "<endfold id='4'>)ab"</endfold id='4'>;
0408 static const char* rawString3 = R"<beginfold id='4'>ab(</beginfold id='4'>string
0409 string%<endfold id='4'>)ab"</endfold id='4'>;
0410 " %d %df fd" U"ds %d" R"<beginfold id='4'>(</beginfold id='4'>a%d<endfold id='4'>)"</endfold id='4'>;
0411   "\x123xsk";
0412  u"\x123xsk";
0413 // error
0414 u8"\x123xsk";
0415 
0416 // printf format
0417 "a%10sa%-10sa%*sa%-10.*sa%-*.*sa"
0418 "a%ca%*ca%%a%ia%da%.6ia%.0ia%+ia%ia%xa%#xa"
0419 "a%.0fa%.32fa%05.2fa%.2fa%5.2fa%Ea%aa"
0420 // std::format
0421 "a{{:6}}a{}a{:6}a{:*<6}a{:6d}a"
0422 "a{0:}a{0:+}a{0:-}a{0: }a"
0423 "a{:+06d}a{:#06x}a{:<06}a"
0424 "a{:{}}a{0:{1}.{2}f}a"
0425 ;
0426 
0427 // UDL (c++11)
0428 
0429 operator""_a(const char*);
0430 operator ""_a(const char*);
0431 operator "" _a(const char*);
0432 // invalid suffix
0433 operator "" a(const char*);
0434 operator ""a(const char*);
0435 operator""a(const char*);
0436 
0437 "string"_s; // user
0438 "string"s; // standard
0439 "string"_s-b; // -b is not part of the string
0440 
0441 // Macro
0442 
0443 MY_XXX;
0444 BOOST_XXX;
0445 __STDC_VERSION__;
0446 __TIME__;
0447 __cplusplus;
0448 
0449 // Attributes
0450 
0451 [[noreturn]] void foo();
0452 [[deprecated]] void foo();
0453 [[deprecated("because")]] void foo();
0454 void foo([[carries_dependency]] int);
0455 
0456 [[opt(1), debug]]
0457 [[using CC: opt(1), debug]] // c++17
0458 [[using CC: CC::opt(1)]] // c++17
0459 
0460 [[gnu::assume_aligned(3'2l,2)]] void* f();
0461 [[using gnu: assume_aligned(3)]]
0462 [[clang::assume_aligned(3)]]
0463 
0464 void f([[maybe_unused]] int val)
0465 <beginfold id='3'>{</beginfold id='3'>
0466     [[maybe_unused]] int x;
0467     switch (x = foo(); x) <beginfold id='3'>{</beginfold id='3'>
0468         case 1:
0469             [[fallthrough]];
0470         case XXX:
0471         case Class::foo():
0472             [[fallthrough]];
0473         default:
0474             ;
0475     <endfold id='3'>}</endfold id='3'>
0476 
0477     // c++17: fold expression
0478     (args + ... + (1 * 2));
0479     (v.push_back(args), ...);
0480 
0481     [[omp::parallel]] for (auto&& x : v)
0482         x;
0483     for (auto&& [first,second] : mymap) <beginfold id='3'>{</beginfold id='3'>
0484     <endfold id='3'>}</endfold id='3'>
0485 
0486     auto [x, y] = foo();
0487 
0488     [x = 1, =y]()<beginfold id='3'>{</beginfold id='3'><endfold id='3'>}</endfold id='3'>;
0489 
0490     decltype((auto)) x = foo();
0491 <endfold id='3'>}</endfold id='3'>
0492 
0493 auto f() -> decltype(foo());
0494 
0495 __attribute__((pure)) void f();
0496 
0497 label:
0498 goto label;
0499 
0500 
0501 <beginfold id='5'>//BEGIN</beginfold id='5'> region
0502 // TODO comment FIXME comment ### comment BUG comment
0503 <endfold id='5'>//END</endfold id='5'> region
0504 
0505 // \brief blah blah
0506 /// \brief blah blah
0507 
0508 <beginfold id='6'>/**</beginfold id='6'>
0509  * Doxygen
0510  * @param p1 text
0511  * \brief <b>bold text</b>
0512  * <beginfold id='7'>\dot</beginfold id='7'>
0513  * a -> b
0514  * <endfold id='7'>\enddot</endfold id='7'>
0515  *
0516  * <beginfold id='7'>\verbatim</beginfold id='7'>
0517  * <dummy>
0518  * <endfold id='7'>\endverbatim</endfold id='7'>
0519  * <html>text</html>
0520  <endfold id='6'>*/</endfold id='6'>
0521 
0522 #<endfold id='2'>endif</endfold id='2'>
0523 
0524 // Some GNU macros, cross-referenced from gcc.xml to isocpp.xml
0525 __GCC_ATOMIC_CHAR16_T_LOCK_FREE
0526 __GNUC__
0527 __linux__
0528 
0529 // Digraphs (see bug #411508)
0530 %:include <stdio.h>
0531 int main()
0532 <beginfold id='3'><%</beginfold id='3'>
0533     []()<beginfold id='3'>{</beginfold id='3'><endfold id='3'>%></endfold id='3'>();
0534 <endfold id='3'>}</endfold id='3'>
0535 <:<:fallthrough]]
0536 
0537 <beginfold id='6'>/**</beginfold id='6'>
0538  * multi-line comment
0539  <endfold id='6'>*/</endfold id='6'>
0540 
0541 <beginfold id='1'>/*</beginfold id='1'> comment <endfold id='1'>*/</endfold id='1'>
0542 <beginfold id='3'>{</beginfold id='3'> <beginfold id='3'>{</beginfold id='3'> <endfold id='3'>}</endfold id='3'> <beginfold id='3'>{</beginfold id='3'>
0543 <beginfold id='5'>//BEGIN</beginfold id='5'>
0544 <endfold id='3'>}</endfold id='3'>
0545 <endfold id='5'>//END</endfold id='5'>
0546 <endfold id='3'>}</endfold id='3'>
0547 
0548 #<beginfold id='2'></beginfold id='2'>if 0
0549 <endfold id='2'></endfold id='2'><beginfold id='2'>#elif 1</beginfold id='2'>
0550 <endfold id='2'></endfold id='2'><beginfold id='2'>#else</beginfold id='2'>
0551 <endfold id='2'>#endif</endfold id='2'>
0552 
0553 #<beginfold id='2'></beginfold id='2'>if 1
0554 int x; // variable shall not be grey
0555 <endfold id='2'>#endif</endfold id='2'>
0556 #<beginfold id='2'></beginfold id='2'>if defined (A)
0557 int y; // variable shall not be grey
0558 #<endfold id='2'></endfold id='2'><beginfold id='2'></beginfold id='2'>elif defined (B)
0559 int z; // variable shall not be grey
0560 #<endfold id='2'>endif</endfold id='2'>
0561 
0562 <beginfold id='6'>/*!</beginfold id='6'>
0563  * formula <beginfold id='7'>@f$</beginfold id='7'>a+b<endfold id='7'>@f$</endfold id='7'> inside a block comment
0564  <endfold id='6'>*/</endfold id='6'>
0565 
0566 //! formula <beginfold id='7'>@f$</beginfold id='7'>a+b<endfold id='7'>@f$</endfold id='7'> inside a inline comment
0567 // formula @f$a+b@f$ inside a normal comment
0568 
0569 /// \b sa