view paste/paste.15661 @ 5674:91d4a5b788c9

<tswett> echo \'[11,11,11,15,15,23,12],[5,5,5,3,53,45,16,26,00,20,15,16,22,25,45,91,32,11,15,27,06,01,11,01,47,22,30,13,43,21,11,13,29,61,65,17,19,12,28,17,11,01,23,20,16,20,81,18,32,25,58,22.,1985,10.301350435,1555466973690094680980000956080767,13720946704494913791885940266665466978579582015128512190078...\' > wisdom/code
author HackBot
date Wed, 24 Jun 2015 14:47:46 +0000
parents 9a4f41db9f00
children
line wrap: on
line source

#!/bin/bash
LANG="$1"

case "$LANG" in
    c)
        HEAD='#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <sys/types.h>\n#include <unistd.h>\nint main(int argc, char **argv) {'
        TAIL='; return 0; }'
        EXT='c'
        GCC='gcc'
        FLAGS='-std=gnu99'
    ;;

    c++)
        HEAD='#include <iostream>\n#include <cstdio>\n#include <cstdlib>\n#include <cstring>\nusing namespace std;\nint main(int argc, char **argv) {'
        TAIL='; return 0; }'
        EXT='cc'
        GCC='g++'
        FLAGS='-std=gnu++0x'
    ;;

    assembler)
        HEAD='.globl main; main: pushq %rbp; movq %rsp, %rbp;'
        TAIL='movl $0, %eax; leave; ret;'
        EXT='s'
        GCC='gcc'
        FLAGS=''
    ;;

    java)
        HEAD='class Main { public static void main(String[] args) {'
        TAIL='; } }'
        EXT='java'
        GCC='gcj'
        FLAGS='--main=Main'
    ;;
esac

SOURCE="/tmp/source.$$.$EXT"

(
    echo -e "$HEAD"
    cat "$2"
    echo "$TAIL"
) > "$SOURCE"

"$GCC" -x "$LANG" "$SOURCE" $FLAGS -o /tmp/compiled.$$ 2> /dev/null ||
"$GCC" -x "$LANG" "$2" $FLAGS -o /tmp/compiled.$$ 2> /dev/null ||
echo 'Does not compile.'
rm -f "$SOURCE"

ulimit -u 3
if [ -x /tmp/compiled.$$ ] ; then /tmp/compiled.$$; fi 2>&1
rm -f /tmp/compiled.$$