token = &src->tokens[deque_push_front (&src->deque)];
token->token = (struct token) { .type = T_STOP };
+ token->from_macro = false;
return token;
}
return lex_source_get_syntax__ (lex_source__ (lexer), n0, n1);
}
+bool
+lex_next_is_from_macro (const struct lexer *lexer, int n)
+{
+ return lex_next__ (lexer, n)->from_macro;
+}
+
static bool
lex_tokens_match (const struct token *actual, const struct token *expected)
{
static void
lex_source_push_endcmd__ (struct lex_source *src)
{
- struct lex_token *token = lex_push_token__ (src);
- token->token.type = T_ENDCMD;
- token->token_pos = 0;
- token->token_len = 0;
- token->line_pos = 0;
- token->first_line = 0;
+ *lex_push_token__ (src) = (struct lex_token) { .token = { .type = T_ENDCMD } };
}
static struct lex_source *