public Parser(string text) { var tokens = new List <SyntaxToken>(); var lexer = new Lexer(text); SyntaxToken token; do { token = lexer.NewToken(); if (token.Kind != SyntaxKind.WhiteSpaceToken && token.Kind != SyntaxKind.BadToken) { tokens.Add(token); } } while (token.Kind != SyntaxKind.EndOfFileToken); _tokens = tokens.ToArray(); _diagnostics.AddRange(lexer.Diagnostic); }