If statement with grammar and translation; formula and objset refactoring; assignments as expressions