improved error-handling on conditionally excluded #-lines
This commit is contained in:
parent
495a037714
commit
007151ef1d
|
@ -190,6 +190,9 @@ int to_endif;
|
|||
toknum = GetToken(&tk);
|
||||
ReplaceMacros = 1;
|
||||
if (toknum != IDENTIFIER) {
|
||||
if (toknum != INTEGER) {
|
||||
lexerror("illegal # line");
|
||||
}
|
||||
SkipToNewLine();
|
||||
continue;
|
||||
}
|
||||
|
@ -202,7 +205,7 @@ int to_endif;
|
|||
default:
|
||||
case K_UNKNOWN:
|
||||
/* invalid word seen after the '#' */
|
||||
lexerror("%s: unknown control", tk.tk_idf->id_text);
|
||||
lexwarning("%s: unknown control", tk.tk_idf->id_text);
|
||||
/* fallthrough */
|
||||
case K_DEFINE:
|
||||
case K_ERROR:
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include "static.h"
|
||||
#include "declar.h"
|
||||
|
||||
/* Some routines (symbol2str, token2str, type2str) which should have
|
||||
/* Some routines (symbol2str, type2str, qual2str) which should have
|
||||
* yielded strings are written to yield a pointer to a transient piece
|
||||
* of memory, containing the string, since this is the only reasonable
|
||||
* thing to do in C. `Transient' means that the result may soon
|
||||
|
|
|
@ -194,6 +194,9 @@ int to_endif;
|
|||
toknum = GetToken(&tk);
|
||||
ReplaceMacros = 1;
|
||||
if (toknum != IDENTIFIER) {
|
||||
if (toknum != INTEGER) {
|
||||
error("illegal # line");
|
||||
}
|
||||
SkipToNewLine();
|
||||
continue;
|
||||
}
|
||||
|
@ -205,7 +208,7 @@ int to_endif;
|
|||
id = findidf(tk.tk_str);
|
||||
if (id == (struct idf *)0) {
|
||||
/* invalid word seen after the '#' */
|
||||
error("%s: unknown control", tk.tk_str);
|
||||
warning("%s: unknown control", tk.tk_str);
|
||||
}
|
||||
free(tk.tk_str);
|
||||
if (id == (struct idf *)0) continue;
|
||||
|
|
Loading…
Reference in a new issue