Анализатор логических выражений (грамматика) в c ++

Я хочу разобрать логическое выражение (в C ++). Форма ввода:

a and b xor (c and d or a and b);

Я просто хочу разобрать это выражение в дереве, зная правило приоритета (не, и, или не, или). Поэтому приведенное выше выражение должно выглядеть примерно так:

(a and b) xor ((c and d) or (a and b));

парсеру.

И дерево будет иметь форму:

                        a
                   and
                        b
               or
                        c
                   and
                        d
        xor
                   a
              and
                   b

Ввод будет либо через командную строку, либо в форме строки. Мне просто нужен парсер.

Есть ли источники, которые могут помочь мне сделать это?

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

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