Changeset View
Changeset View
Standalone View
Standalone View
autotests/folding/highlight.lex.fold
1 | <beginfold id='1'>/</beginfold id='1'>* This test file tests kates Lex/Flex highlighting */ | 1 | <beginfold id='1'>/</beginfold id='1'>* This test file tests kates Lex/Flex highlighting */ | ||
---|---|---|---|---|---|
2 | 2 | | |||
3 | %option c++ | 3 | %option c++ | ||
4 | %option yyclass="KateTester" | 4 | %option yyclass="KateTester" | ||
5 | %option yylineno | 5 | %option yylineno | ||
6 | 6 | | |||
7 | <beginfold id='9'>/*</beginfold id='9'> This is a C(++) comment <endfold id='9'>*/</endfold id='9'> | 7 | <beginfold id='8'>/*</beginfold id='8'> This is a C(++) comment <endfold id='8'>*/</endfold id='8'> | ||
8 | 8 | | |||
9 | /* This one is a lex comment ! */ | 9 | /* This one is a lex comment ! */ | ||
10 | 10 | | |||
11 | <beginfold id='5'>%{</beginfold id='5'> | 11 | <beginfold id='5'>%{</beginfold id='5'> | ||
12 | #include <iostream> | 12 | #include <iostream> | ||
13 | #include "realparser.hpp" | 13 | #include "realparser.hpp" | ||
14 | using namespace std; | 14 | using namespace std; | ||
15 | <endfold id='5'>%}</endfold id='5'> | 15 | <endfold id='5'>%}</endfold id='5'> | ||
16 | 16 | | |||
17 | /* Some definitions */ | 17 | /* Some definitions */ | ||
18 | DIGIT [0-9] | 18 | DIGIT [0-9] | ||
19 | LETTER [_a-zA-Z] | 19 | LETTER [_a-zA-Z] | ||
20 | 20 | | |||
21 | <endfold id='1'>%%</endfold id='1'><beginfold id='2'>%%</beginfold id='2'> | 21 | <endfold id='1'>%%</endfold id='1'><beginfold id='2'>%%</beginfold id='2'> | ||
22 | 22 | | |||
23 | <beginfold id='9'>/*</beginfold id='9'> Comment *shall be indented here* <endfold id='9'>*/</endfold id='9'> | 23 | <beginfold id='8'>/*</beginfold id='8'> Comment *shall be indented here* <endfold id='8'>*/</endfold id='8'> | ||
24 | [ \t\n\r]+ | 24 | [ \t\n\r]+ | ||
25 | 25 | | |||
26 | <beginfold id='9'>/*</beginfold id='9'> Note: there is a bad } just here vvv <endfold id='9'>*/</endfold id='9'> | 26 | <beginfold id='8'>/*</beginfold id='8'> Note: there is a bad } just here vvv <endfold id='8'>*/</endfold id='8'> | ||
27 | \/\*([^\*]|\*[^/])*\*\/ <beginfold id='6'>{</beginfold id='6'> foo(a, b, c); <endfold id='6'>}</endfold id='6'> } | 27 | \/\*([^\*]|\*[^/])*\*\/ <beginfold id='6'>{</beginfold id='6'> foo(a, b, c); <endfold id='6'>}</endfold id='6'> } | ||
28 | 28 | | |||
29 | <beginfold id='9'>/*</beginfold id='9'> A start condition scope... <endfold id='9'>*/</endfold id='9'> | 29 | <beginfold id='8'>/*</beginfold id='8'> A start condition scope... <endfold id='8'>*/</endfold id='8'> | ||
30 | <ESC><beginfold id='4'>{</beginfold id='4'> | 30 | <ESC><beginfold id='4'>{</beginfold id='4'> | ||
31 | "a" <beginfold id='6'>{</beginfold id='6'> | 31 | "a" <beginfold id='6'>{</beginfold id='6'> | ||
32 | 32 | | |||
33 | <beginfold id='9'>/*</beginfold id='9'> C mode ! <endfold id='9'>*/</endfold id='9'> | 33 | <beginfold id='8'>/*</beginfold id='8'> C mode ! <endfold id='8'>*/</endfold id='8'> | ||
34 | return 0; | 34 | return 0; | ||
35 | <endfold id='6'>}</endfold id='6'> | 35 | <endfold id='6'>}</endfold id='6'> | ||
36 | 36 | | |||
37 | "b" <beginfold id='5'>%{</beginfold id='5'> | 37 | "b" <beginfold id='5'>%{</beginfold id='5'> | ||
38 | 38 | | |||
39 | <beginfold id='9'>/*</beginfold id='9'> C mode, too ! <endfold id='9'>*/</endfold id='9'> | 39 | <beginfold id='8'>/*</beginfold id='8'> C mode, too ! <endfold id='8'>*/</endfold id='8'> | ||
40 | return 0; | 40 | return 0; | ||
41 | <endfold id='5'>%}</endfold id='5'> | 41 | <endfold id='5'>%}</endfold id='5'> | ||
42 | 42 | | |||
43 | "c" return 0; // C++ comment | 43 | "c" return 0; // C++ comment | ||
44 | <endfold id='4'>}</endfold id='4'> | 44 | <endfold id='4'>}</endfold id='4'> | ||
45 | 45 | | |||
46 | <beginfold id='9'>/*</beginfold id='9'> Big rule <endfold id='9'>*/</endfold id='9'> | 46 | <beginfold id='8'>/*</beginfold id='8'> Big rule <endfold id='8'>*/</endfold id='8'> | ||
47 | \"([^"\\]|\\.)*\" <beginfold id='6'>{</beginfold id='6'> | 47 | \"([^"\\]|\\.)*\" <beginfold id='6'>{</beginfold id='6'> | ||
48 | 48 | | |||
49 | yylval.string_val = new char[strlen(yytext) + 1]; | 49 | yylval.string_val = new char[strlen(yytext) + 1]; | ||
50 | int j = 0, i = 1; | 50 | int j = 0, i = 1; | ||
51 | 51 | | |||
52 | while (yytext[i] != '"') | 52 | while (yytext[i] != '"') | ||
53 | if (yytext[i] != '\\') | 53 | if (yytext[i] != '\\') | ||
54 | yylval.string_val[j++] = yytext[i++]; | 54 | yylval.string_val[j++] = yytext[i++]; | ||
55 | else | 55 | else | ||
56 | switch (yytext[i + 1]) | 56 | switch (yytext[i + 1]) | ||
57 | <beginfold id='6'>{</beginfold id='6'> | 57 | <beginfold id='6'>{</beginfold id='6'> | ||
58 | case 'n': | 58 | case 'n': | ||
59 | yylval.string_val[j++] = '\n'; i += 2; | 59 | yylval.string_val[j++] = '\n'; i += 2; | ||
60 | break; | 60 | break; | ||
61 | default: | 61 | default: | ||
62 | yylval.string_val[j++] << yytext[i + 1], i += 2; | 62 | yylval.string_val[j++] << yytext[i + 1], i += 2; | ||
63 | <endfold id='6'>}</endfold id='6'> | 63 | <endfold id='6'>}</endfold id='6'> | ||
64 | 64 | | |||
65 | yylval.string_val[j] = 0; | 65 | yylval.string_val[j] = 0; | ||
66 | return TOK_STRING; | 66 | return TOK_STRING; | ||
67 | 67 | | |||
68 | <endfold id='6'>}</endfold id='6'> | 68 | <endfold id='6'>}</endfold id='6'> | ||
69 | 69 | | |||
70 | <beginfold id='9'>/*</beginfold id='9'> Dot (match all) <endfold id='9'>*/</endfold id='9'> | 70 | <beginfold id='8'>/*</beginfold id='8'> Dot (match all) <endfold id='8'>*/</endfold id='8'> | ||
71 | . <beginfold id='6'>{</beginfold id='6'>return yylval.int_val = yytext[0];<endfold id='6'>}</endfold id='6'> | 71 | . <beginfold id='6'>{</beginfold id='6'>return yylval.int_val = yytext[0];<endfold id='6'>}</endfold id='6'> | ||
72 | 72 | | |||
73 | <endfold id='2'>%%</endfold id='2'><beginfold id='3'>%%</beginfold id='3'> | 73 | <endfold id='2'>%%</endfold id='2'><beginfold id='3'>%%</beginfold id='3'> | ||
74 | 74 | | |||
75 | // Here is pure C(++) | 75 | // Here is pure C(++) | ||
76 | #include <iostream> | 76 | #include <iostream> | ||
77 | 77 | | |||
78 | int main(void) | 78 | int main(void) | ||
79 | <beginfold id='10'>{</beginfold id='10'> | 79 | <beginfold id='7'>{</beginfold id='7'> | ||
80 | std::cout << "Hello, World\n"; | 80 | std::cout << "Hello, World\n"; | ||
81 | return 0; | 81 | return 0; | ||
82 | <endfold id='10'>}</endfold id='10'> | 82 | <endfold id='7'>}</endfold id='7'> |