关于cool语言和正则表达式的问题

non-escaped newline character的意思就是非转义的换行符。对于词法分析器来说,一个新行的开始不是我们平常感觉的一行的开头,而是上一行的终结符号(看不到的\或者\\\r)。上面的意思是说,字符串不能跨行,如果想跨行写字符串,必须使用\u0026#39;\\\u0026#39;来指明说要换行了。转义字符:你看到的字符不是你想的那样非转义字符:你看到的就是你想的那样元字符:转义之后,你看到的就是你想的那样;未转义,你看到的字符不是你想的那样。『不知道这么解释怎么样』由于普遍(cool应该一样)的分析器是从左向右,从上倒下逐个字符检查的,所以呢:\u0026lt;string\u0026gt;\\\\\ -\u0026gt; \u0026lt;string\u0026gt; \\\\ \ -\u0026gt; \u0026lt;string\u0026gt;\\上面空了一行,就是最后\的意思。\u0026lt;string\u0026gt;\\\ -\u0026gt; \u0026lt;string\u0026gt; \\\\ n -\u0026gt; \u0026lt;string\u0026gt;\没有换行,n没能组成转义\u0026lt;string\u0026gt;\\\\\\0,这个就是\u0026lt;string\u0026gt;\\,但是最后的\\0表达不了,因为\\0就是数值上的0,一般用来标记字符串的终结,C++应该有讲过这些。


    推荐阅读