static fb_token_t *next(fb_parser_t *P) { again: ++P->token; if (P->token == P->te) { /* We keep returning end of token to help binary operators etc., if any. */ --P->token; switch (P->token->id) { case LEX_TOK_EOS: case LEX_TOK_EOB: case LEX_TOK_EOF: P->token->id = LEX_TOK_EOF; return P->token; } error_tok(P, P->token, "Unexpected end of input"); } if (P->token->id == tok_kw_doc_comment) { fb_add_doc(P, P->token); goto again; } debug_token("next", P->token); return P->token; }
static fb_token_t *next(fb_parser_t *P) { again: ++P->token; if (P->token == P->te) { /* We keep returning end of token to help binary operators etc., if any. */ --P->token; assert(0); switch (P->token->id) { case LEX_TOK_EOS: case LEX_TOK_EOB: case LEX_TOK_EOF: P->token->id = LEX_TOK_EOF; return P->token; } error_tok(P, P->token, "unexpected end of input"); } if (P->token->id == tok_kw_doc_comment) { /* Note: we can have blanks that are control characters here, such as \t. */ fb_add_doc(P, P->token); goto again; } debug_token("next", P->token); return P->token; }