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:
|
### Try:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
./vanb '1+1'
|
./try.sh
|
||||||
|
|
||||||
./vanb '4+4'
|
|
||||||
```
|
```
|
||||||
|
|
||||||
What happens if you use something other than valid digits?
|
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,
|
produce spurious results. Note that unary `-` is an operator. Thus,
|
||||||
decimal `-46` would be entered as `-d46` and not `d-46`.
|
decimal `-46` would be entered as `-d46` and not `d-46`.
|
||||||
|
|
||||||
|
|
||||||
### What Makes This Program Special:
|
### What Makes This Program Special:
|
||||||
|
|
||||||
0. Of course, the fact that the program takes input and produces output in
|
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
|
6. Many simple tasks are done many times. I tried to do these differently each
|
||||||
time, to make the program harder to understand.
|
time, to make the program harder to understand.
|
||||||
|
|
||||||
|
|
||||||
### How It Works:
|
### How It Works:
|
||||||
|
|
||||||
It's a recursive descent parser, calling `main()`
|
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
|
NOTE: the `N1` and `N2` are provided as notes in the README.md file describing
|
||||||
this code. Other code is also described there.
|
this code. Other code is also described there.
|
||||||
|
|
||||||
|
Cody also added the [try.sh](/1993/vanb/try.sh) script.
|
||||||
|
|
||||||
|
|
||||||
# <a name="1994"></a>1994
|
# <a name="1994"></a>1994
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user