Получить все переменные JavaScript в JAVA - PullRequest
0 голосов
/ 12 апреля 2010

Я использую Rhino и Scripting для платформы Java, чтобы позволить пользователю расширить мое приложение.

Однако пользователь может написать несколько случаев, например (ASTO.value>440) || (ASTO.bellowNormal) и т. Д. Проблема в том, что перед запуском скрипта из моего приложения JAVA с помощью ScriptEngine Я хочу получить имена всех переменных! Потому что я должен знать, какие переменные необходимы для запуска сценария ... Я знаю, что регулярное выражение сделало бы работу, но я не уверен ... Пожалуйста, кто-нибудь может помочь мне выяснить Java-регулярное выражение, чтобы получить переменные, я бы действительно оценил его ..

Ответы [ 3 ]

0 голосов
/ 22 декабря 2011

Мы делаем нечто очень похожее, хотя это написано на Scala, и я могу лишь дать вам несколько советов ...

  1. Тесты действительно важны
  2. Это один из наших более сложных тестов: listArg[Math.floor(4 / listArg[zeroArg]['f3'])]
  3. Переменные, которые описывают дизайн ...

    // chars after which there may be an environment variable used
    private val NewScopeChars = List('[', '(', '/', '*', '+', '-', ',')
    // chars that signal the end of a variable name
    private val SepChars = '.' :: ' ' :: ';' :: ']' :: ')' :: NewScopeChars
    private val ExcludeStrings = List("new", "Math")
    private val LiteralPrefixes = "'" :: "\"" :: (0 to 9).map(_.toString).toList
    

У меня проблема с производительностью , поэтому любая помощь будет признательна.

0 голосов
/ 23 октября 2013

немного поздно, но вас это может заинтересовать: http://ramkulkarni.com/blog/understanding-ast-created-by-mozilla-rhino-parser/

0 голосов
/ 12 апреля 2010

Я нашел решение cx.getDebuggableView (результат) .getParamAndVarCount () Но он не возвращает необъявленные переменные: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...