ShaderTools.Hlsl.Parser.HlslParser.ParseInterfaceType C# (CSharp) Method

ParseInterfaceType() private method

private ParseInterfaceType ( ) : InterfaceTypeSyntax
return InterfaceTypeSyntax
        private InterfaceTypeSyntax ParseInterfaceType()
        {
            var @interface = Match(SyntaxKind.InterfaceKeyword);
            var name = Match(SyntaxKind.IdentifierToken);

            var openBrace = Match(SyntaxKind.OpenBraceToken);

            var methods = new List<FunctionDeclarationSyntax>();
            while (Current.Kind != SyntaxKind.CloseBraceToken)
            {
                if (IsPossibleFunctionDeclaration())
                {
                    methods.Add(ParseFunctionDeclaration());
                }
                else
                {
                    var action = SkipBadTokens(
                        p => !p.IsPossibleFunctionDeclaration(),
                        p => p.IsTerminator(),
                        SyntaxKind.CloseBraceToken);
                    if (action == PostSkipAction.Abort)
                        break;
                }
            }

            var closeBrace = Match(SyntaxKind.CloseBraceToken);

            return new InterfaceTypeSyntax(@interface, name, openBrace, methods, closeBrace);
        }
HlslParser