Порт dos2unix к brainfuck

Для тех, которые работают с Windows API, существует функция, которая позволяет Вам видеть, присутствует ли какой-либо отладчик с помощью:

if( IsDebuggerPresent() )
{
    ...
}

Ссылка: http://msdn.microsoft.com/en-us/library/ms680345.aspx

18
задан Community 20 March 2017 в 10:18
поделиться

2 ответа

Итак:

,[[->+>+<<]>>>,[<-------------[+++++++++++++.>>>]<[>>----------[>+++++++++++++.-------------]<++++++++++>]<<<<[-]>>>[-<<<+>>>]]<[-]<[-]<]++++++++++.

Предполагается, что EOF обозначается входным значением 0 (это значение по умолчанию для говядины, которое я использовал для тестирования, и это разумный выбор. ; Я думаю, что он также может поддерживать EOF, оставляя символ неизменным, но я не проверял это). Также предполагается, что файл заканчивается LF (фактически он заменяет последний символ на LF). Правильно обрабатывает CR, если не является частью пары CRLF (то есть выводит одиночные CR).

На написание и тестирование ушло, может быть, час, включая изучение Brainfuck с самого начала.

он заменяет последний символ на LF). Правильно обрабатывает CR, если не является частью пары CRLF (то есть выводит одиночные CR).

На написание и тестирование ушло, может быть, час, включая изучение Brainfuck с самого начала.

он заменяет последний символ на LF). Правильно обрабатывает CR, если не является частью пары CRLF (то есть выводит одиночные CR).

На написание и тестирование ушло, может быть, час, включая изучение Brainfuck с самого начала.

24
ответ дан 30 November 2019 в 06:17
поделиться

This is quite a bit shorter, just 41 characters.

,[[->+>+<<]>-------------[>.<[-]]>[-]<<,]

It reads a value into a[0]. It copies the read value into a[1] and a[2] and subtracts 13 from a[1]. If a[1] is non-zero (meaning it's not a CR), it puts a[2] and clears a[1]. It then clears a[2] and reads into a[0] again and repeats.

This has the added advantage that--since it leaves a[0]=0 every time it reads--it should support BF virtual machines that read EOF as 0 or treat EOF as "no change", both of which are common.

Since this doesn't replace CRLF pairs with LF but rather just strips CR, this doesn't depend on assuming the file ends with an LF. My own testing with dos2unix (at least the Cygwin one) does not indicate that lone CRs are retained.

25
ответ дан 30 November 2019 в 06:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: