summaryrefslogtreecommitdiff
path: root/tests/examplefiles/cpp/functions.cpp.output
diff options
context:
space:
mode:
authoramitkummer <49096391+amitkummer@users.noreply.github.com>2021-02-27 18:32:41 +0200
committerGitHub <noreply@github.com>2021-02-27 17:32:41 +0100
commitc1a0d82acbe6fa026a1f6843fee00cc1df626549 (patch)
tree2f62310c9f3e6b674c2d8a39f700dbfa921181fb /tests/examplefiles/cpp/functions.cpp.output
parentad55974ce83b85dbb333ab57764415ab84169461 (diff)
downloadpygments-git-c1a0d82acbe6fa026a1f6843fee00cc1df626549.tar.gz
Fixes for C and C++ functions and namespaces (#1722)
* Fix lexing of function names This fixes #1561. Add a keywords state that matches inside and outside functions for keywords. Before this, when a keyword would appear the lexer would go to the statements state, in which functions were not matched. * Add tests for lexing of function names * Unbreak previous tests * Allow namespaced names in function statements Add a second identifiers regex that matces all the previous identifiers and also '::'. I took the decision to create a second identifiers regex with '::' inside, simply because using the old identifiers regex would hurt performance massively on every solution I tried to craft. * Add tests for namespaced names in functions * Unbreak previous tests * Add support for namespaces in namespace declarations Add a namespace state that is entered each time the namespace keyword is matched and lexes all name matches as namespaces. Cases this approach doesn't cover: * Namespaces in using declarations. * Namespaces that prefix names in random code. Unfortunately, in both of these cases the names before and after '::' are not always namespaces. * Add tests for namespace declartions * Unbreak previous tests * Tidy functions regex Remove group nesting that became unneeded after fc56ab8 (the last big refactor). * Remove f string usage I introduced by mistake
Diffstat (limited to 'tests/examplefiles/cpp/functions.cpp.output')
-rw-r--r--tests/examplefiles/cpp/functions.cpp.output1405
1 files changed, 1405 insertions, 0 deletions
diff --git a/tests/examplefiles/cpp/functions.cpp.output b/tests/examplefiles/cpp/functions.cpp.output
new file mode 100644
index 00000000..cec14f10
--- /dev/null
+++ b/tests/examplefiles/cpp/functions.cpp.output
@@ -0,0 +1,1405 @@
+'using' Keyword
+' ' Text
+'std' Name
+':' Operator
+':' Operator
+'numerical' Name
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+'*' Operator
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+'*' Operator
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+'*' Operator
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+'*' Operator
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'*' Operator
+'*' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'&' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'&' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+'&' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+'&' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'&' Operator
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'&' Operator
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'&' Operator
+'&' Operator
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'&' Operator
+'&' Operator
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'string' Name
+'&' Operator
+'&' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'string' Name
+'&' Operator
+'&' Operator
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'noexcept' Keyword
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'noexcept' Keyword
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'noexcept' Keyword
+' ' Text
+'const' Keyword
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'noexcept' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'&' Operator
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'&' Operator
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'&' Operator
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'&' Operator
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'&' Operator
+'&' Operator
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'&' Operator
+'&' Operator
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'&' Operator
+'&' Operator
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'&' Operator
+'&' Operator
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'&' Operator
+'&' Operator
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'&' Operator
+'&' Operator
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+'*' Operator
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'*' Operator
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+'*' Operator
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'explicit' Keyword
+' ' Text
+'const' Keyword
+' ' Text
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'char' Keyword.Type
+' ' Text
+'*' Operator
+' ' Text
+'str' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+'// Names with namespaces\n' Comment.Single
+
+'\n' Text
+
+'string' Name
+' ' Text
+'Type::contains' Name.Function
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'c' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'noexcept' Keyword
+';' Punctuation
+'\n' Text
+
+'string' Name
+' ' Text
+'Type::contains' Name.Function
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'c' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'noexcept' Keyword
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'c' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'noexcept' Keyword
+';' Punctuation
+'\n' Text
+
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'char' Keyword.Type
+' ' Text
+'c' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'noexcept' Keyword
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'std' Name
+':' Operator
+':' Operator
+'vector' Name
+'<' Operator
+'char' Keyword.Type
+'>' Operator
+' ' Text
+'chars' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'noexcept' Keyword
+';' Punctuation
+'\n' Text
+
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'std' Name
+':' Operator
+':' Operator
+'vector' Name
+'<' Operator
+'char' Keyword.Type
+'>' Operator
+' ' Text
+'chars' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'noexcept' Keyword
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'std::vector::contains' Name.Function
+'(' Punctuation
+'std' Name
+':' Operator
+':' Operator
+'vector' Name
+'<' Operator
+'char' Keyword.Type
+'>' Operator
+' ' Text
+'chars' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+';' Punctuation
+'\n' Text
+
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'std::vector::contains' Name.Function
+'(' Punctuation
+'std' Name
+':' Operator
+':' Operator
+'vector' Name
+'<' Operator
+'char' Keyword.Type
+'>' Operator
+' ' Text
+'chars' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'const' Keyword
+' ' Text
+'inline' Keyword.Reserved
+' ' Text
+'explicit' Keyword
+' ' Text
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'std::vector::contains' Name.Function
+'(' Punctuation
+'std' Name
+':' Operator
+':' Operator
+'vector' Name
+'<' Operator
+'char' Keyword.Type
+'>' Operator
+' ' Text
+'chars' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'const' Keyword
+' ' Text
+'inline' Keyword.Reserved
+' ' Text
+'explicit' Keyword
+' ' Text
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'std::vector::contains' Name.Function
+'(' Punctuation
+'std' Name
+':' Operator
+':' Operator
+'vector' Name
+'<' Operator
+'char' Keyword.Type
+'>' Operator
+' ' Text
+'chars' Name
+')' Punctuation
+' ' Text
+'const' Keyword
+';' Punctuation
+'\n' Text
+
+'\n' Text
+
+'// inside classes\n' Comment.Single
+
+'\n' Text
+
+'class' Keyword
+' ' Text
+'raz' Name.Class
+' ' Text
+'{' Punctuation
+'\n' Text
+
+' ' Text
+'const' Keyword
+' ' Text
+'virtual' Keyword
+' ' Text
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'contains' Name.Function
+'(' Punctuation
+'const' Keyword
+' ' Text
+'std' Name
+':' Operator
+':' Operator
+'string' Name
+' ' Text
+'str' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n' Text
+
+'\n' Text
+
+'// Make sure these are not functions:\n' Comment.Single
+
+'else' Keyword
+' ' Text
+'if' Keyword
+'(' Punctuation
+'flag' Name
+' ' Text
+'&' Operator
+'&' Operator
+' ' Text
+'func_call' Name
+'(' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n' Text
+
+'new' Keyword
+' ' Text
+'T' Name
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'const' Keyword
+' ' Text
+'operator' Keyword
+' ' Text
+'int' Keyword.Type
+'(' Punctuation
+')' Punctuation
+' ' Text
+'const' Keyword
+' ' Text
+'{' Punctuation
+'}' Punctuation
+' ' Text
+'// so int is lexed as type and not function.name\n' Comment.Single