Clean up optional rules in grammar - Mailing list pgsql-hackers

From Peter Eisentraut
Subject Clean up optional rules in grammar
Date
Msg-id e9eed669-e32d-6919-fed4-acc0daea857b@enterprisedb.com
Whole thread Raw
Responses Re: Clean up optional rules in grammar  (Heikki Linnakangas <hlinnaka@iki.fi>)
Re: Clean up optional rules in grammar  (Vik Fearing <vik@postgresfriends.org>)
Re: Clean up optional rules in grammar  (John Naylor <john.naylor@enterprisedb.com>)
List pgsql-hackers
There are a number of rules like this in the grammar:

opt_foo: FOO
         | /*EMPTY*/
;

And there are some like this:

opt_foo: FOO         {}
         | /*EMPTY*/  {}
;

and some even like this:

%type <node> opt_foo

opt_foo: FOO         { $$ = NULL; }
         | /*EMPTY*/  { $$ = NULL; }
;

(I mean here specifically those rules where FOO is a noise word and the 
actions are the same in each branch.)

It's obviously confusing to have multiple different styles to do the 
same thing.  And these extra rules (including the empty ones) also end 
up in the output, so they create more work down the line.

The attached patch cleans this up to make them all look like the first 
style.

Attachment

pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: Background writer and checkpointer in crash recovery
Next
From: "tsunakawa.takay@fujitsu.com"
Date:
Subject: RE: Disable WAL logging to speed up data loading