From: <jbo...@li...> - 2006-01-10 00:54:55
|
Author: mic...@jb... Date: 2006-01-09 19:54:41 -0500 (Mon, 09 Jan 2006) New Revision: 2047 Added: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/ trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/Demo.java trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/ExpressionExpander.java trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/PseudoNaturalExpander.java Modified: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/natural/grammar/SimpleGrammar.java Log: grammar from a properties object Modified: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/natural/grammar/SimpleGrammar.java =================================================================== --- trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/natural/grammar/SimpleGrammar.java 2006-01-09 23:48:15 UTC (rev 2046) +++ trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/natural/grammar/SimpleGrammar.java 2006-01-10 00:54:41 UTC (rev 2047) @@ -24,6 +24,10 @@ dictionary = new HashMap(); } + public SimpleGrammar(Properties props) { + dictionary = props; + } + public void addToDictionary(String token, String expression) { if (dictionary.containsKey(token)) { throw new NaturalLanguageException("The token [" + token + "] is already in the dictionary."); Added: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/Demo.java =================================================================== --- trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/Demo.java 2006-01-09 23:48:15 UTC (rev 2046) +++ trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/Demo.java 2006-01-10 00:54:41 UTC (rev 2047) @@ -0,0 +1,32 @@ +package org.drools.parser; + +import java.util.Properties; + +public class Demo { + + /** + * @param args + */ + public static void main(String[] args) { + Properties grammar = new Properties(); + grammar.setProperty("is located in", "${left}.getLocation().equals(\"${right}\")"); + grammar.setProperty("before", "${left}.compareTo(${right}) < 0"); + grammar.setProperty("name is", "${left}( name=='${right}' )"); + grammar.setProperty("with attributes", "${left}( ${right} )"); + grammar.setProperty("is", "=="); + grammar.setProperty("and", "&&"); + grammar.setProperty("or", "||"); + + ExpressionExpander expander = new PseudoNaturalExpander(grammar); + + + System.out.println(expander.expandExpression("bob is located in atlanta")); + System.out.println(expander.expandExpression("event before Today")); + System.out.println(expander.expandExpression("Persons name is Michael")); + System.out.println(expander.expandExpression("Person with attributes [age < 21]")); + System.out.println(expander.expandExpression("Person ( age is 21 and city is Atlanta or height is 160 )")); + + + } + +} Property changes on: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/Demo.java ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/ExpressionExpander.java =================================================================== --- trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/ExpressionExpander.java 2006-01-09 23:48:15 UTC (rev 2046) +++ trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/ExpressionExpander.java 2006-01-10 00:54:41 UTC (rev 2047) @@ -0,0 +1,8 @@ +package org.drools.parser; + +public interface ExpressionExpander { + + String expandExpression(String expr); + boolean isExpanded(String expression); + +} Property changes on: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/ExpressionExpander.java ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/PseudoNaturalExpander.java =================================================================== --- trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/PseudoNaturalExpander.java 2006-01-09 23:48:15 UTC (rev 2046) +++ trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/PseudoNaturalExpander.java 2006-01-10 00:54:41 UTC (rev 2047) @@ -0,0 +1,31 @@ +package org.drools.parser; + +import java.util.Properties; + +import org.drools.natural.NaturalLanguageCompiler; +import org.drools.natural.grammar.SimpleGrammar; + +public class PseudoNaturalExpander + implements + ExpressionExpander { + + private NaturalLanguageCompiler compiler; + + public PseudoNaturalExpander(Properties grammar) { + SimpleGrammar g = new SimpleGrammar(grammar); + compiler = new NaturalLanguageCompiler(g); + } + + public String expandExpression(String expr) { + return compiler.compileNaturalExpression(expr); + } + + public boolean isExpanded(String expression) { + if (expression.startsWith("--")) { + return true; + } else { + return false; + } + } + +} Property changes on: trunk/labs/jbossrules/drools-natural-dsl/src/main/java/org/drools/parser/PseudoNaturalExpander.java ___________________________________________________________________ Name: svn:eol-style + native |