/***/
:
Внешний /*
... */
является шаблоном для MultilineComment, поэтому внутренний *
должен соответствовать MultilineCommentChars.Теперь, если вы посмотрите на это, вы увидите, что:
MultiLineCommentChars ::
* PostAsteriskCommentChars [opt]
на самом деле может быть просто *
, поскольку следующая часть является необязательной (вот что означает [opt]
).
/*/*/
:
Внешняя часть снова является шаблоном MultilineComment, /
должна соответствовать MultilineCommentChars, что соответствует
MultiLineCommentChars ::
MultiLineNotAsteriskChar MultiLineCommentChars [opt]
и /
является частью MultilineNotAsteriskChar.
Теперь весь раздел предназначен для предотвращения */
внутри MultilineComment, /**/*/
недействительно, /*/**/
нет.