aboutsummaryrefslogtreecommitdiff
path: root/src/c_tokenizer.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <superjoe30@gmail.com>2017-12-07 11:52:52 -0500
committerAndrew Kelley <superjoe30@gmail.com>2017-12-07 11:52:52 -0500
commitdc502042d58ccfb3ad05d68c865a9079fe9015ec (patch)
treea14a5c8759dadce39008334c3ed986e07e1a9cf3 /src/c_tokenizer.cpp
parent62c25af8021fc399c9a8c667dd986a458b40a7dd (diff)
downloadzig-dc502042d58ccfb3ad05d68c865a9079fe9015ec.tar.gz
zig-dc502042d58ccfb3ad05d68c865a9079fe9015ec.zip
translate-c: refactor prefix and suffix op C macro parsing
Diffstat (limited to 'src/c_tokenizer.cpp')
-rw-r--r--src/c_tokenizer.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/c_tokenizer.cpp b/src/c_tokenizer.cpp
index 6be2cf991e..3746cf5853 100644
--- a/src/c_tokenizer.cpp
+++ b/src/c_tokenizer.cpp
@@ -121,6 +121,9 @@ static void begin_token(CTokenize *ctok, CTokId id) {
case CTokIdRParen:
case CTokIdEOF:
case CTokIdDot:
+ case CTokIdAsterisk:
+ case CTokIdBang:
+ case CTokIdTilde:
break;
}
}
@@ -228,10 +231,22 @@ void tokenize_c_macro(CTokenize *ctok, const uint8_t *c) {
begin_token(ctok, CTokIdRParen);
end_token(ctok);
break;
+ case '*':
+ begin_token(ctok, CTokIdAsterisk);
+ end_token(ctok);
+ break;
case '-':
begin_token(ctok, CTokIdMinus);
end_token(ctok);
break;
+ case '!':
+ begin_token(ctok, CTokIdBang);
+ end_token(ctok);
+ break;
+ case '~':
+ begin_token(ctok, CTokIdTilde);
+ end_token(ctok);
+ break;
default:
return mark_error(ctok);
}