public void SkipWhitespaces_NewLines_ShouldStopOnNewLine(string code, int pos) { var lexer = new VBScriptLexer(code); lexer.SkipWhitespaces(); Assert.Equal(pos, lexer.Index); }
public void NextToken_ValidExtendedIdentifier_ReturnsIdentifier(string code) { var lexer = new VBScriptLexer(code); var token = Assert.IsType <ExtendedIdentifierToken>(lexer.NextToken()); Assert.Equal(code.Trim(), token.Name); }
public void NextToken_ValidDateLiteral_ReturnsDate(string code, string dt) { var lexer = new VBScriptLexer(code); var token = Assert.IsType <DateLiteralToken>(lexer.NextToken()); Assert.Equal(DateTime.Parse(dt), token.Value); }
public void NextToken_NewLines_ShouldReturnLineTerminationToken(string code) { var lexer = new VBScriptLexer(code); Assert.IsAssignableFrom <LineTerminationToken>(lexer.NextToken()); Assert.IsType <EofToken>(lexer.NextToken()); }
public void NextToken_ValidComment_ShouldReturnCommentToken(string code, string expected) { var lexer = new VBScriptLexer(code); var token = Assert.IsType <CommentToken>(lexer.NextToken()); Assert.Equal(expected, token !.Comment); }
public void SkipWhitespaces_Whitespaces_ShouldStopAtEnd(string code) { var lexer = new VBScriptLexer(code); lexer.SkipWhitespaces(); Assert.Equal(code.Length, lexer.Index); }
public void NextToken_ValidDecIntLiteral_ShouldReturnIntLiteralToken( string code, int expected) { var lexer = new VBScriptLexer(code); var token = Assert.IsType <DecIntegerLiteralToken>(lexer.NextToken()); Assert.Equal(expected, token !.Value); }
public void NextToken_ValidTwoCharPunctuation_ShourdReturnValidPunctuationToken( string code, Punctuation type) { var lexer = new VBScriptLexer(code); var token = Assert.IsType <PunctuationToken>(lexer.NextToken()); Assert.Equal(type, token.Type); }
public void NextToken_ValidFloatLiteral_ShouldReturnFloatLiteralToken( string code, double expected) { var lexer = new VBScriptLexer(code); var token = Assert.IsType <FloatLiteralToken>(lexer.NextToken()); Assert.Equal(expected, token !.Value, 9); }
public void NextToken_InvalidOctIntLiteral_ThrowsException(string code) { var lexer = new VBScriptLexer(code); var ex = Assert.Throws <VBSyntaxErrorException>(() => lexer.NextToken()); Assert.True(VBSyntaxErrorCode.ExpectedEndOfStatement == ex.Code || VBSyntaxErrorCode.SyntaxError == ex.Code); }
public void NextToken_InvalidStringLiteral_ThrowsUnterminatedStringConstant( string code, int line, int pos) { var lexer = new VBScriptLexer(code); var ex = Assert.Throws <VBSyntaxErrorException>(() => lexer.NextToken()); Assert.Equal(VBSyntaxErrorCode.UnterminatedStringConstant, ex.Code); Assert.Equal(line, ex.Line); Assert.Equal(pos, ex.Position); }
public void NextToken_ValidStringLiteral_ShouldReturnStringLiteralToken( string code, string expected, int start, int end) { var lexer = new VBScriptLexer(code); var token = Assert.IsType <StringLiteralToken>(lexer.NextToken()); Assert.Equal(expected, token !.Value); Assert.Equal(start, token.Start); Assert.Equal(end, token.End); }
public void NextToken_InvalidDecIntLiteral_ThrowsException( string code) { var lexer = new VBScriptLexer(code); var ex = Assert.Throws <VBSyntaxErrorException>(() => lexer.NextToken()); Assert.Equal(VBSyntaxErrorCode.ExpectedEndOfStatement, ex.Code); //Assert.Equal(line, ex.Line); //Assert.Equal(pos, ex.Position); }
public void NextToken_Whitespaces_ShouldReturnEofToken(string code) { var lexer = new VBScriptLexer(code); Assert.IsType <EofToken>(lexer.NextToken()); }
public void NextToken_NothingLiteral(string code) { var lexer = new VBScriptLexer(code); Assert.IsType <NothingLiteralToken>(lexer.NextToken()); }