public void LexEndOfInputToken(string input) { // Arrange var syntaxFactory = new SyntaxFactory(); var lexer = new CommandLineLexer(syntaxFactory); // Act var token = lexer.Lex(input).Last(); // Assert Assert.Equal(SyntaxKind.EndOfInputToken, token.Kind); }
public void LexNegativeNumberToken(string input, string value) { // Arrange var syntaxFactory = new SyntaxFactory(); var lexer = new CommandLineLexer(syntaxFactory); // Act var token = lexer.Lex(input).First(); // Assert Assert.Equal(value, token.StringValue); Assert.Equal(SyntaxKind.LiteralToken, token.Kind); }
public void LexSpecialToken(string input, string value, SyntaxKind kind) { // Arrange var syntaxFactory = new SyntaxFactory(); var lexer = new CommandLineLexer(syntaxFactory); // Act var token = lexer.Lex(input).First(); // Assert Assert.Equal(value, token.StringValue); Assert.Equal(kind, token.Kind); }
public void LexTokensPair(string input, string firstValue, SyntaxKind firstKind, string secondValue, SyntaxKind secondKind) { // Arrange var syntaxFactory = new SyntaxFactory(); var lexer = new CommandLineLexer(syntaxFactory); // Act var tokens = lexer.Lex(input).ToArray(); var first = tokens[0]; var second = tokens[1]; // Assert Assert.Equal(firstValue, first.StringValue); Assert.Equal(firstKind, first.Kind); Assert.Equal(secondValue, second.StringValue); Assert.Equal(secondKind, second.Kind); }
public void LexTokenTrivia(string input, int leading, int trailing) { // Arrange var syntaxFactory = new SyntaxFactory(); var lexer = new CommandLineLexer(syntaxFactory); // Act var token = lexer.Lex(input).First(); // Assert if (leading > 0) { Assert.True(token.HasLeadingTrivia); Assert.Equal(leading, token.LeadingTrivia.Span.Length); } if (trailing > 0) { Assert.True(token.HasTrailingTrivia); Assert.Equal(trailing, token.TrailingTrivia.Span.Length); } }