Error when parsing some cpp code which includes macro with bblfsh

Babelfish parser cannot parse this code snippet with cpp driver:
The same code with the macro replaced by function call is OK.

#include <string.h>

#define	ITEM_MATCHES(config_item, s) \
	(strlen(s) == (config_item).len && \
	 strncmp((config_item).str, s, (config_item).len) == 0)

class ConfigItem{ public: int len; char* str;};
class WT_ENCRYPTOR{ public: int rot_N;};

bool ITEM_MATCHES1(ConfigItem config_item, const char* s) {
	return (strlen(s) == (config_item).len && \
	 strncmp((config_item).str, s, (config_item).len) == 0);
}

static int
rotate_customize(ConfigItem keyid, WT_ENCRYPTOR *my_crypto)
{
	// f (ITEM_MATCHES1(keyid, "system")) {  // Parsing OK with function
	if (ITEM_MATCHES(keyid, "system")) {      // Parsing NOK with macro
		my_crypto->rot_N = 13;
	}
	return (0);
}

Is there any option or preprocessing step to be performed to be able to parse this code with bblfsh?

We opened an issue to track it: bblfsh/cpp-driver#70. May be a bug in the C++ parser we use.