#!/bin/bash cd /tmp/$1 sedarg="\ s/+/P/g;\ s/-/M/g;\ s/>/++p;/g;\ s/</--p;/g;\ s/P/++*p;/g;\ s/M/--*p;/g;\ s/\\./putchar(*p);/g;\ s/,/*p=(c=getchar())==EOF?0:c;/g;\ s/\\[/while(*p){/g;\ s/]/}/g\ " # compilation MEMSIZE=15 cat <<EOF > code.c #include <stdio.h> 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 # Merging args.args and stdin.stdin for emkc challenges cat stdin.stdin >> args.args # execution timeout -s KILL 3 ./binary < args.args