diff options
| author | Yong He <yonghe@outlook.com> | 2023-08-09 21:52:13 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-08-09 21:52:13 -0700 |
| commit | d4e72a93e13ab880b2f355fb7fb5d55cf0113c3d (patch) | |
| tree | e252c9164da2aa2632350abab9cb73d2a524533c /source/slang/slang-parser.cpp | |
| parent | f875d3f5ba9c1ddc6aa9a0960efd5ab27ae4e4c9 (diff) | |
Support nested structs in function bodies. (#3078)
Diffstat (limited to 'source/slang/slang-parser.cpp')
| -rw-r--r-- | source/slang/slang-parser.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
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) { |
