From j@g@nmn2 @end|ng |rom gm@||@com  Mon Dec  2 16:56:55 2024
From: j@g@nmn2 @end|ng |rom gm@||@com (Mikael Jagan)
Date: Mon, 2 Dec 2024 10:56:55 -0500
Subject: [Rd] 'else' on new line not parsed at top level as part of
 preceding 'if'
Message-ID: <2d467cfb-3a83-4bb7-ae73-ac4d1d8d0b70@gmail.com>

I wonder if there is room for improvement here:

     > str2lang("if (a) b1    else b0")
     if (a) b1 else b0
     > str2lang("if (a) b1 \n else b0")
     Error in str2lang("if (a) b1 \n else b0") : <text>:2:2: unexpected 'else'
     1: if (a) b1
     2:  else
         ^

It only occurs at top level.  When the parser knows that it needs to
"keep reading", e.g., because the call to 'if' is enclosed in braces,
it detects the 'else':

     > str2lang("{ if (a) b1    else b0 }")
     {
         if (a)
             b1
         else b0
     }
     > str2lang("{ if (a) b1 \n else b0 }")
     {
         if (a)
             b1
         else b0
     }

If people agree that the above is a deficiency/bug then I could create a
formal bug report.  Then others or I could start thinking about a patch
for the parser.

Apologies if this issue has been seen and discussed before (most likely
by people like me in the habit of dropping braces in calls to 'if' where
not strictly necessary).

Mikael



[Rd] 'else' on new line not parsed at top level as part of preceding 'if'
Mikael Jagan