summaryrefslogtreecommitdiffstats
path: root/source/slang/parser.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2017-10-31 04:26:06 -0400
committerYong He <yonghe@outlook.com>2017-10-31 04:26:06 -0400
commit436c906a36fc7ff4f767d303cb5824995cd117d8 (patch)
tree5bc263b475f738db48c6f19ac26cd869232a62d2 /source/slang/parser.cpp
parent84f381cc180b3176d6a58da4085ee8470f246922 (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.cpp38
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);