Я хочу использовать лексер и парсер на самом простом уровне, чтобы решить следующую проблему
У меня есть файл с содержимым формы
TYPE1 ABCR
{
TYPE2 EFG
{
omega 1
TYPE3 AFGH
{
alpha 1
beta 1 2
gamma 1 3 4
}
}
}
TYPE1 CFGRT
{
TYPE2 EFGI
{
omega 0
TYPE3 AFGHJ
{
beta 6 2
gamma 1 8 4
}
}
}
//.... (more members of TYPE1)
У меня есть следующие классы, в которые вышеуказанные данные могут быть проанализированы и заполнены
class TYPE1
{
List<TYPE2> listelems;
}
class TYPE2
{
omega abc;
List<TYPE3> listelems;
}
class TYPE3
{
vec2 beta
vec3 gamma
}
Теперь спецификация моего файла может быть изменена, скажем, больше атрибутов на каждом уровне
а также больше уровней иерархии, таких как TYPE4.
Таким образом, я хочу, чтобы мой анализ был универсальным и расширяемым.
В этом случае, если бы я использовал лексер и синтаксический анализатор, такой как Flex / Bison, каким был бы язык
грамматические правила, которые будут установлены для них?