diff options
| -rw-r--r-- | source/slang/slang-parser.cpp | 34 |
1 files changed, 18 insertions, 16 deletions
diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp index 97777c9fe..b7828999a 100644 --- a/source/slang/slang-parser.cpp +++ b/source/slang/slang-parser.cpp @@ -841,22 +841,6 @@ bool AdvanceIfMatch(Parser* parser, MatchedTokenType type) return AdvanceIfMatch(parser, type, &ignored); } -NodeBase* parseTypeDef(Parser* parser, void* /*userData*/) -{ - TypeDefDecl* typeDefDecl = parser->astBuilder->create<TypeDefDecl>(); - - // TODO(tfoley): parse an actual declarator - auto type = parser->ParseTypeExp(); - - auto nameToken = parser->ReadToken(TokenType::Identifier); - typeDefDecl->loc = nameToken.loc; - - typeDefDecl->nameAndLoc = NameLoc(nameToken); - typeDefDecl->type = type; - - return typeDefDecl; -} - // Add a modifier to a list of modifiers being built static void AddModifier(Modifier*** ioModifierLink, Modifier* modifier) { @@ -4349,6 +4333,24 @@ static NodeBase* parseFuncDecl(Parser* parser, void* /*userData*/) }); } +NodeBase* parseTypeDef(Parser* parser, void* /*userData*/) +{ + TypeDefDecl* typeDefDecl = parser->astBuilder->create<TypeDefDecl>(); + + // TODO(tfoley): parse an actual declarator + auto type = parser->ParseTypeExp(); + + auto nameToken = parser->ReadToken(TokenType::Identifier); + typeDefDecl->loc = nameToken.loc; + + typeDefDecl->nameAndLoc = NameLoc(nameToken); + typeDefDecl->type = type; + + AdvanceIf(parser, TokenType::Semicolon); + + return typeDefDecl; +} + static NodeBase* parseTypeAliasDecl(Parser* parser, void* /*userData*/) { TypeAliasDecl* decl = parser->astBuilder->create<TypeAliasDecl>(); |
