История изменений
Исправление Stanson, (текущая версия) :
Ну так доковыряй если тебе надо и ты знаешь все конструкции языка. Мне-то это нафига. Я тебе продемонстрировал что сделать можно, а уж всякие рюшечки - уже сам.
Это source-to-source трансляция.
Хрен там. Задача сводится к следующему: Убрать из текста все пробелы в начале строк. Выводить строки предваряя их N пробелами. Если встречается строка из одной «{» то её не выводить, а сделать N += 4. Если встречается строка из одной «}» то не выводить её, а сделать N -= 4.
Да фигли, на тебе однострочник, ты честно наныл:
cat source.py | perl -e '$N=0;while(<>){$_=~s/^[\t ]*//;if($_=~/^{$/){$N+=4;}elsif($_=~/^}$/){$N-=4;}else{print " " x $N . $_;}}'
:)
Скобки блоков должны быть единственным знаком в строке. Вне зависимости от ЯП этот однострочник запросто уберёт блочные скобки и расставит нужное количество пробелов в блоках а-ля пистон.
Изобретёшь неработающий пример - прошу в студию :)
Исходная версия Stanson, :
Ну так доковыряй если тебе надо и ты знаешь все конструкции языка. Мне-то это нафига. Я тебе продемонстрировал что сделать можно, а уж всякие рюшечки - уже сам.
Это source-to-source трансляция.
Хрен там. Задача сводится к следующему: Убрать из текста все пробелы в начале строк. Выводить строки предваряя их N пробелами. Если встречается строка из одной «{» то её не выводить, а сделать N += 4. Если встречается строка из одной «}» то не выводить её, а сделать N -= 4.
Да фигли, на тебе, вот, ты честно наныл:
cat source.py | perl -e '$N=0;while(<>){$_=~s/^[\t ]*//;if($_=~/^{$/){$N+=4;}elsif($_=~/^}$/){$N-=4;}else{print " " x $N . $_;}}'
:)
Скобки блоков должны быть единственным знаком в строке. Вне зависимости от ЯП этот однострочник запросто уберёт блочные скобки и расставит нужное количество пробелов в блоках а-ля пистон.
Изобретёшь неработающий пример - прошу в студию :)