Exemplo de analisador de expressão simples usando Boost :: Spirit?

Alguém está ciente de um recurso on-line onde posso descobrir como escrever um analisador de expressão simples usando o Boost :: Spirit ?.

Não preciso necessariamente avaliar a expressão, mas preciso analisá-la e poder retornar um booleano para indicar se a expressão é analisável ou não (por exemplo, colchetes que não correspondem etc.).

Eu preciso que o analisador seja capaz de reconhecer nomes de funções (por exemplo, foo e foobar), portanto, esse também seria um exemplo útil para me ajudar a aprender a escrever a notação BNF.

As expressões serão equações aritméticas normais, ou seja, compreendendo os seguintes símbolos:

suportes de abertura / fechamentooperadores aritméticosnomes de funções reconhecidos e verifique os argumentos necessários

questionAnswers(3)

yourAnswerToTheQuestion