Hi,

I want to parse a file and match the file for several regular expressions.
Based on what I match, I write more
rules so that based on all the rules, I can set my results.

Brute force method : Parse the entire file and add all the lines into the
working memory. Write rules that
check each line for some regular expression. This works great.

I want to optimize the above, as we are checking each line, if we got we are
looking for, then I want to get out.

So, I wrote a function inside the rule file like the below

function String getLine(BufferedReader fileReader) {
   String line;
   try {
       if ((line = fileReader.readLine()) != null) {
           return line.toLowerCase();
       } else {
           System.out.println("This is an empty line.");
       }
   } catch (Exception ex) {
   }
   return line;
}

Now, I need to write the rules that will use this.

rule "Generate New Line"

   when
       eval (getLine(fileReader) != null)
   then
       System.out.println("Generate new line");
       //assert(getLine(fileReader)); // need to somehow assert the line
specified in the eval condition

end

Also, I am confused, how to specify file end.

rule "File End"

   when
       eval (getLine(fileReader) == null)
   then
       System.out.println("Reached end of file"); // I am assuming this is
not needed since if all rules are executed, then it will get out of
fireRules() anyways ?

end

Any help is appreciated.

TIA,
Krishnan (newbie)

-
Sivaramakrishna Iyer Krishnan (Anand)

Never assume the obvious is true.
- William Safire
_______________________________________________
rules-users mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/rules-users

Reply via email to