1 #!/usr/bin/bash
2
3 ./build.sh
4
5 function try {
6 # -q tells grep to not echo, just return match status
7 if echo "$1" | ./meow5 | grep -q "^$2\$"
8 then
9 printf '.'
10 else
11 echo
12 echo "Error!"
13 echo "Wanted:"
14 echo "-------------------------------------------"
15 echo "$1"
16 echo "$2"
17 echo "-------------------------------------------"
18 echo
19 echo "But got:"
20 echo "-------------------------------------------"
21 echo "$1"
22 echo "$1" | ./meow5
23 echo "-------------------------------------------"
24 echo
25 exit
26 fi
27 }
28
29 # Input Expected Result
30 # ------------------- ------------------------
31 try 'ps' ''
32 try '5 ps' '5 ' # note space
33 try '5 5 5 + ps' '5 10 '
34 try '9 2 * ps' '18 '
35 try '18 5 / ps' '3 3 '
36 try '5 2 - ps' '3 '
37
38 try '"Hello$\\\$\n" print' 'Hello$\\$'
39
40 try '"Hello" say' 'Hello'
41
42 try 'def five 5 ; five ps' '5 '
43
44 try 'def m "M." print ;
45 m "" say' 'M.'
46
47 try 'def m "M." print ;
48 def m5 m m m m m ;
49 m5 "" say' 'M.M.M.M.M.'
50
51 try 'var x
52 4 x set
53 x get ps' '4 '
54
55 try 'var x
56 4 x set
57 def x? x get "x=$" say ;
58 x?' 'x=4'
59
60 # immediate mode 'if'
61 try 'def t "true" print ;
62 "0=" print 0 ? t
63 ", 1=" print 1 ? t
64 "\n" print' '0=, 1=true'
65
66 # compile mode 'if'
67 try 'def hi "Hi!" print ;
68 def maybe-hi ? hi ;
69 inspect hi
70 inspect maybe-hi
71 0 maybe-hi
72 1 maybe-hi
73 "\n" print' 'Hi!'
74
75 echo
76 echo Passed!