为什么通常不允许嵌套块注释?[已关闭]
在我使用的大多数语言中,您根本无法嵌套块注释,因为“关闭”注释sintaxis的第一个操作关闭注释,即使它只是一个“内部”注释。
例如,在 HTML 中
<!-- outer comment
<p>hello</p><!-- inner comment <p>world</p> -->
<p>this should BE commented</p>
-->
在这种情况下,外部注释在第一个而不是相应的最后一个注释上结束,从而导致最后一个注释打印,而不应该打印。-->
<p>
对于用于块注释的语言也是如此,例如java,php,css,javascript等。/* */
但我的问题是为什么会这样?为什么,根据设计,它是不允许的?我提到“按设计”是因为我真的怀疑这是因为解析问题,我想解析器完全能够跟踪打开s并用相应的关闭s关闭注释,但是他们只是以某种方式决定这不是一个好主意。/*
*/
我已经知道,解决这个问题的解决方法是以某种方式更改内部结束注释,以避免它们关闭,并且只留下最后一个关闭注释。例如,将内部 s 和 s 更改为 s 和 s。但这显然不方便,当您只想丢弃代码块以进行调试时,很难做到。(其他技术是将所有内容嵌套在块中,但这不是重点。-->
*/
- ->
* /
if(false){}
所以,我想知道的是,为什么嵌套的注释在几种现代语言中通常不允许?除了“别人不做,我们也不会”之外,一定有一个很好的理由,对吧?
另外,是否有任何其他(不那么晦涩难懂的)语言允许嵌套块注释?