annotate share/candide @ 12500:e48c08805365 draft default tip

<b_jonas> ` learn \'The password of the month is Cthulhuquagdonic Mothraquagdonic Narwhalicorn.\' # https://logs.esolangs.org/libera-esolangs/2024-04.html#lKE Infinite craft
author HackEso <hackeso@esolangs.org>
date Wed, 01 May 2024 06:39:10 +0000
parents c989a1669243
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9075
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
1 #!/bin/bash
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
2 # compile c from stdin
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
3 # candide, kinda
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
4
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
5 readinput () {
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
6 while read -r -e || { printf %s "$REPLY"; false; } ; do
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
7 printf '%s\n' "$REPLY"
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
8 done
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
9 }
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
10
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
11 c="$*"
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
12 args=""; while [[ "$c" =~ ^(-[^ ]*)\ (.*) ]]; do args="$args ${BASH_REMATCH[1]}"; c="${BASH_REMATCH[2]}"; done
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
13 if ! [[ $c ]] || ! out=$(mktemp); then
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
14 echo Error >&2
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
15 exit 1
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
16 fi
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
17
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
18 # if you don't write 'main' it assumes that you're writing a full program (with free includes)
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
19 # this allows you to use other functions and stuff
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
20 # it will get false positives, but who cares?
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
21 if [[ $c != *main* ]]; then c=$(cat <<SOURCE
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
22 int main(int argc, char *argv[]) {
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
23 $c
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
24 return 0;
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
25 }
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
26 SOURCE
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
27 ); fi
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
28
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
29 # will replace ${args--O0} with the parameters
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
30 gcc -o "$out" -x c -I /hackenv/share ${args--O0} /dev/fd/0 <<SOURCE && { "$out" && { rm -f "$out"; true; }; }
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
31 #include "headers" /* precompiled headers */
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
32 $c
c989a1669243 <fizzie> revert 58b9ee8f97a7
HackBot
parents:
diff changeset
33 SOURCE