summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-parser.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2022-11-04 09:36:23 -0700
committerGitHub <noreply@github.com>2022-11-04 09:36:23 -0700
commitc6e6b7a9177bf4f7fc2f05da36c5952979006d78 (patch)
tree6db694b5b4bf94ce48678c73921676f9d305614d /source/slang/slang-parser.cpp
parent015bde8d5a46f32979c00dbb1feb4b3d80729c44 (diff)
Higher order differentiation. (#2487)
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-parser.cpp')
-rw-r--r--source/slang/slang-parser.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp
index 980a1d0bc..78edd4deb 100644
--- a/source/slang/slang-parser.cpp
+++ b/source/slang/slang-parser.cpp
@@ -6430,6 +6430,16 @@ namespace Slang
return modifier;
}
+ static NodeBase* parseBuiltinRequirementModifier(Parser* parser, void* /*userData*/)
+ {
+ BuiltinRequirementModifier* modifier = parser->astBuilder->create<BuiltinRequirementModifier>();
+ parser->ReadToken(TokenType::LParent);
+ modifier->kind = BuiltinRequirementKind(StringToInt(parser->ReadToken(TokenType::IntegerLiteral).getContent()));
+ parser->ReadToken(TokenType::RParent);
+
+ return modifier;
+ }
+
static NodeBase* parseMagicTypeModifier(Parser* parser, void* /*userData*/)
{
MagicTypeModifier* modifier = parser->astBuilder->create<MagicTypeModifier>();
@@ -6618,6 +6628,8 @@ namespace Slang
_makeParseModifier("__cuda_sm_version", parseCUDASMVersionModifier),
_makeParseModifier("__builtin_type", parseBuiltinTypeModifier),
+ _makeParseModifier("__builtin_requirement", parseBuiltinRequirementModifier),
+
_makeParseModifier("__magic_type", parseMagicTypeModifier),
_makeParseModifier("__intrinsic_type", parseIntrinsicTypeModifier),
_makeParseModifier("__implicit_conversion", parseImplicitConversionModifier),