Мне нужно разобрать C-подобные скрипты (на самом деле Groovy) на несколько частей, используя "(", ")", "&&" и "||"в качестве разделителей, таких как:
Из строки
(boo == 1 && (foo == null || foo == 0))
Мне нужно получить какой-нибудь список вроде этого
["boo == 1", "&&", ["foo == null", "||", "foo == 0"] ]
(list of 3 items, third one is a list too)
С условием "foo == 1"выглядит легко, но это также может быть "foo.item (2) .contains ('abcd') == true" (условие может содержать и фигурные скобки), и я застрял с ним.
Что такоелучший способ реализовать такой парсер?Есть ли полезные библиотеки или фреймворки, которые могут мне помочь?А какой из них проще в моем случае?