Я пытаюсь имитировать синтаксис sql, чтобы создать простой sql-подобный интерфейс для значения ключа -место хранения. Значения, по сути, являются POJO
. Примером может быть
select A.B.C from OBJ_POOL where A.B.X = 45 AND A.B.Y > '88' AND A.B.Z != 'abc';
OBJ _POOL — это просто список POJO одного и того же класса. В этом примере A будет базовым классом.
Class A
Class B
String C
Integer X
String Y
String Z
Теперь A.B.C эквивалентен A.getB ().getC()
Я использую Antlr для анализа приведенного выше оператора для получения AST, а затем hoping
для использования Apache BeanUtils для получения/установки имен полей.
Я написал грамматику, которая строит AST Теперь я столкнулся с двумя проблемами
Вторая проблема вызывает большее беспокойство, поскольку может быть много вещей, которые заявление может сделать.
Вкратце, любые предложения/ссылки/конструкции -шаблонов для правильного анализа небольшого подмножества оператора sql select будут очень признательны
Спасибо