Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.compilers > #2144

Re: Why do some versions of bison require {} here?

From Kaz Kylheku <157-073-9834@kylheku.com>
Newsgroups comp.compilers
Subject Re: Why do some versions of bison require {} here?
Date 2019-01-02 19:29 +0000
Organization Aioe.org NNTP Server
Message-ID <19-01-002@comp.compilers> (permalink)
References <19-01-001@comp.compilers>

Show all headers | View raw


On 2019-01-01, Philipp Klaus Krause <pkk@spth.de> wrote:
>    | addressmod
>         {
>         }
>    ;
>
> for their yacc / bison to accept the rule.
> What is happening here? Why is the {} required? Why only on the last
> rule, while the first one is okay?
>
> Philipp
> [Adding the empty action forces bison to reduce the rule rather than just
> shifting and saving state for later.  I couldn't guess why that would matter
> in this case.  Are there precedence rules?  With your change does the grammar compile
> cleanly or does it have conflicts? -John]

What, John? Shouldn't a missing action be equivalent to { $$ = $1 }?

Here, found it in Bison's manual, "3.4.6 Actions":

  If you don’t specify an action for a rule, Bison supplies
  a default: $$ = $1.

That should imply that there in fact is an action that requires a
reduction. Unless Bison handles this case specially without a reduce
somehow?

--
TXR Programming Lanuage: http://nongnu.org/txr
Music DIY Mailing List:  http://www.kylheku.com/diy
ADA MP-1 Mailing List:   http://www.kylheku.com/mp1
[Oops, you're quite right.  It's been a decade since I revised
flex+bison and the brain cells are tired.  Now I'm just baffled
unless there is some syntax error that the extra rule is somehow
fixing. -John]

Back to comp.compilers | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Why do some versions of bison require {} here? Philipp Klaus Krause <pkk@spth.de> - 2019-01-01 10:55 +0100
  Re: Why do some versions of bison require {} here? Kaz Kylheku <157-073-9834@kylheku.com> - 2019-01-02 19:29 +0000
  Re: Why do some versions of bison require {} here? Philipp Klaus Krause <pkk@spth.de> - 2019-01-03 09:15 +0100
    Re: Why do some versions of bison require {} here? Kaz Kylheku <157-073-9834@kylheku.com> - 2019-01-04 03:02 +0000

csiph-web