static bool read_directive(SerdReader* reader) { eat_byte_safe(reader, '@'); switch (peek_byte(reader)) { case 'b': return read_base(reader); case 'p': return read_prefixID(reader); default: return r_err(reader, SERD_ERR_BAD_SYNTAX, "invalid directive\n"); } }
t_bistro *read_input(void) { t_bistro *bistro; if (!(bistro = malloc(sizeof (t_bistro)))) my_puterror(E_THE_WORLD_IS_OVER); if ((bistro->form = my_getchar() == 51)) read_rpn_op(bistro); else read_infix_op(bistro); if (!(bistro->base = malloc(sizeof (t_base)))) my_puterror(E_THE_WORLD_IS_OVER); if ((bistro->base->base_len = my_getchar()) < 2) my_puterror(E_ARITH); read_base(bistro); read_expr(bistro); return bistro; }