From 5f4d0d8dabae5e07945e201b2c5650b67a385649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Go=C5=9Blinowski?= <mateusz.goslinowski@gmail.com> Date: Thu, 9 Jan 2025 00:06:36 +0100 Subject: [PATCH] Allow multiline strings in JS FFI (#25633) (cherry picked from commit 14f8a7ec7ffd4368de84b6cc415a9a36ad396260) --- compiler/GHC/Parser.y | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y index 95306ef54ff..6ab6ec122b1 100644 --- a/compiler/GHC/Parser.y +++ b/compiler/GHC/Parser.y @@ -2148,6 +2148,9 @@ fspec :: { Located (TokDcolon : STRING var '::' sigtype { sLL $1 $> (epUniTok $3 ,(L (getLoc $1) (getStringLiteral $1), $2, $4)) } + | STRING_MULTI var '::' sigtype { sLL $1 $> (epUniTok $3 + ,(L (getLoc $1) + (getStringMultiLiteral $1), $2, $4)) } | var '::' sigtype { sLL $1 $> (epUniTok $2 ,(noLoc (StringLiteral NoSourceText nilFS Nothing), $1, $3)) } -- if the entity string is missing, it defaults to the empty string; @@ -4247,6 +4250,7 @@ getINCOHERENT_PRAGs (L _ (ITincoherent_prag src)) = src getCTYPEs (L _ (ITctype src)) = src getStringLiteral l = StringLiteral (getSTRINGs l) (getSTRING l) Nothing +getStringMultiLiteral l = StringLiteral (getSTRINGMULTIs l) (getSTRINGMULTI l) Nothing isUnicode :: Located Token -> Bool isUnicode (L _ (ITforall iu)) = iu == UnicodeSyntax -- GitLab