Uploaded image for project: 'Commons JEXL'
  1. Commons JEXL
  2. JEXL-114

Allow scripts to create local variables // Add return keyword

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.1
    • Fix Version/s: 2.1
    • Labels:
      None

      Description

      WHY:
      Not having local variables nor return in scripts is inconvenient, especially when dealing with loops.
      This also precludes using read-only contexts easily which are really convenient when letting end-users enter their own expressions.

      HOW:
      This could (will) be implemented by extending the parameters feature (script accept parameters during parsing and thus arguments during evaluation) which is itself based on the notion of 'registers' - an array of objects that the interpreter allocates and uses based on script information.
      It only requires adding one keyword ("var" seems the obvious choice) in the .jjt.
      The "return" keyword is also an easy .jjt addition; obvious implementation is to use an internal exception to force traversing the stack up.

      WHAT:
      Add the "var" and "return" keyword.
      Also add methods to extract the variables (global - see JEXL-113), the parameters (used during parsing) and the local variables (declared within) a script to help pinpoint problems or prepare the evaluation of scripts.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              henrib Henri Biestro
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: