All of lore.kernel.org
 help / color / mirror / Atom feed
From: Harald van Dijk <harald@gigawatt.nl>
To: Robert Elz <kre@munnari.OZ.AU>, Steffen Nurpmeso <steffen@sdaoden.eu>
Cc: DASH shell mailing list <dash@vger.kernel.org>
Subject: Re: $(()) pre/postfix bug
Date: Sat, 2 Jul 2022 09:20:30 +0100	[thread overview]
Message-ID: <cf3a9ac8-9cf8-ad57-bb33-2a5c5a93e532@gigawatt.nl> (raw)
In-Reply-To: <3508.1656721712@jacaranda.noi.kre.to>

On 02/07/2022 01:28, Robert Elz wrote:
>    | FreeBSD 13.1
>    | #|f-1301-x86:~$ sh -c '(i=10; echo $((++-+++i)))'
>    | sh: arithmetic expression: expecting primary: "++-+++i"
> 
> We used to do that as well (our arith parser is derived from
> theirs, which is derived from dash's with extensions) but no-one ever
> understood what a "primary" was (relates to internal implementation
> function names) so I altered the err msg.

While there is a function called primary, I actually think that may not 
be what the error message refers to, not directly. The grammar is 
supposed to be the C grammar with unsupported constructs removed, the C 
grammar defines a "primary-expression", and the error message in dash 
shows up where a straightforward parser directly based on the C grammar 
would result in an error where the grammar demands a primary-expression.

The function called primary ended up doing more than parse a 
primary-expression, but that does not change which cases result in that 
error.

Cheers,
Harald van Dijk

      reply	other threads:[~2022-07-02  8:20 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-01 23:14 $(()) pre/postfix bug Steffen Nurpmeso
2022-07-01 23:36 ` Steffen Nurpmeso
2022-07-02  0:28 ` Robert Elz
2022-07-02  8:20   ` Harald van Dijk [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cf3a9ac8-9cf8-ad57-bb33-2a5c5a93e532@gigawatt.nl \
    --to=harald@gigawatt.nl \
    --cc=dash@vger.kernel.org \
    --cc=kre@munnari.OZ.AU \
    --cc=steffen@sdaoden.eu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.