Uploaded image for project: 'JBRULES'
  1. JBRULES
  2. JBRULES-3025

Regression: parser rebuts multiple bindings in constraint conjunction and disjunction

This issue belongs to an archived project. You can view it, but you can't modify it. Learn more

XMLWordPrintable

    • Hide

      Compile the DRL text given in the description.

      Show
      Compile the DRL text given in the description.

      The DRL given below compiled in 5.1.1 and executed as expected, i.e., both rules fired, producing
      or R=1x2
      and R=1x2

      Now, a syntax error is flagged at the position of the 2nd binding ($w. Moreover, the DRL parser is thrown off-track and crashes with sn EmptyStackException as soon as more rules follow.

      package binding;

      declare Rect
      length : int
      width : int
      end

      rule insert
      salience 100
      when
      then
      Rect r = new Rect();
      r.setLength( 1 );
      r.setWidth( 2 );
      insert( r );
      end

      rule "binding and"
      when
      $r: Rect( $l: length == 1 && $w: width == 2 )
      then
      System.out.println( "and R=" + $l + "x" + $w );
      end

      rule "binding or"
      when
      $r: Rect( $l: length == 1 || $w: width == 1 )
      then
      System.out.println( "or R=" + $l + "x" + $w );
      end

            etirelli@redhat.com Edson Tirelli
            laune Wolfgang Laun (Inactive)
            Archiver:
            rhn-support-ceverson Clark Everson

              Created:
              Updated:
              Resolved:
              Archived: