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