I've been playing with the code examples he gives. It's a little tricky because (a) he uses Pascal, which I don't, and (b) he builds for a 68000 while my eventual target will be a 65c02.
Nonetheless, my C version can so far correctly identify all that needs to be done for (one-digit number only!) basic arithmetic:
Code:
> 1*((2+3)/(4-5))
Executing Crenshaw...
Total = 1
Push Total
Total = 2
Push Total
Total = 3
Total = (popped) TOS + Total
Push Total
Total = 4
Push Total
Total = 5
Total = (popped) TOS - Total
Total = (popped) TOS / Total
Total = (popped) TOS * Total
Next steps: skip spaces, multi-digit numbers, and variables. In the first instance I'm aiming at a Tiny Basic.
Neil
p.s. note that those '=' are assignments, not comparison tests.