Add 1993/vanb/try.sh

This commit is contained in:
Cody Boone Ferguson committed 2024-01-14 10:15:40 -08:00
1 parent 094a4da91a
commit 5609ceaf59
3 files changed
+62 -3

No files matched your search

+3 -3
View File
@@ -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()`
+57
View File
@@ -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
+2
View File
@@ -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.
# <a name="1994"></a>1994