Есть хорошая структура данных для таких целей -- называется S-выражение. S-выражение -- это либо атом (число, символ), либо список, первый элемент которого -- название функции, а остальные элементы -- аргументы данной функции, которые являются также S-выражениями.
Стоит посмотреть на язык Lisp, который хорошо подходит для обработки символьных выражений (по крайней мере, создавался для этого).
|