Parsing cpp code with parameterized types

I try to parse the following C++ code with bblfsh:
It seems that bblfsh interprets incorrectly parameterized types like std::deque<std::string>

#include <string>
#include <deque>
#include <iostream>

class ParameterizedType {
        std::deque<std::string> sortPerm(std::string permissions[]);

 *  declaration of Parameterized types
 *  @return std::deque<std::string>
    std::deque<std::string> ParameterizedType::sortPerm(std::string permissions[]) {
        // std::string result(0);               // OK, node is cpp:CPPASTDeclarationStatement
        std::deque<std::string>result(0); // NOK, node is cpp:CPPASTBinaryExpression
        return  result;

And here is my code to identify where is the problem:

import bblfsh

def main():
    client = bblfsh.BblfshClient("")
    ctx = client.parse('ParameterizedType.cpp')
    for unode in ctx.filter("//uast:Function"):
        func_node = unode.get()
        assert func_node['@type'] == 'uast:Function'

        block_node = func_node['Body']
        assert block_node['@type'] == 'uast:Block'

        cpp_expression_statement_node = block_node['Statements'][0]
        assert cpp_expression_statement_node['@type'] == 'cpp:CPPASTExpressionStatement'

        cpp_binary_expression_node = cpp_expression_statement_node['Prop_Expression']
        assert cpp_binary_expression_node['@type'] == 'cpp:CPPASTDeclarationStatement'

if __name__ == '__main__':

Is this some limitation of C+ driver?

Olivier Mesnard

Should be moved to Projects/bblfsh

Hi, Olivier,

I’m pretty sure this is a bug in the C++ driver, and I have filed to track it.