Simplified handling of #error
This commit is contained in:
parent
c64bbfda5c
commit
811ac4ba8a
25
src/cpp.c
25
src/cpp.c
|
@ -59,7 +59,7 @@ struct _Cpp
|
|||
char ** paths;
|
||||
size_t paths_cnt;
|
||||
/* substitutions */
|
||||
char ** defines; /* FIXME also store the value */
|
||||
char ** defines; /* FIXME also store the value, directly in tokens? */
|
||||
size_t defines_cnt;
|
||||
};
|
||||
|
||||
|
@ -405,7 +405,6 @@ static int _cpp_callback_comment(Parser * parser, Token * token, int c,
|
|||
static int _directive_error(Cpp * cpp, Token * token, char const * str);
|
||||
static int _directive_include(Cpp * cpp, Token * token, char const * str);
|
||||
static int _directive_undef(Cpp * cpp, Token * token, char const * str);
|
||||
static int _directive_warning(Cpp * cpp, Token * token, char const * str);
|
||||
|
||||
static int _cpp_callback_directive(Parser * parser, Token * token, int c,
|
||||
void * data)
|
||||
|
@ -455,7 +454,7 @@ static int _cpp_callback_directive(Parser * parser, Token * token, int c,
|
|||
token_set_code(token, CPP_CODE_META_ENDIF);
|
||||
break;
|
||||
case CPP_DIRECTIVE_ERROR:
|
||||
_directive_error(cpp, token, str);
|
||||
token_set_code(token, CPP_CODE_META_ERROR);
|
||||
break;
|
||||
case CPP_DIRECTIVE_IF:
|
||||
/* FIXME implement */
|
||||
|
@ -480,7 +479,7 @@ static int _cpp_callback_directive(Parser * parser, Token * token, int c,
|
|||
_directive_undef(cpp, token, str);
|
||||
break;
|
||||
case CPP_DIRECTIVE_WARNING:
|
||||
_directive_warning(cpp, token, str);
|
||||
token_set_code(token, CPP_CODE_META_WARNING);
|
||||
break;
|
||||
default:
|
||||
/* FIXME implement */
|
||||
|
@ -495,14 +494,8 @@ static int _directive_error(Cpp * cpp, Token * token, char const * str)
|
|||
/* FIXME line and column will probably be wrong for included content
|
||||
* use a parser to keep track of it? */
|
||||
{
|
||||
char buf[256];
|
||||
|
||||
token_set_code(token, CPP_CODE_META_ERROR);
|
||||
snprintf(buf, sizeof(buf), "in %s:%u, %u: %s: %s",
|
||||
cpp_get_filename(cpp), token_get_line(token),
|
||||
token_get_col(token), "Unknown or invalid directive",
|
||||
str);
|
||||
token_set_string(token, buf);
|
||||
token_set_string(token, str);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -611,16 +604,6 @@ static int _directive_undef(Cpp * cpp, Token * token, char const * str)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int _directive_warning(Cpp * cpp, Token * token, char const * str)
|
||||
{
|
||||
int ret;
|
||||
|
||||
/* FIXME implement */
|
||||
ret = _directive_error(cpp, token, str);
|
||||
token_set_code(token, CPP_CODE_META_WARNING);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* cpp_callback_comma */
|
||||
static int _cpp_callback_comma(Parser * parser, Token * token, int c,
|
||||
|
|
14
src/main.c
14
src/main.c
|
@ -108,13 +108,13 @@ static int _cpp_do(Prefs * prefs, FILE * fp, char const * filename)
|
|||
fprintf(stderr, "DEBUG: %s (%d)\n", token_get_string(token),
|
||||
token_get_code(token));
|
||||
#else
|
||||
if((code = token_get_code(token)) == CPP_CODE_META_ERROR)
|
||||
{
|
||||
fprintf(stderr, "%s%s\n", "Error: ",
|
||||
token_get_string(token));
|
||||
}
|
||||
else if(code == CPP_CODE_META_WARNING)
|
||||
fprintf(stderr, "%s%s\n", "Warning: ",
|
||||
if((code = token_get_code(token)) == CPP_CODE_META_ERROR
|
||||
|| code == CPP_CODE_META_WARNING)
|
||||
fprintf(stderr, "%s%s%s%s%u%s%s\n",
|
||||
code == CPP_CODE_META_ERROR
|
||||
? "Error" : "Warning", " in ",
|
||||
token_get_filename(token), ":",
|
||||
token_get_line(token), ": ",
|
||||
token_get_string(token));
|
||||
else if(code >= CPP_CODE_META_FIRST
|
||||
&& code <= CPP_CODE_META_LAST)
|
||||
|
|
Loading…
Reference in New Issue
Block a user