engine: Add expression parser and calculator