Я пытаюсь создать очень простой синтаксический анализатор для структуры типа 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
Это там, где у меня действительно проблемы, я не могу придумать хороший способ правильно идентифицировать каждую группу if-else-end.
Кроме того, я не уверен, какой хороший способ отслеживать, должна ли строка в предложении else быть истинной.
Я искал в сети различные типы алгоритмов синтаксического анализа, все они казались очень абстрактными и сложными.
Есть ли какие-нибудь предложения по поводу того, с чего лучше начать эту специальность, не относящуюся к информатике?