From 1567573c6851b18fc15bd74a9b8cd59668b80a8a Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Thu, 17 Apr 2025 08:25:31 -0700 Subject: [PATCH 1/2] Simplify the grammar for GenericParams The definition of GenericParams had separate productions for the cases of zero params and one-or-more params. Merge those two cases, to make the railroad diagram clearer. --- src/items/generics.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/items/generics.md b/src/items/generics.md index 150b26372..67a7d7a9d 100644 --- a/src/items/generics.md +++ b/src/items/generics.md @@ -3,9 +3,7 @@ r[items.generics] r[items.generics.syntax] ```grammar,items -GenericParams -> - `<` `>` - | `<` (GenericParam `,`)* GenericParam `,`? `>` +GenericParams -> `<` ( (GenericParam `,`)* GenericParam `,`? )? `>` GenericParam -> OuterAttribute* ( LifetimeParam | TypeParam | ConstParam ) From 94e18d303007b64ee78937eb98a1b48a817d3420 Mon Sep 17 00:00:00 2001 From: Josh Triplett Date: Thu, 17 Apr 2025 09:04:13 -0700 Subject: [PATCH 2/2] Move the recursion in GenericParams to the right This makes it easier to read the production from left to right: a GenericParam, zero or more (comma followed by GenericParam), optional trailing comma. --- src/items/generics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/items/generics.md b/src/items/generics.md index 67a7d7a9d..33491587d 100644 --- a/src/items/generics.md +++ b/src/items/generics.md @@ -3,7 +3,7 @@ r[items.generics] r[items.generics.syntax] ```grammar,items -GenericParams -> `<` ( (GenericParam `,`)* GenericParam `,`? )? `>` +GenericParams -> `<` ( GenericParam (`,` GenericParam)* `,`? )? `>` GenericParam -> OuterAttribute* ( LifetimeParam | TypeParam | ConstParam )