Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kcmBn-0005K2-5x for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Nov 2020 09:13:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kcmBl-0008KM-4x for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Nov 2020 09:13:13 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kcmBk-0008Gc-Cg for pgsql-hackers@lists.postgresql.org; Wed, 11 Nov 2020 09:13:12 +0000 Received: from [64.147.123.22] (helo=wforward3-smtp.messagingengine.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kcmBe-0007gg-SS for pgsql-hackers@postgresql.org; Wed, 11 Nov 2020 09:13:11 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailforward.west.internal (Postfix) with ESMTP id 299DE193D for ; Wed, 11 Nov 2020 04:12:54 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Wed, 11 Nov 2020 04:12:54 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=lCfBORhCFDWcdb8rzKW2al38JKOyn J3D0tS9FASQ+PA=; b=ekQS0kLGXlDarUr0JbTB0yA7DbnplwpvJMEUKFvPkCTyC pi42UtxoQnYf/qd9WilxtAumA0nBc55m4H4FfV8y1dmPpTRZwr12EmhnlrZ03Ogi aasgRWOOnnXN6pWd9zlLzx/EHHIbez4lmkADo7OvrU1G1y/CHpotCSvFzEb4vSd+ oNHG8qShtyCQWv7HFWbaKj+jr8nM571P9SQOqFYGeOGSyuk3fuvr9k4bMyQgglyr F791X44MxWtWpcTiGcjUmaYjAbDZU0sZOVdpckXN5CO7diM5AEtCcW+mWchxfMln VD6cajhx4nOkDe/Z7vPeAVcbBVpu2KgnwcHzQcMNw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedujedrudduledguddtlecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhephffuvfhokffffgggtgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepvdehkedvgeegleeuheejgfekueeggeejgfefgeegtdevheevgfdtfefhgfdt gfdvnecukfhppeekjedrudejjedrjeehrdelgeenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthesvghn thgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Received: from april.pezone.net (p57b14b5e.dip0.t-ipconnect.de [87.177.75.94]) by mail.messagingengine.com (Postfix) with ESMTPA id D00C23280059 for ; Wed, 11 Nov 2020 04:12:52 -0500 (EST) From: Peter Eisentraut Subject: Clean up optional rules in grammar To: pgsql-hackers Organization: EnterpriseDB Message-ID: Date: Wed, 11 Nov 2020 10:12:50 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------EC4F4230ECAFBBB090C00C3C" Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 64.147.123.22 (deferred) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------EC4F4230ECAFBBB090C00C3C Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit 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 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. --------------EC4F4230ECAFBBB090C00C3C Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Clean-up-optional-rules-in-grammar.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Clean-up-optional-rules-in-grammar.patch" RnJvbSA0OWNhNDIzYjEzNmU2NWQxNjJlZGUxYjkwNjkzMGUyMmRlNGU1ZjhlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogV2VkLCAxMSBOb3YgMjAyMCAxMDowNDo0OCArMDEwMApTdWJqZWN0 OiBbUEFUQ0hdIENsZWFuIHVwIG9wdGlvbmFsIHJ1bGVzIGluIGdyYW1tYXIKClZhcmlvdXMg cnVsZXMgZm9yIG9wdGlvbmFsIGtleXdvcmRzIGNvbnRhaW5lZCB1bm5lY2Vzc2FyeSBydWxl cyBhbmQKdHlwZSBkZWNsYXJhdGlvbnMuICBSZW1vdmUgdGhvc2UsIHRodXMgbWFraW5nIHRo ZSBvdXRwdXQgYSB0aW55IGJpdApzbWFsbGVyLgotLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgfCA4MCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCA0MCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCA5NWUyNTY4ODNiLi4zOThiYTljN2QzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK QEAgLTM4OSw3ICszODksNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCU9w dFRhYmxlRWxlbWVudExpc3QgVGFibGVFbGVtZW50TGlzdCBPcHRJbmhlcml0IGRlZmluaXRp b24KIAkJCQlPcHRUeXBlZFRhYmxlRWxlbWVudExpc3QgVHlwZWRUYWJsZUVsZW1lbnRMaXN0 CiAJCQkJcmVsb3B0aW9ucyBvcHRfcmVsb3B0aW9ucwotCQkJCU9wdFdpdGggZGlzdGluY3Rf Y2xhdXNlIG9wdF9hbGxfY2xhdXNlIG9wdF9kZWZpbml0aW9uIGZ1bmNfYXJncyBmdW5jX2Fy Z3NfbGlzdAorCQkJCU9wdFdpdGggZGlzdGluY3RfY2xhdXNlIG9wdF9kZWZpbml0aW9uIGZ1 bmNfYXJncyBmdW5jX2FyZ3NfbGlzdAogCQkJCWZ1bmNfYXJnc193aXRoX2RlZmF1bHRzIGZ1 bmNfYXJnc193aXRoX2RlZmF1bHRzX2xpc3QKIAkJCQlhZ2dyX2FyZ3MgYWdncl9hcmdzX2xp c3QKIAkJCQlmdW5jX2FzIGNyZWF0ZWZ1bmNfb3B0X2xpc3QgYWx0ZXJmdW5jX29wdF9saXN0 CkBAIC00NDYsNyArNDQ2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBl IDxsaXN0Pglsb2NrZWRfcmVsc19saXN0CiAldHlwZSA8Ym9vbGVhbj4JYWxsX29yX2Rpc3Rp bmN0CiAKLSV0eXBlIDxub2RlPglqb2luX291dGVyIGpvaW5fcXVhbAorJXR5cGUgPG5vZGU+ CWpvaW5fcXVhbAogJXR5cGUgPGp0eXBlPglqb2luX3R5cGUKIAogJXR5cGUgPGxpc3Q+CWV4 dHJhY3RfbGlzdCBvdmVybGF5X2xpc3QgcG9zaXRpb25fbGlzdApAQCAtNDYxLDcgKzQ2MSw3 IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAKICV0eXBlIDxib29sZWFuPiBjb3B5 X2Zyb20gb3B0X3Byb2dyYW0KIAotJXR5cGUgPGl2YWw+CW9wdF9jb2x1bW4gZXZlbnQgY3Vy c29yX29wdGlvbnMgb3B0X2hvbGQgb3B0X3NldF9kYXRhCisldHlwZSA8aXZhbD4JZXZlbnQg Y3Vyc29yX29wdGlvbnMgb3B0X2hvbGQgb3B0X3NldF9kYXRhCiAldHlwZSA8b2JqdHlwZT4J b2JqZWN0X3R5cGVfYW55X25hbWUgb2JqZWN0X3R5cGVfbmFtZSBvYmplY3RfdHlwZV9uYW1l X29uX2FueV9uYW1lCiAJCQkJZHJvcF90eXBlX25hbWUKIApAQCAtOTkyLDkgKzk5Miw5IEBA IENyZWF0ZVJvbGVTdG10OgogCQk7CiAKIAotb3B0X3dpdGg6CVdJVEgJCQkJCQkJCQl7fQot CQkJfCBXSVRIX0xBCQkJCQkJCQl7fQotCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXt9CitvcHRf d2l0aDoJV0lUSAorCQkJfCBXSVRIX0xBCisJCQl8IC8qRU1QVFkqLwogCQk7CiAKIC8qCkBA IC0zMTI3LDggKzMxMjcsOCBAQCBjb3B5X2RlbGltaXRlcjoKIAkJOwogCiBvcHRfdXNpbmc6 Ci0JCQlVU0lORwkJCQkJCQkJCXt9Ci0JCQl8IC8qRU1QVFkqLwkJCQkJCQkJe30KKwkJCVVT SU5HCisJCQl8IC8qRU1QVFkqLwogCQk7CiAKIC8qIG5ldyBDT1BZIG9wdGlvbiBzeW50YXgg Ki8KQEAgLTQzMTksOCArNDMxOSw4IEBAIFNlcU9wdEVsZW06IEFTIFNpbXBsZVR5cGVuYW1l CiAJCQkJfQogCQk7CiAKLW9wdF9ieToJCUJZCQkJCXt9Ci0JCQl8IC8qIGVtcHR5ICovCXt9 CitvcHRfYnk6CQlCWQorCQkJfCAvKiBlbXB0eSAqLwogCSAgOwogCiBOdW1lcmljT25seToK QEAgLTQ0MDYsOCArNDQwNiw4IEBAIG9wdF92YWxpZGF0b3I6CiAJCTsKIAogb3B0X3Byb2Nl ZHVyYWw6Ci0JCQlQUk9DRURVUkFMCQkJCQkJCQl7fQotCQkJfCAvKkVNUFRZKi8JCQkJCQkJ CXt9CisJCQlQUk9DRURVUkFMCisJCQl8IC8qRU1QVFkqLwogCQk7CiAKIC8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgpAQCAtNTM2Niw4ICs1MzY2LDggQEAgVHJpZ2dlckZvclNwZWM6CiAJ CTsKIAogVHJpZ2dlckZvck9wdEVhY2g6Ci0JCQlFQUNICQkJCQkJCQkJe30KLQkJCXwgLypF TVBUWSovCQkJCQkJCQl7fQorCQkJRUFDSAorCQkJfCAvKkVNUFRZKi8KIAkJOwogCiBUcmln Z2VyRm9yVHlwZToKQEAgLTY3MDcsMTIgKzY3MDcsMTIgQEAgZmV0Y2hfYXJnczoJY3Vyc29y X25hbWUKIAkJCQl9CiAJCTsKIAotZnJvbV9pbjoJRlJPTQkJCQkJCQkJCXt9Ci0JCQl8IElO X1AJCQkJCQkJCQl7fQorZnJvbV9pbjoJRlJPTQorCQkJfCBJTl9QCiAJCTsKIAotb3B0X2Zy b21faW46CWZyb21faW4JCQkJCQkJCXt9Ci0JCQl8IC8qIEVNUFRZICovCQkJCQkJCXt9Citv cHRfZnJvbV9pbjoJZnJvbV9pbgorCQkJfCAvKiBFTVBUWSAqLwogCQk7CiAKIApAQCAtODgz Niw4ICs4ODM2LDggQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93 aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBuYW1lCiAJCQkJfQogCQk7CiAKLW9wdF9jb2x1bW46 IENPTFVNTgkJCQkJCQkJCXsgJCQgPSBDT0xVTU47IH0KLQkJCXwgLypFTVBUWSovCQkJCQkJ CQl7ICQkID0gMDsgfQorb3B0X2NvbHVtbjogQ09MVU1OCisJCQl8IC8qRU1QVFkqLwogCQk7 CiAKIG9wdF9zZXRfZGF0YTogU0VUIERBVEFfUAkJCQkJCQl7ICQkID0gMTsgfQpAQCAtOTg1 OSw5ICs5ODU5LDkgQEAgVHJhbnNhY3Rpb25TdG10OgogCQkJCX0KIAkJOwogCi1vcHRfdHJh bnNhY3Rpb246CVdPUksJCQkJCQkJe30KLQkJCXwgVFJBTlNBQ1RJT04JCQkJCQkJe30KLQkJ CXwgLypFTVBUWSovCQkJCQkJCQl7fQorb3B0X3RyYW5zYWN0aW9uOglXT1JLCisJCQl8IFRS QU5TQUNUSU9OCisJCQl8IC8qRU1QVFkqLwogCQk7CiAKIHRyYW5zYWN0aW9uX21vZGVfaXRl bToKQEAgLTEwMDY2LDggKzEwMDY2LDggQEAgY3JlYXRlZGJfb3B0X25hbWU6CiAgKglUaG91 Z2ggdGhlIGVxdWFscyBzaWduIGRvZXNuJ3QgbWF0Y2ggb3RoZXIgV0lUSCBvcHRpb25zLCBw Z19kdW1wIHVzZXMKICAqCWVxdWFscyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgYW5k IGl0IGRvZXNuJ3Qgc2VlbSB3b3J0aCByZW1vdmluZyBpdC4KICAqLwotb3B0X2VxdWFsOgkn PScJCQkJCQkJCQkJe30KLQkJCXwgLypFTVBUWSovCQkJCQkJCQl7fQorb3B0X2VxdWFsOgkn PScKKwkJCXwgLypFTVBUWSovCiAJCTsKIAogCkBAIC0xMDI4NSw4ICsxMDI4NSw4IEBAIEFs dGVyRG9tYWluU3RtdDoKIAkJCQl9CiAJCQk7CiAKLW9wdF9hczoJCUFTCQkJCQkJCQkJCXt9 Ci0JCQl8IC8qIEVNUFRZICovCQkJCQkJCXt9CitvcHRfYXM6CQlBUworCQkJfCAvKiBFTVBU WSAqLwogCQk7CiAKIApAQCAtMTAzNzIsOCArMTAzNzIsOCBAQCBBbHRlclRTQ29uZmlndXJh dGlvblN0bXQ6CiAJCTsKIAogLyogVXNlIHRoaXMgaWYgVElNRSBvciBPUkRJTkFMSVRZIGFm dGVyIFdJVEggc2hvdWxkIGJlIHRha2VuIGFzIGFuIGlkZW50aWZpZXIgKi8KLWFueV93aXRo OglXSVRICQkJCQkJCQkJe30KLQkJCXwgV0lUSF9MQQkJCQkJCQkJe30KK2FueV93aXRoOglX SVRICisJCQl8IFdJVEhfTEEKIAkJOwogCiAKQEAgLTEwNTIwLDggKzEwNTIwLDggQEAgdmFj X2FuYWx5emVfb3B0aW9uX2xpc3Q6CiAJCTsKIAogYW5hbHl6ZV9rZXl3b3JkOgotCQkJQU5B TFlaRQkJCQkJCQkJCXt9Ci0JCQl8IEFOQUxZU0UgLyogQnJpdGlzaCAqLwkJCQkJe30KKwkJ CUFOQUxZWkUKKwkJCXwgQU5BTFlTRSAvKiBCcml0aXNoICovCiAJCTsKIAogdmFjX2FuYWx5 emVfb3B0aW9uX2VsZW06CkBAIC0xMTQ2Miw4ICsxMTQ2Miw4IEBAIE9wdFRlbXBUYWJsZU5h bWU6CiAJCQkJfQogCQk7CiAKLW9wdF90YWJsZToJVEFCTEUJCQkJCQkJCQl7fQotCQkJfCAv KkVNUFRZKi8JCQkJCQkJCXt9CitvcHRfdGFibGU6CVRBQkxFCisJCQl8IC8qRU1QVFkqLwog CQk7CiAKIGFsbF9vcl9kaXN0aW5jdDoKQEAgLTExNDgxLDggKzExNDgxLDggQEAgZGlzdGlu Y3RfY2xhdXNlOgogCQk7CiAKIG9wdF9hbGxfY2xhdXNlOgotCQkJQUxMCQkJCQkJCQkJCXsg JCQgPSBOSUw7fQotCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOSUw7IH0KKwkJCUFM TAorCQkJfCAvKkVNUFRZKi8KIAkJOwogCiBvcHRfc29ydF9jbGF1c2U6CkBAIC0xMjA4Niwx NSArMTIwODYsMTUgQEAgZnVuY19hbGlhc19jbGF1c2U6CiAJCQkJfQogCQk7CiAKLWpvaW5f dHlwZToJRlVMTCBqb2luX291dGVyCQkJCQkJCXsgJCQgPSBKT0lOX0ZVTEw7IH0KLQkJCXwg TEVGVCBqb2luX291dGVyCQkJCQkJeyAkJCA9IEpPSU5fTEVGVDsgfQotCQkJfCBSSUdIVCBq b2luX291dGVyCQkJCQkJeyAkJCA9IEpPSU5fUklHSFQ7IH0KK2pvaW5fdHlwZToJRlVMTCBv cHRfb3V0ZXIJCQkJCQkJeyAkJCA9IEpPSU5fRlVMTDsgfQorCQkJfCBMRUZUIG9wdF9vdXRl cgkJCQkJCXsgJCQgPSBKT0lOX0xFRlQ7IH0KKwkJCXwgUklHSFQgb3B0X291dGVyCQkJCQkJ eyAkJCA9IEpPSU5fUklHSFQ7IH0KIAkJCXwgSU5ORVJfUAkJCQkJCQkJeyAkJCA9IEpPSU5f SU5ORVI7IH0KIAkJOwogCiAvKiBPVVRFUiBpcyBqdXN0IG5vaXNlLi4uICovCi1qb2luX291 dGVyOiBPVVRFUl9QCQkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KLQkJCXwgLypFTVBUWSovCQkJ CQkJCQl7ICQkID0gTlVMTDsgfQorb3B0X291dGVyOiBPVVRFUl9QCisJCQl8IC8qRU1QVFkq LwogCQk7CiAKIC8qIEpPSU4gcXVhbGlmaWNhdGlvbiBjbGF1c2VzCi0tIAoyLjI5LjEKCg== --------------EC4F4230ECAFBBB090C00C3C--