diff --git a/src/lexer.rs b/src/lexer.rs index c6c4ae2..17f5c2e 100644 --- a/src/lexer.rs +++ b/src/lexer.rs @@ -54,7 +54,7 @@ pub enum Token<'a> { IntegerNum(i64), #[regex("[0-9]+\\.[0-9]+", |lex| lex.slice().parse())] FloatNum(f64), - #[regex("\"[A-Za-z0-9 ]*\"", |lex| Cow::Borrowed(&lex.slice()[1..lex.slice().len()-1]))] + #[regex(r#""(?:[^"]|\\")*""#, |lex| Cow::Borrowed(&lex.slice()[1..lex.slice().len()-1]))] String(Cow<'a, str>), // Operators diff --git a/tests/expressions.rs b/tests/expressions.rs index eb82062..b6d54e1 100644 --- a/tests/expressions.rs +++ b/tests/expressions.rs @@ -21,6 +21,7 @@ fn basic_math_expression() -> Result<()> { #[test] fn basic_string_expression() -> Result<()> { + assert_render_template_eq("{{ \"hello, world!\" }}", "hello, world!")?; assert_render_template_eq("{{ \"123\" * 3 }}", "123123123")?; assert_render_template_eq("{{ \"abc\" * 0 }}", "")?; assert_render_template_eq("{{ \"hello\" + \" \" + \"world\"}}", "hello world")?;