public GenericNameExpression(Statement statement, SimpleName left, GenericArguments arguments,
                              SourceData sourceData)
     : base(statement, left, sourceData)
 {
     Arguments = arguments;
 }
        private GenericArguments ParseFullNameGenericArgs()
        {
            //if (EatOptional(Token.LeftAngleBracket))
            //{
            //    while (true)
            //    {
            //        TokenInfo token = Tokenizer.PeekToken();

            //        switch(token.Token)
            //        {
            //            c
            //        }

            //        EatOptional(Token.RightAngleBracket);
            //    }
            //}

            var args = new GenericArguments();

            bool end = false;
            bool expectArg = true;

            TokenInfo token = Tokenizer.PeekToken();

            if (token.Is(Token.RightParenthesis))
            {
                GetNextToken();
                goto end;
            }

            while (true)
            {
                if (expectArg)
                {
                    Expression expr = ParseExpression();

                    if (expr != null)
                        expectArg = false;
                    else
                        goto error;

                    token = tokenizer.PeekToken();
                    end = token.Is(Token.RightParenthesis);

                    if (end)
                        goto end;
                }
                else
                {
                    bool ateComma = EatOptional(Token.Comma);

                    if (ateComma)
                        expectArg = true;
                    else
                        goto error;

                    token = tokenizer.PeekToken();
                    end = token.Is(Token.RightParenthesis);

                    if (end)
                        goto end;
                }

                token = Tokenizer.PeekToken();
            }

            error:
            if (expectArg) token = GetLastToken();

            Report.AddItem(VBErrors.CommaOrValidExpressionContinuationExpected, SourceFile, token.GetSpan(token),
                           statementSymbols);
            EatToEOL();

            end:
            //token = Tokenizer.PeekToken();

            //if (!end && token.Is(Token.EOL))
            //{
            //    Report.Add(VBErrors.EndOfStatementExpected, SourceFile, token.GetSpan(token), statementSymbols);
            //}

            //EatToEOL();

            return args;
        }