diff options
| author | Yong He <yonghe@outlook.com> | 2017-10-31 04:26:06 -0400 |
|---|---|---|
| committer | Yong He <yonghe@outlook.com> | 2017-10-31 04:26:06 -0400 |
| commit | 436c906a36fc7ff4f767d303cb5824995cd117d8 (patch) | |
| tree | 5bc263b475f738db48c6f19ac26cd869232a62d2 /source/slang/parser.cpp | |
| parent | 84f381cc180b3176d6a58da4085ee8470f246922 (diff) | |
Revert "work in-progress, add parsing for assoc type decls and member type expressions"
This reverts commit 84f381cc180b3176d6a58da4085ee8470f246922.
Diffstat (limited to 'source/slang/parser.cpp')
| -rw-r--r-- | source/slang/parser.cpp | 38 |
1 files changed, 3 insertions, 35 deletions
diff --git a/source/slang/parser.cpp b/source/slang/parser.cpp index 554eebc18..322f403e6 100644 --- a/source/slang/parser.cpp +++ b/source/slang/parser.cpp @@ -544,21 +544,6 @@ namespace Slang return typeDefDecl; } - RefPtr<RefObject> ParseAssocType(Parser * parser, void *) - { - RefPtr<AssocTypeDecl> assocTypeDecl = new AssocTypeDecl(); - - auto nameToken = parser->ReadToken(TokenType::Identifier); - assocTypeDecl->nameAndLoc = NameLoc(nameToken); - assocTypeDecl->loc = nameToken.loc; - if (parser->LookAheadToken(TokenType::Colon)) - { - auto type = parser->ParseTypeExp(); - assocTypeDecl->constraint = type; - } - return assocTypeDecl; - } - // Add a modifier to a list of modifiers being built static void AddModifier(RefPtr<Modifier>** ioModifierLink, RefPtr<Modifier> modifier) { @@ -1411,16 +1396,6 @@ namespace Slang return genericApp; } - static RefPtr<Expr> parseMemberType(Parser * parser, RefPtr<Expr> base) - { - RefPtr<MemberExpr> memberExpr = new MemberExpr(); - parser->ReadToken(TokenType::Dot); - parser->FillPosition(memberExpr.Ptr()); - memberExpr->BaseExpression = base; - memberExpr->name = expectIdentifier(parser).name; - return memberExpr; - } - // Parse option `[]` braces after a type expression, that indicate an array type static RefPtr<Expr> parsePostfixTypeSuffix( Parser* parser, @@ -1477,16 +1452,9 @@ namespace Slang RefPtr<Expr> typeExpr = basicType; - while (parser->LookAheadToken(TokenType::OpLess) || parser->LookAheadToken(TokenType::Dot)) + if (parser->LookAheadToken(TokenType::OpLess)) { - if (parser->LookAheadToken(TokenType::OpLess)) - { - typeExpr = parseGenericApp(parser, typeExpr); - } - else - { - typeExpr = parseMemberType(parser, typeExpr); - } + typeExpr = parseGenericApp(parser, typeExpr); } // GLSL allows `[]` directly in a type specifier @@ -4061,8 +4029,8 @@ namespace Slang // Add syntax for declaration keywords #define DECL(KEYWORD, CALLBACK) \ addBuiltinSyntax<Decl>(session, scope, #KEYWORD, &CALLBACK) + DECL(typedef, ParseTypeDef); - DECL(assoctype, ParseAssocType); DECL(cbuffer, parseHLSLCBufferDecl); DECL(tbuffer, parseHLSLTBufferDecl); DECL(__generic, ParseGenericDecl); |
