Я недавно начал работать над проектом, касающимся построения графического интерфейса, используя некоторую форму декларативного языка. Я имею в виду, что мне нужно описать иерархию объектов без указания типа графических элементов, которые будут использоваться для «показа» этой иерархии. Например, для некоторой существующей иерархии H , использующей нотацию JSON (или что-то подобное):
H =
{
"title" : "Label_1"
"children" :
[
{
"title" : "Label_2"
"children":
[
{
"title": "Field_A"
"type": "Integer"
"value": 10
},
{
"title": "Field_B"
"type": "String"
"value": "YES"
}
]
}
]
}
Кто-то может создать простое окно, которое будет показано пользователю, нажав кнопку с надписью «Label_1». Окно может быть названо "Label_2"
и имеют два поля, помеченные «Field_A» и «Field_B», принимающие целые и логические значения
значения соответственно.
Кто-то другой может поместить эту иерархию в древовидный список, например,
--------------------------------------------------------
>Label_1 |
>Label_2 |
>Field_A | 10
>Field_B | YES
Мой первый вопрос: ну, мне нужно создать какую-то форму синтаксического анализатора языка, чтобы достичь чего-то подобного? Могу ли я использовать JSON тогда? Хотя мне не нужно поддерживать сложные иерархии, необходимо поддерживать взаимоисключающие иерархии (что-то вроде переключателей для включения / выключения опций). У меня такое ощущение, что это выглядит как какая-то форма синтаксического анализа языка с парой операторов. Не поймите меня неправильно, я инженер по машиностроению, и я не опытный программист.
Заранее спасибо за ваши комментарии и помощь.