Существуют ли действительно простые / ограниченные языки сценариев для JVM/BSF?
Я ищу действительно простой / ограниченный язык сценариев для JVM или Bean Scripting Framework, но не могу найти ни одного.
Мне нужны следующие операторы:
- +
- -
- *
- /
- возможно ** (сила)
- может быть sqrt
... и возможность определять переменные типа Double для создания выражений типа
(A+B)/2
Скрипт может не вызывать какой-либо код JVM (возможно, за исключением класса Math, но это необязательно).
Какие варианты у меня есть?
Я знаю, что могу сам написать такую вещь, но я бы предпочел проверенное, стабильное и быстрое решение. Я пробовал Groovy раньше, и мне действительно это нравится... но трудно дать моим пользователям полный контроль над JVM.
4 ответа
Нет такого простого языка, как мне нужно, поэтому я сам определю его, используя ANTLR. Лучший пример, который я нашел до сих пор, находится в этом ответе.
Я думаю, что JEXL отвечает всем требованиям.
Также, чтобы создать песочницу для ваших выражений, посмотрите на этот вопрос.
Попробуйте BeanShell. Это очень просто и имеет тот же синтаксис, что и Java (хотя обычно вы можете использовать сокращенное обозначение бина). Это отличный инструмент для встраивания возможностей отладки и управления в работающую JVM.