Анализатор логических выражений (грамматика) в 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
Ввод будет либо через командную строку, либо в форме строки. Мне просто нужен парсер.
Есть ли источники, которые могут помочь мне сделать это?