Consider the following:
A function parameter list is a sequence of zero or more parameters separated by commas and bracketed by parentheses, "(" and ")" .
If I want to give the syntax of "function parameter list" assuming that the syntactic category of "parameter" has been defined, can I write:
<function parameter list> ::= ( [<parameter> { , <parameter>} ] )
as a BNF? Is the usage of brackets nested in braces acceptable for EBNF?
Initially my impulse was to give the BNF as:
<function parameter list> ::= ( <parameter> )
| ( <parameter> { , <parameter> } )
| ( )
I'm unsure how else I would write this BNF without braces.
I'm trying to get info from my text or online about using brackets/braces in regular BNF and some sources imply that you can, but my text doesn't specify exactly. It seems like the BNF needs some type of brace for this case. I thought BNF couldn't use bracket or braces and now I'm unsure.