From ef4c9f1f1c297f1a33be95795a7a7561e0cc3bde Mon Sep 17 00:00:00 2001 From: Ellie Hermaszewska Date: Sat, 26 Aug 2023 01:42:34 +0800 Subject: 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 --- source/compiler-core/slang-lexer.cpp | 11 ++++++++++- source/compiler-core/slang-token-defs.h | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'source/compiler-core') 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, "##") -- cgit v1.2.3