Tiny declaration-styled FSM for obj-c