|author||Andy Chu <email@example.com>||Tue Mar 15 13:52:25 2016 -0700|
|committer||Rob Landley <firstname.lastname@example.org>||Wed Mar 16 11:59:59 2016 -0500|
Fix type coercion bugs in expr. All tests pass now; this fixes the 2 remaining failures, including a segfault. The structure of the code has changed a lot -- instead of having a tiny function per operator, we have eval_op() which does common type coercion and then evaluates the operator. I tried writing it a couple different ways, and this was the cleanest. The OPS table now contains the operator string, precedence level, signature for type coercion, and operator ID.