| typedef void (*fn_t) (struct o_fsm_t *, |
| struct o_fsm_event_t const *); |
| extern struct o_fsm_state_t o_fsm_tran(struct o_fsm_t *fsm, |
| struct o_fsm_state_t next_state); |
| static void plist_parser_state_start(struct o_fsm_t *fsm, |
| struct o_fsm_event_t const *fsm_event); |
| struct o_fsm_state_t o_fsm_state(fn_t dispatch_fcn) |
| return *(struct o_fsm_state_t *)&dispatch_fcn; |
| typedef struct _o_plist_parser_t { |
| static void plist_parser_state_start(struct o_fsm_t *fsm, |
| struct o_fsm_event_t const *fsm_event) |
| void o_plist_deserialize_xml(int fin) |
| o_fsm_tran(&parser.fsm, o_fsm_state(plist_parser_state_start)); |