annotate paste/paste.15661 @ 9285:8320c9c4620f

<oerjan> learn Umlaut is German for "hum aloud", an important feature of the German language. It is indicated by putting two dots over the vowel of the syllable.
author HackBot
date Sat, 15 Oct 2016 00:04:47 +0000
parents 9a4f41db9f00
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1026
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
1 #!/bin/bash
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
2 LANG="$1"
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
3
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
4 case "$LANG" in
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
5 c)
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
6 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) {'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
7 TAIL='; return 0; }'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
8 EXT='c'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
9 GCC='gcc'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
10 FLAGS='-std=gnu99'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
11 ;;
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
12
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
13 c++)
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
14 HEAD='#include <iostream>\n#include <cstdio>\n#include <cstdlib>\n#include <cstring>\nusing namespace std;\nint main(int argc, char **argv) {'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
15 TAIL='; return 0; }'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
16 EXT='cc'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
17 GCC='g++'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
18 FLAGS='-std=gnu++0x'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
19 ;;
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
20
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
21 assembler)
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
22 HEAD='.globl main; main: pushq %rbp; movq %rsp, %rbp;'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
23 TAIL='movl $0, %eax; leave; ret;'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
24 EXT='s'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
25 GCC='gcc'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
26 FLAGS=''
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
27 ;;
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
28
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
29 java)
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
30 HEAD='class Main { public static void main(String[] args) {'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
31 TAIL='; } }'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
32 EXT='java'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
33 GCC='gcj'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
34 FLAGS='--main=Main'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
35 ;;
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
36 esac
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
37
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
38 SOURCE="/tmp/source.$$.$EXT"
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
39
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
40 (
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
41 echo -e "$HEAD"
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
42 cat "$2"
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
43 echo "$TAIL"
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
44 ) > "$SOURCE"
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
45
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
46 "$GCC" -x "$LANG" "$SOURCE" $FLAGS -o /tmp/compiled.$$ 2> /dev/null ||
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
47 "$GCC" -x "$LANG" "$2" $FLAGS -o /tmp/compiled.$$ 2> /dev/null ||
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
48 echo 'Does not compile.'
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
49 rm -f "$SOURCE"
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
50
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
51 ulimit -u 3
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
52 if [ -x /tmp/compiled.$$ ] ; then /tmp/compiled.$$; fi 2>&1
9a4f41db9f00 <elliott> revert
HackBot
parents:
diff changeset
53 rm -f /tmp/compiled.$$