Разбор алгоритма if-else if

Я пытаюсь создать очень простой парсер для структуры типа if-else, который будет создавать и выполнять оператор SQL.

Вместо того, чтобы тестировать условия для выполнения операторов, я бы тестировал условия для построения строки.

Примером отчета может быть:

select column1
from
#if(VariableA = Case1)
table1
#else if(VariableA = Case2)
table2
#else
defaultTable
#end

Если VariableA равна Case1, результирующая строка должна быть:select column1 from table1

Более сложный пример был бы с вложенными операторами if:

select column1
from
#if(VariableA = Case1)
#if(VariableB = Case3)
    table3
#else
    table4
#else if(VariableA = Case2)
table2
#else
defaultTable
#end

Это то, где у меня действительно возникают проблемы, я не могу придумать, как правильно определить каждую группу «если-либо-еще».

Кроме того, я не уверен, какой хороший способ отслеживать, должна ли строка в предложении «else» иметь значение true.

Я искал в сети различные типы алгоритмов синтаксического анализа, все они кажутся очень абстрактными и сложными.

Есть ли какие-либо предложения о том, где можно начать обучение по этой специальности, не связанной с информатикой?

Ответы на вопрос(3)

Ваш ответ на вопрос