summaryrefslogtreecommitdiffstats
path: root/tools/slang-cpp-extractor/identifier-lookup.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/slang-cpp-extractor/identifier-lookup.cpp')
-rw-r--r--tools/slang-cpp-extractor/identifier-lookup.cpp177
1 files changed, 0 insertions, 177 deletions
diff --git a/tools/slang-cpp-extractor/identifier-lookup.cpp b/tools/slang-cpp-extractor/identifier-lookup.cpp
deleted file mode 100644
index c7255aa1f..000000000
--- a/tools/slang-cpp-extractor/identifier-lookup.cpp
+++ /dev/null
@@ -1,177 +0,0 @@
-#include "identifier-lookup.h"
-
-namespace CppExtract
-{
-using namespace Slang;
-
-/* static */ const IdentifierFlags
- IdentifierLookup::kIdentifierFlags[Index(IdentifierStyle::CountOf)] = {
- 0, /// None
- 0, /// Identifier
- 0, /// Declare type
- 0, /// Type set
- IdentifierFlag::Keyword, /// TypeModifier
- IdentifierFlag::Keyword, /// Keyword
-
- IdentifierFlag::Keyword | IdentifierFlag::StartScope | IdentifierFlag::ClassLike, /// Class
- IdentifierFlag::Keyword | IdentifierFlag::StartScope | IdentifierFlag::ClassLike, /// Struct
- IdentifierFlag::Keyword | IdentifierFlag::StartScope, /// Namespace
- IdentifierFlag::Keyword | IdentifierFlag::StartScope, /// Enum
-
- IdentifierFlag::Keyword, /// Typedef
-
- IdentifierFlag::Keyword, /// Access
- IdentifierFlag::Reflection, /// Reflected
- IdentifierFlag::Reflection, /// Unreflected
-
- IdentifierFlag::Keyword, /// virtual
- 0, /// Calling convention
- IdentifierFlag::Keyword, /// template
- IdentifierFlag::Keyword, /// static
-
- IdentifierFlag::Keyword, /// unsigned/signed
-
- IdentifierFlag::Keyword, /// extern
-
- 0, /// Callable misc
- 0, /// IntegerType int, short, char, long
-
- IdentifierFlag::Keyword, /// default
-};
-
-void IdentifierLookup::set(const UnownedStringSlice& name, IdentifierStyle style)
-{
- StringSlicePool::Handle handle;
- if (m_pool.findOrAdd(name, handle))
- {
- // Add the extra flags
- m_styles[Index(handle)] = style;
- }
- else
- {
- Index index = Index(handle);
- SLANG_ASSERT(index == m_styles.getCount());
- m_styles.add(style);
- }
-}
-
-void IdentifierLookup::set(const char* const* names, size_t namesCount, IdentifierStyle style)
-{
- for (size_t i = 0; i < namesCount; ++i)
- {
- set(UnownedStringSlice(names[i]), style);
- }
-}
-
-void IdentifierLookup::set(const Pair* pairs, Index pairsCount)
-{
- for (Index i = 0; i < pairsCount; ++i)
- {
- const auto& pair = pairs[i];
- set(UnownedStringSlice(pair.name), pair.style);
- }
-}
-
-void IdentifierLookup::initDefault(const UnownedStringSlice& markPrefix)
-{
- reset();
-
- // Some keywords
- {
- const char* names[] = {
- "continue",
- "if",
- "case",
- "break",
- "catch",
- "delete",
- "do",
- "else",
- "for",
- "new",
- "goto",
- "return",
- "switch",
- "throw",
- "using",
- "while",
- "operator",
- "explicit"};
- set(names, SLANG_COUNT_OF(names), IdentifierStyle::Keyword);
- }
-
- // Type modifier keywords
- {
- const char* names[] = {"const", "volatile"};
- set(names, SLANG_COUNT_OF(names), IdentifierStyle::TypeModifier);
- }
-
- // Special markers
- {
- const char* names[] = {"PRE_DECLARE", "TYPE_SET", "REFLECTED", "UNREFLECTED"};
- const IdentifierStyle styles[] = {
- IdentifierStyle::PreDeclare,
- IdentifierStyle::TypeSet,
- IdentifierStyle::Reflected,
- IdentifierStyle::Unreflected};
- SLANG_COMPILE_TIME_ASSERT(SLANG_COUNT_OF(names) == SLANG_COUNT_OF(styles));
-
- StringBuilder buf;
- for (Index i = 0; i < SLANG_COUNT_OF(names); ++i)
- {
- buf.clear();
- buf << markPrefix << names[i];
- set(buf.getUnownedSlice(), styles[i]);
- }
- }
-
- {
- set("virtual", IdentifierStyle::Virtual);
-
- set("template", IdentifierStyle::Template);
- set("static", IdentifierStyle::Static);
- set("extern", IdentifierStyle::Extern);
- set("default", IdentifierStyle::Default);
- }
-
- {
- const char* names[] = {"char", "short", "int", "long"};
- set(names, SLANG_COUNT_OF(names), IdentifierStyle::IntegerType);
- }
-
- {
- const char* names[] = {"SLANG_MCALL"};
- set(names, SLANG_COUNT_OF(names), IdentifierStyle::CallingConvention);
- }
-
- {
- const char* names[] = {"SLANG_NO_THROW", "inline"};
- set(names, SLANG_COUNT_OF(names), IdentifierStyle::CallableMisc);
- }
-
- // Keywords which introduce types/scopes
- {
- const Pair pairs[] = {
- {"struct", IdentifierStyle::Struct},
- {"class", IdentifierStyle::Class},
- {"namespace", IdentifierStyle::Namespace},
- {"enum", IdentifierStyle::Enum},
- {"typedef", IdentifierStyle::TypeDef},
- };
-
- set(pairs, SLANG_COUNT_OF(pairs));
- }
-
- // Keywords that control access
- {
- const char* names[] = {"private", "protected", "public"};
- set(names, SLANG_COUNT_OF(names), IdentifierStyle::Access);
- }
- {
- const char* names[] = {"signed", "unsigned"};
-
- set(names, SLANG_COUNT_OF(names), IdentifierStyle::IntegerModifier);
- }
-}
-
-} // namespace CppExtract