return found;
}
+ void pp_space () {
+ while (pp_whitespace () || comment ()) {
+ }
+ }
+
void pp_directive () {
// hash sign
current++;
return;
}
- pp_whitespace ();
+ pp_space ();
char* begin = current;
int len = 0;
}
void pp_eol () {
- pp_whitespace ();
+ pp_space ();
if (current >= end || current[0] != '\n') {
Report.error (get_source_reference (0), "syntax error, expected newline");
}
}
void parse_pp_if () {
- pp_whitespace ();
+ pp_space ();
bool condition = parse_pp_expression ();
}
void parse_pp_elif () {
- pp_whitespace ();
+ pp_space ();
bool condition = parse_pp_expression ();
} else if (current[0] == '(') {
current++;
column++;
- pp_whitespace ();
+ pp_space ();
bool result = parse_pp_expression ();
- pp_whitespace ();
+ pp_space ();
if (current < end && current[0] == ')') {
current++;
column++;
if (current < end && current[0] == '!') {
current++;
column++;
- pp_whitespace ();
+ pp_space ();
return !parse_pp_unary_expression ();
}
bool parse_pp_equality_expression () {
bool left = parse_pp_unary_expression ();
- pp_whitespace ();
+ pp_space ();
while (true) {
if (current < end - 1 && current[0] == '=' && current[1] == '=') {
current += 2;
column += 2;
- pp_whitespace ();
+ pp_space ();
bool right = parse_pp_unary_expression ();
left = (left == right);
} else if (current < end - 1 && current[0] == '!' && current[1] == '=') {
current += 2;
column += 2;
- pp_whitespace ();
+ pp_space ();
bool right = parse_pp_unary_expression ();
left = (left != right);
} else {
bool parse_pp_and_expression () {
bool left = parse_pp_equality_expression ();
- pp_whitespace ();
+ pp_space ();
while (current < end - 1 && current[0] == '&' && current[1] == '&') {
current += 2;
column += 2;
- pp_whitespace ();
+ pp_space ();
bool right = parse_pp_equality_expression ();
left = left && right;
}
bool parse_pp_or_expression () {
bool left = parse_pp_and_expression ();
- pp_whitespace ();
+ pp_space ();
while (current < end - 1 && current[0] == '|' && current[1] == '|') {
current += 2;
column += 2;
- pp_whitespace ();
+ pp_space ();
bool right = parse_pp_and_expression ();
left = left || right;
}