@@ -9945,8 +9945,12 @@ impl<'a> Parser<'a> {
99459945 // bigdecimal feature is enabled, and is otherwise a no-op
99469946 // (i.e., it returns the input string).
99479947 Token::Number(n, l) => ok_value(Value::Number(Self::parse(n, span.start)?, l)),
9948- Token::SingleQuotedString(ref s) => ok_value(Value::SingleQuotedString(s.to_string())),
9949- Token::DoubleQuotedString(ref s) => ok_value(Value::DoubleQuotedString(s.to_string())),
9948+ Token::SingleQuotedString(ref s) => ok_value(Value::SingleQuotedString(
9949+ self.maybe_concat_string_literal(s.to_string()),
9950+ )),
9951+ Token::DoubleQuotedString(ref s) => ok_value(Value::DoubleQuotedString(
9952+ self.maybe_concat_string_literal(s.to_string()),
9953+ )),
99509954 Token::TripleSingleQuotedString(ref s) => {
99519955 ok_value(Value::TripleSingleQuotedString(s.to_string()))
99529956 }
@@ -10016,6 +10020,18 @@ impl<'a> Parser<'a> {
1001610020 }
1001710021 }
1001810022
10023+ fn maybe_concat_string_literal(&mut self, mut str: String) -> String {
10024+ if self.dialect.supports_string_literal_concatenation() {
10025+ while let Token::SingleQuotedString(ref s) | Token::DoubleQuotedString(ref s) =
10026+ self.peek_token_ref().token
10027+ {
10028+ str.push_str(s.clone().as_str());
10029+ self.advance_token();
10030+ }
10031+ }
10032+ str
10033+ }
10034+
1001910035 /// Parse an unsigned numeric literal
1002010036 pub fn parse_number_value(&mut self) -> Result<ValueWithSpan, ParserError> {
1002110037 let value_wrapper = self.parse_value()?;
0 commit comments