Hello P., and all,
It is [currently] normal.
→ Because current implementation use only 'ISO EBNF' form.
Then:
@startebnf
concatenation = ( S , factor , S , "," ? ) + ;
@endebnf
is not a ISO BNF form!
You must use ISO EBNF:
The Wikipedia [simplified] grammar (using conventions) | ISO EBNF |
"+" to indicate one or more matches | { }- form |
"?" for optionality | [ ] form |
Then here is the expected result:
@startebnf
concatenation = { S , factor , S , [","] }- ;
@endebnf
Or use RegEx, like:
@startregex
concatenation = (( S )( factor )( S ) ,?)+;
@endregex
See also doc. here:
If that can help,
Enjoy,
Regards,
Th.