Глядя на грамматику Python 3 , мы видим, что, используя file_input
в качестве начального символа, допустимым производством может быть одно утверждение.Например, что-то вроде:
stmt ENDMARKER
Это похоже на наличие одного литерала в файле
[1, 2, 3]
Однако правила для stmt -> simple_stmt
требуют окончания stmt
sв NEWLINE
.Таким образом, я бы предположил, что файл, содержащий один буквенный список и без новой строки в конце, вызовет синтаксическую ошибку.Но это не так.
Добавляет ли python символ \n
к файлам, которые он анализирует, или всегда выдает токен NEWLINE
перед ENDMARKER
?