annotate third_party/highlight/languages/cpp.js @ 211:a6d8d32a0261

[MrJuneJune] Simple animations for darkmode.
author MrJuneJune <me@mrjunejune.com>
date Sun, 15 Feb 2026 21:38:23 -0800
parents 2db6253f355d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
157
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
1 /*! `cpp` grammar compiled for Highlight.js 11.11.1 */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
2 (function(){
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
3 var hljsGrammar = (function () {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
4 'use strict';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
5
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
6 /*
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
7 Language: C++
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
8 Category: common, system
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
9 Website: https://isocpp.org
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
10 */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
11
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
12 /** @type LanguageFn */
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
13 function cpp(hljs) {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
14 const regex = hljs.regex;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
15 // added for historic reasons because `hljs.C_LINE_COMMENT_MODE` does
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
16 // not include such support nor can we be sure all the grammars depending
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
17 // on it would desire this behavior
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
18 const C_LINE_COMMENT_MODE = hljs.COMMENT('//', '$', { contains: [ { begin: /\\\n/ } ] });
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
19 const DECLTYPE_AUTO_RE = 'decltype\\(auto\\)';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
20 const NAMESPACE_RE = '[a-zA-Z_]\\w*::';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
21 const TEMPLATE_ARGUMENT_RE = '<[^<>]+>';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
22 const FUNCTION_TYPE_RE = '(?!struct)('
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
23 + DECLTYPE_AUTO_RE + '|'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
24 + regex.optional(NAMESPACE_RE)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
25 + '[a-zA-Z_]\\w*' + regex.optional(TEMPLATE_ARGUMENT_RE)
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
26 + ')';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
27
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
28 const CPP_PRIMITIVE_TYPES = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
29 className: 'type',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
30 begin: '\\b[a-z\\d_]*_t\\b'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
31 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
32
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
33 // https://en.cppreference.com/w/cpp/language/escape
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
34 // \\ \x \xFF \u2837 \u00323747 \374
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
35 const CHARACTER_ESCAPES = '\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
36 const STRINGS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
37 className: 'string',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
38 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
39 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
40 begin: '(u8?|U|L)?"',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
41 end: '"',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
42 illegal: '\\n',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
43 contains: [ hljs.BACKSLASH_ESCAPE ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
44 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
45 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
46 begin: '(u8?|U|L)?\'(' + CHARACTER_ESCAPES + '|.)',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
47 end: '\'',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
48 illegal: '.'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
49 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
50 hljs.END_SAME_AS_BEGIN({
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
51 begin: /(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
52 end: /\)([^()\\ ]{0,16})"/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
53 })
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
54 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
55 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
56
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
57 const NUMBERS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
58 className: 'number',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
59 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
60 // Floating-point literal.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
61 { begin:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
62 "[+-]?(?:" // Leading sign.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
63 // Decimal.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
64 + "(?:"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
65 +"[0-9](?:'?[0-9])*\\.(?:[0-9](?:'?[0-9])*)?"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
66 + "|\\.[0-9](?:'?[0-9])*"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
67 + ")(?:[Ee][+-]?[0-9](?:'?[0-9])*)?"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
68 + "|[0-9](?:'?[0-9])*[Ee][+-]?[0-9](?:'?[0-9])*"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
69 // Hexadecimal.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
70 + "|0[Xx](?:"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
71 +"[0-9A-Fa-f](?:'?[0-9A-Fa-f])*(?:\\.(?:[0-9A-Fa-f](?:'?[0-9A-Fa-f])*)?)?"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
72 + "|\\.[0-9A-Fa-f](?:'?[0-9A-Fa-f])*"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
73 + ")[Pp][+-]?[0-9](?:'?[0-9])*"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
74 + ")(?:" // Literal suffixes.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
75 + "[Ff](?:16|32|64|128)?"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
76 + "|(BF|bf)16"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
77 + "|[Ll]"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
78 + "|" // Literal suffix is optional.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
79 + ")"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
80 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
81 // Integer literal.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
82 { begin:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
83 "[+-]?\\b(?:" // Leading sign.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
84 + "0[Bb][01](?:'?[01])*" // Binary.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
85 + "|0[Xx][0-9A-Fa-f](?:'?[0-9A-Fa-f])*" // Hexadecimal.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
86 + "|0(?:'?[0-7])*" // Octal or just a lone zero.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
87 + "|[1-9](?:'?[0-9])*" // Decimal.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
88 + ")(?:" // Literal suffixes.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
89 + "[Uu](?:LL?|ll?)"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
90 + "|[Uu][Zz]?"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
91 + "|(?:LL?|ll?)[Uu]?"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
92 + "|[Zz][Uu]"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
93 + "|" // Literal suffix is optional.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
94 + ")"
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
95 // Note: there are user-defined literal suffixes too, but perhaps having the custom suffix not part of the
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
96 // literal highlight actually makes it stand out more.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
97 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
98 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
99 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
100 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
101
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
102 const PREPROCESSOR = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
103 className: 'meta',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
104 begin: /#\s*[a-z]+\b/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
105 end: /$/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
106 keywords: { keyword:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
107 'if else elif endif define undef warning error line '
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
108 + 'pragma _Pragma ifdef ifndef include' },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
109 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
110 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
111 begin: /\\\n/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
112 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
113 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
114 hljs.inherit(STRINGS, { className: 'string' }),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
115 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
116 className: 'string',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
117 begin: /<.*?>/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
118 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
119 C_LINE_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
120 hljs.C_BLOCK_COMMENT_MODE
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
121 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
122 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
123
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
124 const TITLE_MODE = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
125 className: 'title',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
126 begin: regex.optional(NAMESPACE_RE) + hljs.IDENT_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
127 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
128 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
129
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
130 const FUNCTION_TITLE = regex.optional(NAMESPACE_RE) + hljs.IDENT_RE + '\\s*\\(';
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
131
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
132 // https://en.cppreference.com/w/cpp/keyword
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
133 const RESERVED_KEYWORDS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
134 'alignas',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
135 'alignof',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
136 'and',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
137 'and_eq',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
138 'asm',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
139 'atomic_cancel',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
140 'atomic_commit',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
141 'atomic_noexcept',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
142 'auto',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
143 'bitand',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
144 'bitor',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
145 'break',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
146 'case',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
147 'catch',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
148 'class',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
149 'co_await',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
150 'co_return',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
151 'co_yield',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
152 'compl',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
153 'concept',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
154 'const_cast|10',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
155 'consteval',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
156 'constexpr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
157 'constinit',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
158 'continue',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
159 'decltype',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
160 'default',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
161 'delete',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
162 'do',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
163 'dynamic_cast|10',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
164 'else',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
165 'enum',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
166 'explicit',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
167 'export',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
168 'extern',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
169 'false',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
170 'final',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
171 'for',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
172 'friend',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
173 'goto',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
174 'if',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
175 'import',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
176 'inline',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
177 'module',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
178 'mutable',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
179 'namespace',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
180 'new',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
181 'noexcept',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
182 'not',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
183 'not_eq',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
184 'nullptr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
185 'operator',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
186 'or',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
187 'or_eq',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
188 'override',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
189 'private',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
190 'protected',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
191 'public',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
192 'reflexpr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
193 'register',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
194 'reinterpret_cast|10',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
195 'requires',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
196 'return',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
197 'sizeof',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
198 'static_assert',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
199 'static_cast|10',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
200 'struct',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
201 'switch',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
202 'synchronized',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
203 'template',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
204 'this',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
205 'thread_local',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
206 'throw',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
207 'transaction_safe',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
208 'transaction_safe_dynamic',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
209 'true',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
210 'try',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
211 'typedef',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
212 'typeid',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
213 'typename',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
214 'union',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
215 'using',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
216 'virtual',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
217 'volatile',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
218 'while',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
219 'xor',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
220 'xor_eq'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
221 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
222
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
223 // https://en.cppreference.com/w/cpp/keyword
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
224 const RESERVED_TYPES = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
225 'bool',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
226 'char',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
227 'char16_t',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
228 'char32_t',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
229 'char8_t',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
230 'double',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
231 'float',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
232 'int',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
233 'long',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
234 'short',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
235 'void',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
236 'wchar_t',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
237 'unsigned',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
238 'signed',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
239 'const',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
240 'static'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
241 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
242
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
243 const TYPE_HINTS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
244 'any',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
245 'auto_ptr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
246 'barrier',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
247 'binary_semaphore',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
248 'bitset',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
249 'complex',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
250 'condition_variable',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
251 'condition_variable_any',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
252 'counting_semaphore',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
253 'deque',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
254 'false_type',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
255 'flat_map',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
256 'flat_set',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
257 'future',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
258 'imaginary',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
259 'initializer_list',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
260 'istringstream',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
261 'jthread',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
262 'latch',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
263 'lock_guard',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
264 'multimap',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
265 'multiset',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
266 'mutex',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
267 'optional',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
268 'ostringstream',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
269 'packaged_task',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
270 'pair',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
271 'promise',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
272 'priority_queue',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
273 'queue',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
274 'recursive_mutex',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
275 'recursive_timed_mutex',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
276 'scoped_lock',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
277 'set',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
278 'shared_future',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
279 'shared_lock',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
280 'shared_mutex',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
281 'shared_timed_mutex',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
282 'shared_ptr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
283 'stack',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
284 'string_view',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
285 'stringstream',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
286 'timed_mutex',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
287 'thread',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
288 'true_type',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
289 'tuple',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
290 'unique_lock',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
291 'unique_ptr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
292 'unordered_map',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
293 'unordered_multimap',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
294 'unordered_multiset',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
295 'unordered_set',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
296 'variant',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
297 'vector',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
298 'weak_ptr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
299 'wstring',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
300 'wstring_view'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
301 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
302
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
303 const FUNCTION_HINTS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
304 'abort',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
305 'abs',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
306 'acos',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
307 'apply',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
308 'as_const',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
309 'asin',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
310 'atan',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
311 'atan2',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
312 'calloc',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
313 'ceil',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
314 'cerr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
315 'cin',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
316 'clog',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
317 'cos',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
318 'cosh',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
319 'cout',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
320 'declval',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
321 'endl',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
322 'exchange',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
323 'exit',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
324 'exp',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
325 'fabs',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
326 'floor',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
327 'fmod',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
328 'forward',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
329 'fprintf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
330 'fputs',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
331 'free',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
332 'frexp',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
333 'fscanf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
334 'future',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
335 'invoke',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
336 'isalnum',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
337 'isalpha',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
338 'iscntrl',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
339 'isdigit',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
340 'isgraph',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
341 'islower',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
342 'isprint',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
343 'ispunct',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
344 'isspace',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
345 'isupper',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
346 'isxdigit',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
347 'labs',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
348 'launder',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
349 'ldexp',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
350 'log',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
351 'log10',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
352 'make_pair',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
353 'make_shared',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
354 'make_shared_for_overwrite',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
355 'make_tuple',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
356 'make_unique',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
357 'malloc',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
358 'memchr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
359 'memcmp',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
360 'memcpy',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
361 'memset',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
362 'modf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
363 'move',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
364 'pow',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
365 'printf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
366 'putchar',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
367 'puts',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
368 'realloc',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
369 'scanf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
370 'sin',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
371 'sinh',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
372 'snprintf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
373 'sprintf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
374 'sqrt',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
375 'sscanf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
376 'std',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
377 'stderr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
378 'stdin',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
379 'stdout',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
380 'strcat',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
381 'strchr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
382 'strcmp',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
383 'strcpy',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
384 'strcspn',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
385 'strlen',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
386 'strncat',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
387 'strncmp',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
388 'strncpy',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
389 'strpbrk',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
390 'strrchr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
391 'strspn',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
392 'strstr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
393 'swap',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
394 'tan',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
395 'tanh',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
396 'terminate',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
397 'to_underlying',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
398 'tolower',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
399 'toupper',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
400 'vfprintf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
401 'visit',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
402 'vprintf',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
403 'vsprintf'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
404 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
405
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
406 const LITERALS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
407 'NULL',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
408 'false',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
409 'nullopt',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
410 'nullptr',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
411 'true'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
412 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
413
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
414 // https://en.cppreference.com/w/cpp/keyword
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
415 const BUILT_IN = [ '_Pragma' ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
416
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
417 const CPP_KEYWORDS = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
418 type: RESERVED_TYPES,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
419 keyword: RESERVED_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
420 literal: LITERALS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
421 built_in: BUILT_IN,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
422 _type_hints: TYPE_HINTS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
423 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
424
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
425 const FUNCTION_DISPATCH = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
426 className: 'function.dispatch',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
427 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
428 keywords: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
429 // Only for relevance, not highlighting.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
430 _hint: FUNCTION_HINTS },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
431 begin: regex.concat(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
432 /\b/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
433 /(?!decltype)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
434 /(?!if)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
435 /(?!for)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
436 /(?!switch)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
437 /(?!while)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
438 hljs.IDENT_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
439 regex.lookahead(/(<[^<>]+>|)\s*\(/))
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
440 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
441
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
442 const EXPRESSION_CONTAINS = [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
443 FUNCTION_DISPATCH,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
444 PREPROCESSOR,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
445 CPP_PRIMITIVE_TYPES,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
446 C_LINE_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
447 hljs.C_BLOCK_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
448 NUMBERS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
449 STRINGS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
450 ];
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
451
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
452 const EXPRESSION_CONTEXT = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
453 // This mode covers expression context where we can't expect a function
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
454 // definition and shouldn't highlight anything that looks like one:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
455 // `return some()`, `else if()`, `(x*sum(1, 2))`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
456 variants: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
457 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
458 begin: /=/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
459 end: /;/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
460 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
461 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
462 begin: /\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
463 end: /\)/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
464 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
465 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
466 beginKeywords: 'new throw return else',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
467 end: /;/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
468 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
469 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
470 keywords: CPP_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
471 contains: EXPRESSION_CONTAINS.concat([
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
472 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
473 begin: /\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
474 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
475 keywords: CPP_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
476 contains: EXPRESSION_CONTAINS.concat([ 'self' ]),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
477 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
478 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
479 ]),
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
480 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
481 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
482
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
483 const FUNCTION_DECLARATION = {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
484 className: 'function',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
485 begin: '(' + FUNCTION_TYPE_RE + '[\\*&\\s]+)+' + FUNCTION_TITLE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
486 returnBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
487 end: /[{;=]/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
488 excludeEnd: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
489 keywords: CPP_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
490 illegal: /[^\w\s\*&:<>.]/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
491 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
492 { // to prevent it from being confused as the function title
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
493 begin: DECLTYPE_AUTO_RE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
494 keywords: CPP_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
495 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
496 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
497 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
498 begin: FUNCTION_TITLE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
499 returnBegin: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
500 contains: [ TITLE_MODE ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
501 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
502 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
503 // needed because we do not have look-behind on the below rule
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
504 // to prevent it from grabbing the final : in a :: pair
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
505 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
506 begin: /::/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
507 relevance: 0
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
508 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
509 // initializers
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
510 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
511 begin: /:/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
512 endsWithParent: true,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
513 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
514 STRINGS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
515 NUMBERS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
516 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
517 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
518 // allow for multiple declarations, e.g.:
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
519 // extern void f(int), g(char);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
520 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
521 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
522 match: /,/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
523 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
524 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
525 className: 'params',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
526 begin: /\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
527 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
528 keywords: CPP_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
529 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
530 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
531 C_LINE_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
532 hljs.C_BLOCK_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
533 STRINGS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
534 NUMBERS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
535 CPP_PRIMITIVE_TYPES,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
536 // Count matching parentheses.
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
537 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
538 begin: /\(/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
539 end: /\)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
540 keywords: CPP_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
541 relevance: 0,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
542 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
543 'self',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
544 C_LINE_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
545 hljs.C_BLOCK_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
546 STRINGS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
547 NUMBERS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
548 CPP_PRIMITIVE_TYPES
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
549 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
550 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
551 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
552 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
553 CPP_PRIMITIVE_TYPES,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
554 C_LINE_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
555 hljs.C_BLOCK_COMMENT_MODE,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
556 PREPROCESSOR
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
557 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
558 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
559
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
560 return {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
561 name: 'C++',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
562 aliases: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
563 'cc',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
564 'c++',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
565 'h++',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
566 'hpp',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
567 'hh',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
568 'hxx',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
569 'cxx'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
570 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
571 keywords: CPP_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
572 illegal: '</',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
573 classNameAliases: { 'function.dispatch': 'built_in' },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
574 contains: [].concat(
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
575 EXPRESSION_CONTEXT,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
576 FUNCTION_DECLARATION,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
577 FUNCTION_DISPATCH,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
578 EXPRESSION_CONTAINS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
579 [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
580 PREPROCESSOR,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
581 { // containers: ie, `vector <int> rooms (9);`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
582 begin: '\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array|tuple|optional|variant|function|flat_map|flat_set)\\s*<(?!<)',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
583 end: '>',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
584 keywords: CPP_KEYWORDS,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
585 contains: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
586 'self',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
587 CPP_PRIMITIVE_TYPES
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
588 ]
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
589 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
590 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
591 begin: hljs.IDENT_RE + '::',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
592 keywords: CPP_KEYWORDS
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
593 },
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
594 {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
595 match: [
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
596 // extra complexity to deal with `enum class` and `enum struct`
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
597 /\b(?:enum(?:\s+(?:class|struct))?|class|struct|union)/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
598 /\s+/,
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
599 /\w+/
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
600 ],
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
601 className: {
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
602 1: 'keyword',
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
603 3: 'title.class'
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
604 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
605 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
606 ])
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
607 };
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
608 }
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
609
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
610 return cpp;
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
611
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
612 })();
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
613
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
614 hljs.registerLanguage('cpp', hljsGrammar);
2db6253f355d [ThirdParty] Added highlight library for better readability on blog.
June Park <parkjune1995@gmail.com>
parents:
diff changeset
615 })();