Allow '//'-style comments in #defines.
diff --git a/libacc/acc.cpp b/libacc/acc.cpp
index 6c03657..475e308 100644
--- a/libacc/acc.cpp
+++ b/libacc/acc.cpp
@@ -3821,8 +3821,20 @@
inp();
}
String value;
+ bool appendToValue = true;
while (ch != '\n' && ch != EOF) {
- value.append(ch);
+ // Check for '//' comments.
+ if (appendToValue && ch == '/') {
+ inp();
+ if (ch == '/') {
+ appendToValue = false;
+ } else {
+ value.append('/');
+ }
+ }
+ if (appendToValue && ch != EOF) {
+ value.append(ch);
+ }
inp();
}
char* pDefn = (char*)mGlobalArena.alloc(value.len() + 1);
diff --git a/libacc/tests/data/defines.c b/libacc/tests/data/defines.c
index 2a6fdf7..840917d 100644
--- a/libacc/tests/data/defines.c
+++ b/libacc/tests/data/defines.c
@@ -1,7 +1,8 @@
// Simple tests of the C preprocessor
-#define A (1 + 2)
+#define A (4 / 2)
+#define B 1 // This is a comment. With a / in it.
int main() {
- return A;
+ return A + B;
}