Add 1993/vanb/try.sh
This commit is contained in:
1 parent
094a4da91a
commit
5609ceaf59
3 files changed
+62
-3
No files matched your search
+3
-3
@@ -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()`
|
||||
|
||||
Executable
+57
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user