@@ -9914,8 +9914,12 @@ impl<'a> Parser<'a> {
99149914 // bigdecimal feature is enabled, and is otherwise a no-op
99159915 // (i.e., it returns the input string).
99169916 Token::Number(n, l) => ok_value(Value::Number(Self::parse(n, span.start)?, l)),
9917- Token::SingleQuotedString(ref s) => ok_value(Value::SingleQuotedString(s.to_string())),
9918- Token::DoubleQuotedString(ref s) => ok_value(Value::DoubleQuotedString(s.to_string())),
9917+ Token::SingleQuotedString(ref s) => ok_value(Value::SingleQuotedString(
9918+ self.maybe_concat_string_literal(s.to_string()),
9919+ )),
9920+ Token::DoubleQuotedString(ref s) => ok_value(Value::DoubleQuotedString(
9921+ self.maybe_concat_string_literal(s.to_string()),
9922+ )),
99199923 Token::TripleSingleQuotedString(ref s) => {
99209924 ok_value(Value::TripleSingleQuotedString(s.to_string()))
99219925 }
@@ -9985,6 +9989,18 @@ impl<'a> Parser<'a> {
99859989 }
99869990 }
99879991
9992+ fn maybe_concat_string_literal(&mut self, mut str: String) -> String {
9993+ if self.dialect.supports_string_literal_concatenation() {
9994+ while let Token::SingleQuotedString(ref s) | Token::DoubleQuotedString(ref s) =
9995+ self.peek_token_ref().token
9996+ {
9997+ str.push_str(s.clone().as_str());
9998+ self.advance_token();
9999+ }
10000+ }
10001+ str
10002+ }
10003+
998810004 /// Parse an unsigned numeric literal
998910005 pub fn parse_number_value(&mut self) -> Result<ValueWithSpan, ParserError> {
999010006 let value_wrapper = self.parse_value()?;
0 commit comments