- there are a limited number of basic syntax constructs
- all valid syntax is either basic syntax, or complex syntax built
from basic syntax which it can be broken down into
While it's not ideal, I see no reason (possibly because I don't know what I'm talking about) that we can't extend (1) to:
1a) There are countably many basic syntax constructs, only finitely many of which are used in any valid syntax.
(See [[Countably infinite]] if that doesn't make sense to you)
That would then allow our list syntax. It makes the parser slightly more complicated (it requires defining tokens iteratively), but should be possible (well, the fact that we do it shows it's possible, I mean possible without straying too far from an EBNF parser).