summaryrefslogtreecommitdiffstats
path: root/tools/slang-cpp-extractor/identifier-lookup.cpp
diff options
context:
space:
mode:
authorjsmall-nvidia <jsmall@nvidia.com>2022-03-15 10:45:24 -0400
committerGitHub <noreply@github.com>2022-03-15 10:45:24 -0400
commit8533dd2344d8be040a992a86f23e7cf696d59c4a (patch)
tree9121a5a5fa98eb4f5101421341142616ac703ba8 /tools/slang-cpp-extractor/identifier-lookup.cpp
parent06d04ab5e63ad43d7ad9de3fbc4c8ed64b13265a (diff)
C++ extractor callable support (#2159)
* #include an absolute path didn't work - because paths were taken to always be relative. * Split doc extractor such that can be used in C++ extractor. * Compiles. Update the stdlib docs. * Fix issue on release builds. * Add support for extracting documentation to C++ extractor. * Dump out markup. Make enum value backing type take tokens. * Node::Type -> Node::Kind * More improvements around Node::Type -> Node::Kind * Support for parsing callable types. * Fix issue params for callable, and default value for variable. * Add support for static. * Improve handling parsing of contained types. * Small improvements around template consumption. * Improve dumping with markup/static. * Small improvements around reflection. * Add more flexible handling of markers. Allow reflection without markers.
Diffstat (limited to 'tools/slang-cpp-extractor/identifier-lookup.cpp')
-rw-r--r--tools/slang-cpp-extractor/identifier-lookup.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/tools/slang-cpp-extractor/identifier-lookup.cpp b/tools/slang-cpp-extractor/identifier-lookup.cpp
index c7be75d82..db8ea2846 100644
--- a/tools/slang-cpp-extractor/identifier-lookup.cpp
+++ b/tools/slang-cpp-extractor/identifier-lookup.cpp
@@ -22,6 +22,11 @@ using namespace Slang;
IdentifierFlag::Keyword, /// Access
IdentifierFlag::Reflection, /// Reflected
IdentifierFlag::Reflection, /// Unreflected
+
+ IdentifierFlag::Keyword, /// virtual
+ 0, /// Calling convention
+ IdentifierFlag::Keyword, /// template
+ IdentifierFlag::Keyword, /// static
};
void IdentifierLookup::set(const UnownedStringSlice& name, IdentifierStyle style)
@@ -63,7 +68,7 @@ void IdentifierLookup::initDefault(const UnownedStringSlice& markPrefix)
// Some keywords
{
- const char* names[] = { "virtual", "continue", "if", "case", "break", "catch", "default", "delete", "do", "else", "for", "new", "goto", "return", "switch", "throw", "using", "while", "operator" };
+ const char* names[] = { "continue", "if", "case", "break", "catch", "default", "delete", "do", "else", "for", "new", "goto", "return", "switch", "throw", "using", "while", "operator", "explicit"};
set(names, SLANG_COUNT_OF(names), IdentifierStyle::Keyword);
}
@@ -88,6 +93,13 @@ void IdentifierLookup::initDefault(const UnownedStringSlice& markPrefix)
}
}
+ {
+ set("virtual", IdentifierStyle::Virtual);
+ set("SLANG_MCALL", IdentifierStyle::CallingConvention);
+ set("template", IdentifierStyle::Template);
+ set("static", IdentifierStyle::Static);
+ }
+
// Keywords which introduce types/scopes
{
const Pair pairs[] =