From d4e72a93e13ab880b2f355fb7fb5d55cf0113c3d Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 9 Aug 2023 21:52:13 -0700 Subject: Support nested structs in function bodies. (#3078) --- source/slang/slang-parser.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'source/slang/slang-parser.cpp') diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp index 1836fd550..80d14795c 100644 --- a/source/slang/slang-parser.cpp +++ b/source/slang/slang-parser.cpp @@ -4581,6 +4581,25 @@ namespace Slang Token closingBraceToken; while (!AdvanceIfMatch(this, MatchedTokenType::CurlyBraces, &closingBraceToken)) { + if (LookAheadToken("struct")) + { + auto structDecl = ParseStruct(); + AddMember(scopeDecl, structDecl); + continue; + } + else if (AdvanceIf(this, "typedef")) + { + auto typeDefDecl = parseTypeDef(this, nullptr); + AddMember(scopeDecl, (Decl*)typeDefDecl); + continue; + } + else if (AdvanceIf(this, "typealias")) + { + auto typeDefDecl = parseTypeAliasDecl(this, nullptr); + AddMember(scopeDecl, (Decl*)typeDefDecl); + continue; + } + auto stmt = ParseStatement(); if(stmt) { -- cgit v1.2.3