From dd4be0f7bf6e11b89d122eb05019c4d555398284 Mon Sep 17 00:00:00 2001 From: TitouanT Date: Sun, 7 Feb 2021 22:31:06 +0100 Subject: [PATCH] transpiles bf into C code --- lxc/executors/brainfuck | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/lxc/executors/brainfuck b/lxc/executors/brainfuck index eb9725d..7a82aa5 100755 --- a/lxc/executors/brainfuck +++ b/lxc/executors/brainfuck @@ -1,4 +1,33 @@ #!/bin/bash cd /tmp/$1 -timeout -s KILL 3 xargs -a args.args -d '\n' brainfuck code.code < stdin.stdin +sedarg="\ +s/+/P/g;\ +s/-/M/g;\ +s/>/++p;/g;\ +s/ code.c +#include + +char mem[1<<$MEMSIZE]; +char *p = mem + (1<<$((MEMSIZE - 1))); +int c; + +int main() { + $(timeout -s KILL 3 sed 's/[^][<>.,+-]//g' code.code | timeout -s KILL 3 sed $sedarg) +} +EOF +timeout -s KILL 3 gcc -std=c11 -o binary code.c + +# execution +timeout -s KILL 3 ./binary < args.args < stdin.stdin