aboutsummaryrefslogtreecommitdiff
path: root/xanguage/valgrind.h
blob: f187721c374d684b804b81e6878989f8adada62a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
static procedure language_highlight_valgrind (language_structure * language, syntax_structure * syntax) {
	character * separators = ".,:;<=>+-*/%!&~^?|@#$()[]{}'\" \t\r\n";

	character * titles [] = {
		"HEAP",         "LEAK",         "ERROR",        "SUMMARY"
	};

	syntax_define (syntax, false, false, "==",  "==", '\0', language->comment_colour,   language->comment_effect);
	syntax_define (syntax, false, false, "\"",  "\"", '\0', language->string_colour,    language->string_effect);
	syntax_define (syntax, false, false, "(",   ")",  '\0', language->lowercase_colour, language->lowercase_effect);
	syntax_define (syntax, false, false, "0x",  ":",  '\0', language->string_colour,    language->string_effect);

	for (natural_64 word = 0; word < array_length (titles); ++word) {
		syntax_define (syntax, false, true, titles [word], separators, '\0', language->fatal_colour, language->fatal_effect);
	}

	syntax_define (syntax, true, false, "()[]{}",                "", '\0', language->bracket_colour,  language->bracket_effect);
	syntax_define (syntax, true, false, ".,:;<=>+*-/%!&~^?|@#$", "", '\0', language->operator_colour, language->operator_effect);

	syntax_define (syntax, true, true, language_digits,    ": ()\t\r\n", '\0', language->number_colour,    language->number_effect);
	syntax_define (syntax, true, true, language_lowercase, separators,   '\0', language->uppercase_colour, language->uppercase_effect);
	syntax_define (syntax, true, true, language_uppercase, separators,   '\0', language->uppercase_colour, language->uppercase_effect);
	syntax_define (syntax, true, true, "_",                separators,   '\0', language->uppercase_colour, language->uppercase_effect);
}