[qfcc] Don't try to define macros in suppressed code

Doing so kind of defeats the purpose of suppressing code.
This commit is contained in:
Bill Currie 2023-10-27 17:26:00 +09:00
parent 3bd391d01f
commit 733d242552

View file

@ -1496,8 +1496,11 @@ rua_macro_t *
rua_start_macro (const char *name, bool params, void *scanner) rua_start_macro (const char *name, bool params, void *scanner)
{ {
auto extra = qc_yyget_extra (scanner); auto extra = qc_yyget_extra (scanner);
extra->params = params;
extra->recording = true; extra->recording = true;
if (extra->suppressed) {
return 0;
}
extra->params = params;
if (name) { if (name) {
int len = strlen (name); int len = strlen (name);
@ -1524,6 +1527,9 @@ rua_macro_t *
rua_end_params (rua_macro_t *macro, void *scanner) rua_end_params (rua_macro_t *macro, void *scanner)
{ {
auto extra = qc_yyget_extra (scanner); auto extra = qc_yyget_extra (scanner);
if (extra->suppressed) {
return 0;
}
extra->params = false; extra->params = false;
//macro->params->parent = extra->macro_tab; //macro->params->parent = extra->macro_tab;
return macro; return macro;
@ -1532,6 +1538,10 @@ rua_end_params (rua_macro_t *macro, void *scanner)
rua_macro_t * rua_macro_t *
rua_macro_append (rua_macro_t *macro, rua_tok_t *token, void *scanner) rua_macro_append (rua_macro_t *macro, rua_tok_t *token, void *scanner)
{ {
auto extra = qc_yyget_extra (scanner);
if (extra->suppressed) {
return 0;
}
if (token->token == -rua_space) { if (token->token == -rua_space) {
if (!macro->tokens) { if (!macro->tokens) {
// ignore leading space // ignore leading space
@ -1559,6 +1569,10 @@ rua_macro_append (rua_macro_t *macro, rua_tok_t *token, void *scanner)
rua_macro_t * rua_macro_t *
rua_macro_param (rua_macro_t *macro, rua_tok_t *token, void *scanner) rua_macro_param (rua_macro_t *macro, rua_tok_t *token, void *scanner)
{ {
auto extra = qc_yyget_extra (scanner);
if (extra->suppressed) {
return 0;
}
if (token->token == -rua_space) { if (token->token == -rua_space) {
// ignore spaces // ignore spaces
return macro; return macro;
@ -1581,6 +1595,10 @@ rua_macro_param (rua_macro_t *macro, rua_tok_t *token, void *scanner)
void void
rua_macro_finish (rua_macro_t *macro, void *scanner) rua_macro_finish (rua_macro_t *macro, void *scanner)
{ {
auto extra = qc_yyget_extra (scanner);
if (extra->suppressed) {
return;
}
if (macro->tokens) { if (macro->tokens) {
while (((rua_expr_t *) macro->tail)->token == -rua_space) { while (((rua_expr_t *) macro->tail)->token == -rua_space) {
// space is never added as the first token, so it's guaranteed // space is never added as the first token, so it's guaranteed
@ -1608,7 +1626,6 @@ rua_macro_finish (rua_macro_t *macro, void *scanner)
} }
} }
auto extra = qc_yyget_extra (scanner);
auto macro_tab = extra->macro_tab; auto macro_tab = extra->macro_tab;
auto sym = symtab_lookup (macro_tab, macro->name); auto sym = symtab_lookup (macro_tab, macro->name);
if (sym) { if (sym) {