Разбор алгоритма оператора 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

Это там, где у меня действительно проблемы, я не могу придумать хороший способ правильно идентифицировать каждую группу if-else-end.

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

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

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

7
задан Robby Cornelissen 19 August 2014 в 03:52
поделиться