Hi Wolfgang,

Many thanks for you answer! I finally decided to download Drools sources in order to debug my program.
Following your advice (starting from EvaluatorRegistry), I finally found that adding a simple "PackageBuilder builder = new PackageBuilder();" statement at the beginning of my program does the trick. For a reason that I don't understand (maybe a ClassLoader or static initialization side-effect), even though that "builder" variable is not used afterwards, it helps my DrlParser accepting the "matches" operator.
So the final code is (for those interested in):

        PackageBuilder builder = new PackageBuilder(); // not used
        Resource brlresource = ResourceFactory.newClassPathResource("com/sample/TestRule.brl");
        BusinessRuleProvider provider = BusinessRuleProviderFactory.getInstance().getProvider();
        Reader knowledge = provider.getKnowledgeReader(brlresource);
        DrlParser parser = new DrlParser();
        PackageDescr pkg = parser.parse(knowledge);

Cheers,

Bruno.


Wolfgang Laun a écrit :
All the operators that are represented as Keywords must be made known
to the parser;
this includes all the predefined ones. This is done in class EvaluatorRegistry..
See org/drools/base/evaluators/EvaluatorRegistry,java and
org/drools/compiler/PackageBuilderConfiguration.java.

Best
-W



On 18 October 2010 11:05, Bruno Freudensprung
<bruno.freudensprung@temis.com> wrote:
  
Hi,

I am using Drools 5.1.1 (but also tried with 5.2.0.SNAPSHOT) to achieve
the following scenario:
1 - use the Drools' Eclipse graphical rule editor to create a BRL file
2 - convert the BRL to DRL using the
org.drools.ide.common.server.util.BRXMLPersistence and
org.drools.ide.common.server.util.BRDRLPersistence classes
3 - parse the DRL with the org.drools.compiler.DrlParser class (in order
to do some things)

I have a problem with DrlParser class that does not seem to accept the
"matches" and "soundslike" operators.
With the following rule... :

rule "TestRule"
   dialect "mvel"
   when
       Document( text soundslike "drink" )
   then
       // some
end

... I get that error message from the DrlParser:

src/main/resources/org/drools/lang/DescrBuilderTree.g: node from line
0:0 mismatched tree node: <unexpected:
[@15,55:64='soundslike',<83>,4:17], resync=soundslike> expecting <UP>

Does anyone has an idea of what's going on?
Many thanks,

Bruno.
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users

    

_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users