Boost :: Spirit Grammar para esquema não classificado
-
24-09-2019 - |
Pergunta
Eu tenho uma seção de um esquema para um modelo que preciso analisar. Vamos dizer que parece o seguinte.
{
type = "Standard";
hostname="x.y.z";
port="123";
}
As propriedades são:
- Os elementos podem parecer não ordenados.
- Todos os elementos que fazem parte do esquema devem aparecer, e nenhum outro.
- Todos os atributos sintetizados dos elementos entram em uma estrutura.
- (Opcional) O esquema pode, no futuro, depender do campo de tipo - ou seja, campos diferentes com base no tipo - no entanto, não estou preocupado com isso no momento.
Solução
De acordo com os fóruns do espírito, o seguinte é a resposta.
Você pode querer dar uma olhada no analisador de permutação:
a ^ b ^ c
Que corresponde a A ou B ou C (ou uma combinação dos mesmos) em qualquer sequência.
Se o objetivo é analisar uma estrutura, a melhor maneira de testar o clima todos os membros essenciais foram inicializados, os membros da estrutura devem ser envolvidos boost::optional<>
A presença do atributo pode então ser facilmente testada após o pós-parto durante o tempo de execução.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow