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; }