У мене є вимога проаналізувати та оцінити вирази, визначені користувачем.
Вирази мають форму "foo> 50 && bar <60 &&! (Moo> 50))"
Під час розбору необхідно відстежувати значення для foo> 50, bar <60 і! (Moo> 50) та генерувати події, коли умови виконуються. Оцінювач події викличе оцінку виразів.
Я переглянув MVEL та JEXL, але не зміг визначити, як отримати гачки під час розбору.
Окрім завантаження граматики з javacc або lex / yacc, будь-які інші варіанти?
Я новачок у світі компілятора / парсера (крім класу в школі міста 20 років тому), будь ласка, порадьте, чи я тут зовсім не в дорозі.
Дякую, -квх
Відповіді:
0 для відповіді № 1Ви можете використовувати JFLEX (http://jflex.de/) та / або ANTLR (http://www.antlr.org/) для цього.
AFAIK ANTLR є новим та потужнішим за JFLEX.