diff --git a/1993/vanb/README.md b/1993/vanb/README.md index 0ecea9fdf..35020f285 100644 --- a/1993/vanb/README.md +++ b/1993/vanb/README.md @@ -29,9 +29,7 @@ hexadecimal and decimal numbers. ### Try: ```sh -./vanb '1+1' - -./vanb '4+4' +./try.sh ``` What happens if you use something other than valid digits? @@ -63,6 +61,7 @@ The program does no error checking - erroneous expressions will produce spurious results. Note that unary `-` is an operator. Thus, decimal `-46` would be entered as `-d46` and not `d-46`. + ### What Makes This Program Special: 0. Of course, the fact that the program takes input and produces output in @@ -86,6 +85,7 @@ format a program which has no explicit control structures (other than `?:`s). 6. Many simple tasks are done many times. I tried to do these differently each time, to make the program harder to understand. + ### How It Works: It's a recursive descent parser, calling `main()` diff --git a/1993/vanb/try.sh b/1993/vanb/try.sh new file mode 100755 index 000000000..febf723f9 --- /dev/null +++ b/1993/vanb/try.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +# +# try.sh - demonstrate IOCCC winner 1993/vanb +# + +# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it +# this way allows us to have the user specify a different compiler in an easy +# way. +if [[ -z "$CC" ]]; then + CC="cc" +fi + +make CC="$CC" all >/dev/null || exit 1 + +# clear screen after compilation so that only the entry is shown +clear + +read -r -n 1 -p "Press any key to run: ./vanb '1+1': " +echo 1>&2 +./vanb '1+1' +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./vanb '4+4': " +echo 1>&2 +./vanb '4+4' +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./vanb '+(1777-x11)*d2': " +echo 1>&2 +./vanb '+(1777-x11)*d2' +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./vanb '-(1777-x11)*d2': " +echo 1>&2 +./vanb '-(1777-x11)*d2' +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./vanb '(1777-xfeed*xdead-xd00d+xf00d)*d2': " +echo 1>&2 +./vanb '(1777-xfeed*xdead-xd00d+xf00d)*d2' +echo 1>&2 + +read -r -n 1 -p "Press any key to run: ./vanb '777+777-111*111/123%155': " +echo 1>&2 +./vanb '777+777-111*111/123%155' +echo 1>&2 + +read -r -n 1 -p "Press any key: ./vanb '777-8': " +echo 1>&2 +./vanb '777-8' +echo "... what happened?" 1>&2 + +read -r -n 1 -p "Press any key to run: ./vanb '777*8': " +echo 1>&2 +./vanb '777*8' +echo "... what happened?" 1>&2 +exit 0 diff --git a/thanks-for-help.md b/thanks-for-help.md index 96abb5d9f..4d7047f1c 100644 --- a/thanks-for-help.md +++ b/thanks-for-help.md @@ -1809,6 +1809,8 @@ but fixed to work with clang as well. NOTE: the `N1` and `N2` are provided as notes in the README.md file describing this code. Other code is also described there. +Cody also added the [try.sh](/1993/vanb/try.sh) script. + # 1994