Звучит как домашнее задание: -)
Сначала вы должны определить свой язык рекурсивно.
Переменная - это правильно сформированная форма (WFF)
если X является WFF, то не X является WFF
если X и Y - WFF, то (X -> Y) - WFF
если X и Y - WFF, тогда (X и Y -) WFF
Как только грамматика определена, используйте LEX или Flex или эквивалент для Java
или ваш предпочитаемый язык для написания обычного сканера.
Используйте YACC или Bison или эквивалент для написания потомственного рекурсивного парсера.
Позже добавьте атрибуты к грамматике, чтобы получить оценку выражения, которое вы хотите оценить, потомственным рекурсивным способом.