Существуют ли действительно простые/ограниченные языки сценариев для JVM/BSF?

Я ищу действительно простой/ограниченный язык сценариев для JVM или Bean Scripting Framework но не может найти.

Мне нужны следующие операторы:

  • +
  • -
  • *
  • /
  • возможно ** (мощность)
  • возможно, sqrt

... и возможность определять двойные переменные типа для создания выражений типа

(A+B)/2

script не может вызывать код JVM (возможно, за исключением класса Math, но это необязательно).

Какие у меня есть варианты?

Я знаю, что могу просто написать такое, но я бы предпочел испытанное, стабильное и быстрое решение. Я пробовал Groovy раньше и действительно понравился... но трудно не дать моим пользователям полную власть над JVM с ним.

Ответы

Ответ 1

Нет языка, который так прост, как я им нужен, поэтому я сам определяю его с помощью ANTLR. Лучший пример, который я нашел до сих пор, находится в этом ответе.

Ответ 2

Я думаю, JEXL соответствует счету.

Кроме того, чтобы создать песочницу для ваших выражений, просмотрите этот вопрос.

Ответ 3

проверьте FScript, возможно

Ответ 4

Попробуйте BeanShell. Он очень прост и имеет тот же синтаксис, что и Java (хотя вы обычно можете использовать сокращенную нотацию bean accesor). Это отличный инструмент для внедрения возможностей отладки и управления в управляемую JVM.