summaryrefslogtreecommitdiffstats
path: root/source/compiler-core
diff options
context:
space:
mode:
authorEllie Hermaszewska <ellieh@nvidia.com>2023-08-26 01:42:34 +0800
committerGitHub <noreply@github.com>2023-08-25 10:42:34 -0700
commitef4c9f1f1c297f1a33be95795a7a7561e0cc3bde (patch)
tree9ea81689432040905772aeec447adad88f212e01 /source/compiler-core
parent036abc85ba1db9c8c06289f0a0492e9a95a228b9 (diff)
Initial version of spirv_asm block (#3151)
* Initial version of spirv_asm block * Correct indentation of parent instruction dumping * neater dumping for spirv_asm instructions * Add $$ DollarDollar token * Allow passing addresses to spirv_asm blocks * spirv OpUndef * String literals in spirv asm * OpName for spirv_asm ids * Correct failure in lower spirv_asm * correct position for spirv_asm idents * comment correct * several more tests for spirv_asm blocks * Fill out some unimplemented functions for spirv_asm expressions --------- Co-authored-by: Yong He <yonghe@outlook.com>
Diffstat (limited to 'source/compiler-core')
-rw-r--r--source/compiler-core/slang-lexer.cpp11
-rw-r--r--source/compiler-core/slang-token-defs.h1
2 files changed, 11 insertions, 1 deletions
diff --git a/source/compiler-core/slang-lexer.cpp b/source/compiler-core/slang-lexer.cpp
index 24cd3034b..5954dc668 100644
--- a/source/compiler-core/slang-lexer.cpp
+++ b/source/compiler-core/slang-lexer.cpp
@@ -1314,7 +1314,16 @@ namespace Slang
case '?': _advance(lexer); return TokenType::QuestionMark;
case '@': _advance(lexer); return TokenType::At;
- case '$': _advance(lexer); return TokenType::Dollar;
+ case '$':
+ {
+ _advance(lexer);
+ if(_peek(lexer) == '$')
+ {
+ _advance(lexer);
+ return TokenType::DollarDollar;
+ }
+ return TokenType::Dollar;
+ }
}
diff --git a/source/compiler-core/slang-token-defs.h b/source/compiler-core/slang-token-defs.h
index 45b4912e7..2a66359fe 100644
--- a/source/compiler-core/slang-token-defs.h
+++ b/source/compiler-core/slang-token-defs.h
@@ -85,6 +85,7 @@ PUNCTUATION(Colon, ":")
PUNCTUATION(RightArrow, "->")
PUNCTUATION(At, "@")
PUNCTUATION(Dollar, "$")
+PUNCTUATION(DollarDollar, "$$")
PUNCTUATION(Pound, "#")
PUNCTUATION(PoundPound, "##")