Передача узла дерева?
У операции разыменования приоритет ниже, чем у операции выбора элемента по указателю, т.е. в вызове *root->next.push_back(node); порядок операций такой *(root->)next.push_back(node);, что, видимо, не то что вы хотели, расставьте скобки так: (*root)->next.push_back(node); и будет счастье.
А вообще, какой смысл в On_BG передавать указатель на указатель? Судя по коду достаточно просто указателя, а еще лучше - ссылки.
По сути. Вы забыли порядок исполнения операций.(*root)->next.push_back(node);
Чем ещё можно улучшить код…
Зачем вам указатель на указатель? Как массив указателей? Как «либо ссылка на указатель, либо ничего»? По видимому, ни то, ни другое, указатель, по сути передаётся по значению — так что стоило бы функцию переделать как…bool Syntax::On_BG(Node * root)
или дажеbool Syntax::On_BG(Node & root)
PS. И да, указатель передаётся по значению, но то, на что он указывает, не исчезнет с выходом из функции.