summaryrefslogtreecommitdiff
path: root/examples/calc++
diff options
context:
space:
mode:
authorAkim Demaille <demaille@gostai.com>2008-08-21 22:39:01 +0200
committerAkim Demaille <demaille@gostai.com>2008-11-11 16:08:44 +0100
commit1a7a65f9d5aec5eda92d92b2148fee2e6f0c4199 (patch)
treed1fcb8cf9ae21eacc704150e1bdf9372b64b967f /examples/calc++
parentc944f7f22d09d190e536f340bb0a2004c2003aad (diff)
downloadbison-1a7a65f9d5aec5eda92d92b2148fee2e6f0c4199.tar.gz
Support parens in calc++.
* doc/bison.texinfo (Calc++ Scanner, Calc++ Parser): Support parens. * examples/calc++/test (run): Check the expected output. Adjust callers. Check parens too.
Diffstat (limited to 'examples/calc++')
-rwxr-xr-xexamples/calc++/test37
1 files changed, 28 insertions, 9 deletions
diff --git a/examples/calc++/test b/examples/calc++/test
index b6f0942c..2aa917bc 100755
--- a/examples/calc++/test
+++ b/examples/calc++/test
@@ -13,17 +13,26 @@ number=1
# Exit status of this script.
exit=true
-# run EXPECTED-EXIT-STATUS [PARSER-OPTIONS]
-# -----------------------------------------
+# run EXPECTED-EXIT-STATUS EXPECTED-OUTPUT [PARSER-OPTIONS]
+# ---------------------------------------------------------
run ()
{
# Effective and expected exit status.
local sta_exp=$1
shift
- ./calc++ "$@" input
+ local out_exp=$1
+ shift
+ ./calc++ "$@" input >out_eff
local sta_eff=$?
+ local out_eff=`cat out_eff`
if test $sta_eff -eq $sta_exp; then
- printf "$me: PASS: %2d\n" $number
+ if test "$out_eff" = "$out_exp"; then
+ printf "$me: PASS: %2d\n" $number
+ else
+ printf "$me: FAIL: %2d (expected output: %s, effective: %s\n" \
+ $number "$out_exp" "$out_eff"
+ exit=false
+ fi
else
printf "$me: FAIL: %2d (expected status: %d, effective: %d\n" \
$number $sta_exp $sta_eff
@@ -39,22 +48,32 @@ c := 3
d := a + b * c
d
EOF
-run 0
-run 0 -p
+run 0 7
+run 0 7 -p
+
+
+cat >input <<EOF
+a := 1
+b := 2
+c := 3
+d := (a + b) * c
+d
+EOF
+run 0 9
cat >input <<EOF
a := 1
d := a + b * c
EOF
-run 1 input
+run 1 '' input
cat >input <<EOF
toto := 1
toto
EOF
-run 0 -s
+run 0 1 -s
-rm input
+rm input out_eff
$exit