public void StringLiterals()
{
string source = "'this is a string'";
var token = new Lexer(source).NextToken();
Assert.AreEqual(TokenType.String, token.Type);
Assert.AreEqual("this is a string", token.Text);
source = "\"this is a string\"";
token = new Lexer(source).NextToken();
Assert.AreEqual(TokenType.String, token.Type);
Assert.AreEqual("this is a string", token.Text);
source = "\"this \n is \t a \r string \'\"";
token = new Lexer(source).NextToken();
Assert.AreEqual(TokenType.String, token.Type);
Assert.AreEqual("this \n is \t a \r string \'", token.Text);
source = "'this is a string"; // unfinished quote
try
{
new Lexer(source).NextToken();
Assert.Fail();
}
catch (ParseException){}
}