Mercurial > repo
view share/candide @ 11293:a7899ef2d7b6
<wob_jonas> learn Aristotle said that every illness can be cured by balancing the four vitreous humors, and everyone believed him for two thousand years, even though people still died of illnesses. It wasn\'t until the 20th century that Szent-Gy\xc3\xb6rgyi Albert realized that Aristotle didn\'t find fifth kind of vitreous humor, vitamin C, because the Greek alphabet
author | HackBot |
---|---|
date | Mon, 01 Jan 2018 17:57:43 +0000 |
parents | c989a1669243 |
children |
line wrap: on
line source
#!/bin/bash # compile c from stdin # candide, kinda readinput () { while read -r -e || { printf %s "$REPLY"; false; } ; do printf '%s\n' "$REPLY" done } c="$*" args=""; while [[ "$c" =~ ^(-[^ ]*)\ (.*) ]]; do args="$args ${BASH_REMATCH[1]}"; c="${BASH_REMATCH[2]}"; done if ! [[ $c ]] || ! out=$(mktemp); then echo Error >&2 exit 1 fi # if you don't write 'main' it assumes that you're writing a full program (with free includes) # this allows you to use other functions and stuff # it will get false positives, but who cares? if [[ $c != *main* ]]; then c=$(cat <<SOURCE int main(int argc, char *argv[]) { $c return 0; } SOURCE ); fi # will replace ${args--O0} with the parameters gcc -o "$out" -x c -I /hackenv/share ${args--O0} /dev/fd/0 <<SOURCE && { "$out" && { rm -f "$out"; true; }; } #include "headers" /* precompiled headers */ $c SOURCE