summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-token.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-token.cpp')
-rw-r--r--source/slang/slang-token.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/source/slang/slang-token.cpp b/source/slang/slang-token.cpp
new file mode 100644
index 000000000..a8238eb6c
--- /dev/null
+++ b/source/slang/slang-token.cpp
@@ -0,0 +1,39 @@
+// slang-token.cpp
+#include "slang-token.h"
+
+#include <assert.h>
+
+namespace Slang {
+
+
+Name* Token::getName() const
+{
+ return getNameOrNull();
+}
+
+Name* Token::getNameOrNull() const
+{
+ switch (type)
+ {
+ default:
+ return nullptr;
+
+ case TokenType::Identifier:
+ return (Name*) ptrValue;
+ }
+}
+
+char const* TokenTypeToString(TokenType type)
+{
+ switch( type )
+ {
+ default:
+ SLANG_ASSERT(!"unexpected");
+ return "<uknown>";
+
+#define TOKEN(NAME, DESC) case TokenType::NAME: return DESC;
+#include "slang-token-defs.h"
+ }
+}
+
+} // namespace Slang