[heycam/webidl] Seemingly missing alternatives in Other and ArgumentNameKeyword (#813)

It appears as if the Other non-terminal is meant to be inclusive of every terminal except for the three brace pairs and comma `()[]{},`. This makes sense because it’s an open-ended point for extension; users are free to define custom grammars for specific local extended attributes, so long as the braces are balanced and comma doesn’t appear outside of braces.

However it does not actually permit the following terminals:

- `Promise`
- `mixin`
- `readonly`
- `record`
- `symbol`

I’m guessing these might be accidental oversights due to these terminals having been defined later than `Other`. Any time a new identlike terminal is defined, it appears that there is a need to update either `Other` or `ArgumentNameKeyword`, but this is not super obvious.

Following the existing pattern, it appears that `Other` itself should add the following alternatives, because they are terminals used in `Type`:

- `Promise`
- `record`
- `symbol`

And that `ArgumentNameKeyword`, which appears as though it’s intended to permit all the identlike terminals except for those used in `Type` and is an alternative for `Other`, should add:

- `mixin`
- `readonly`


-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/heycam/webidl/issues/813

Received on Monday, 7 October 2019 19:36:09 UTC