uel
  1. uel
  2. UEL-15

Proudction for literal expression treats #${...} as literal

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: current
    • Fix Version/s: milestone 1
    • Component/s: www
    • Labels:
      None
    • Environment:

      Operating System: All
      Platform: All

    • Issuezilla Id:
      15

      Description

      The current production for literal component is:
      LiteralComponent ::= ([^$#])([$#])? | ([^$#])([$#][^{]) | ([^$#])*

      Depending on exact details of the parser implementation, this results in #$

      {1+1}

      being treated as a literal rather than the expected behaviour of evaluating to #2.

      This can be correct by changing the production for literal component to:
      LiteralComponent ::= ([^$#])([$#])? | ([^$#])([$#][^{$#]) | ([^$#])*

        Activity

        Hide
        kchung added a comment -

        The grammar in the spec has been replaced by the RI's JAVACC grammar in EL 3.0, which, interestingly, also has this problem. It is now fixed.

        Show
        kchung added a comment - The grammar in the spec has been replaced by the RI's JAVACC grammar in EL 3.0, which, interestingly, also has this problem. It is now fixed.

          People

          • Assignee:
            Unassigned
            Reporter:
            markt_asf
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: