Rethink :calc command parser grammar

Fixes #31