Как определить, должен ли быть отступ для следующей строки при разборе Python? - PullRequest
0 голосов
/ 24 декабря 2018

Я пишу простой шаблонизатор на python, и он включает в себя смешивание python с другими языками, и мне нужно определить уровень отступа для любой строки кода Python.

Мне было интересно, если он точныйсказать, что новый уровень отступа всегда указывается двоеточием (:) в конце строки.

Вот строка с python:

if my_boolean:

Поскольку в двоеточии естьВ конце этой строки я бы определил, что следующей строкой Python должен быть блок с отступом.Это всегда точно?Есть ли случаи, когда мне нужно сделать отступ, когда двоеточие отсутствует?

1 Ответ

0 голосов
/ 24 декабря 2018

Двоеточие в конце строки является наиболее распространенным примером показателя того, что следующая строка имеет отступ.Другая - любая строка, в которой больше открывающих скобок, скобок или скобок, чем закрывающих.Последний случай более сложен, потому что порядок скобок очень важен, а также потому, что следующий отступ произвольный.

Еще одна вещь, которую следует учитывать, это то, что у вас нет никаких признаков того, что заданная строкаожидается, что un с отступом, пока вы не доберетесь до него.

Мораль этой истории заключается в том, что вам лучше использовать существующее оборудование, представленное модулем ast, а не изобретать зановорулевое колесо.Иногда это ужасно сложное колесо.

...