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

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

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

  • +
  • -
  • *
  • /
  • возможно ** (сила)
  • может быть sqrt

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

(A+B)/2

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

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

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

4 ответа

Решение

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

Я думаю, что JEXL отвечает всем требованиям.

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

Проверить FScript, может быть

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

Другие вопросы по тегам