通过查看Python 3 Grammar,我们可以看到,使用file_input
作为起始符号,有效的生产可能只是一条语句。例如,类似:
stmt ENDMARKER
这就像在文件中只有一个文字
[1, 2, 3]
但是,stmt -> simple_stmt
的规则要求stmt
以NEWLINE
结尾。因此,我假设一个包含单个文字列表且末尾没有换行符的文件将导致解析/语法错误。但事实并非如此。
python是在解析的文件后附加\n
字符,还是总是在NEWLINE
之前发出ENDMARKER
令牌?