case '~':
case ';':
case ',':
- case '\\':
pp_token.kind = input.c;
next_char();
return;
eat_pp_directive();
}
+/** behind an #include we can have the special headername lexems.
+ * They're only allowed behind an #include so they're not recognized
+ * by the normal next_preprocessing_token. We handle them as a special
+ * exception here */
static void parse_headername(void)
{
const source_position_t start_position = input.position;
string_t string = { NULL, 0, STRING_ENCODING_CHAR };
assert(obstack_object_size(&symbol_obstack) == 0);
- /* behind an #include we can have the special headername lexems.
- * They're only allowed behind an #include so they're not recognized
- * by the normal next_preprocessing_token. We handle them as a special
- * exception here */
if (info.at_line_begin) {
parse_error("expected headername after #include");
goto finish_error;
condition = true;
} else {
/* evaluate wether we are in true or false case */
- condition = !pp_token.base.symbol->pp_definition == is_ifndef;
+ condition = (bool)!pp_token.base.symbol->pp_definition == is_ifndef;
next_preprocessing_token();
if (conditional->in_else) {
errorf(&pp_token.base.source_position,
"#else after #else (condition started %P)",
- conditional->source_position);
+ &conditional->source_position);
skip_mode = true;
return;
}