Преобразование из JSON как DSL в qml - PullRequest
1 голос
/ 15 марта 2019

Мы определили наш собственный DSL для описания пользовательских интерфейсов на основе JSON.

{
    "widget": 
    {                            
        "type": "label",  
        "left": "30px",
        ...
    }
}

Мы не поддерживаем родительские и дочерние отношения, поэтому максимальная глубина этого дерева равна 1.

Моя задача состоит в том, чтобы я проверил, были ли установлены все обязательные свойства, нет ли дублирующих свойств и т. Д., И преобразовал этот документ в действительный qml.

Наша первая идея состояла в том, чтобы использовать Bison и flex, но мы столкнулись с проблемами, которые мы должны определить тип, а затем проверить условно на основе типа, свойства которого должны быть установлены. Поскольку Bison является LF (1) -парсером, я сильно сомневаюсь, что это возможно без некоторого взлома, верно?

Может ли кто-нибудь дать мне несколько ключевых слов или идей, как решить эту задачу? Решение должно быть основано на C ++.

...