java - Using Groovy scripting language -


i'm defined own grammar. , i'm trying evalute derivation using groovy scripting language. class :

package org.moeaframework.examples.ga.evaluationrule; import java.io.ioexception; import java.io.stringreader; import java.util.arraylist; import java.util.random; import javax.script.bindings; import javax.script.scriptengine; import javax.script.scriptenginemanager; import javax.script.scriptexception; import javax.script.simplebindings; import org.moeaframework.core.problem; import org.moeaframework.core.solution; import org.moeaframework.core.variable.grammar; import org.moeaframework.util.grammar.contextfreegrammar; import org.moeaframework.util.grammar.parser; //import org.moeaframework.util.vector; public  class myprob2 implements problem   {     static random number_generator = new random();     private contextfreegrammar grammar;     int source_index0 =  number_generator.nextint(input.context().length);     //string cont = null;     int source_index1 =  number_generator.nextint(input.context().length);     //string metr = null;     int source_index2 =  number_generator.nextint(input.context().length);     //string prob = null;     //double source_index = number_generator.nextdouble();     static final string grammar =              "<rules> ::= 'if' ' ' <context> ' ' <op>  ' ' <val> ' , ' <metrics>' ' <op> ' '<val1> ' ' <problem> \n" +              "<context> ::= cont \n" +              "<op> ::= '>' | '<' \n" +              "<val> ::= 'h' | 'm' | 'l' \n" +               "<metrics> ::= metr \n" +              "<val1> ::= source_index \n" +               "<problem> ::= prob ";     public myprob2() {              super();                 try {                     grammar = parser.load( new stringreader(grammar));                 } catch (ioexception e) {                     // todo auto-generated catch block                     e.printstacktrace();                 }     }     arraylist<string> strs =new arraylist<string>();     public void evaluate(solution solution)  {          int nbr_prob =0;          string result = null;          int[] codon = ((grammar)solution.getvariable(0)).toarray();          // derive program using codon          string program = grammar.build(codon);          //system.out.println("$$$$$$$$$$"+program);         if (program == null) {           // if null, codon did not produce valid grammar          // todo: penalize objective value     } else {         scriptenginemanager sem = new scriptenginemanager();         scriptengine engine = sem.getenginebyname("groovy");          // initialize variables used program          bindings b = new simplebindings();          b.put("cont", input.context()[source_index0]);          b.put("metr", input.metrics()[source_index1]);          b.put("source_index", number_generator.nextdouble());          b.put("prob", input.problem()[source_index2]);           try {              result = ((string)engine.eval(program, b)).tostring();         } catch (scriptexception e) {             // todo auto-generated catch block             e.printstacktrace();         }          //system.out.println("tessttt"+b);          // todo: use result set objective value          strs.add(result);      //system.out.println(str);      for(int i=0; i<strs.size();i++)      {  string str2 = strs.get(i);         for(int j=1; j<strs.size()-1;j++)         { if(strs.get(j).compareto(str2)!=0)         {  nbr_prob++; }             }      }      solution.setobjective(0, -nbr_prob);      //solution.setobjective(0,rules.size());       }     }      @override     public string getname() {         return "myprob";     }       public solution newsolution() {         solution solution = new solution(1, 1);          solution.setvariable(0, new grammar(10));               return solution;              }       @override     public void close() {         //do nothing     }     } } 

i getting following error:

        @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:151)         @ javax.script.abstractscriptengine.eval(unknown source)         @ org.moeaframework.examples.ga.evaluationrule.myprob2.evaluate(myprob2.java:97)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:99)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:1)         @ java.util.concurrent.futuretask.run(unknown source)         @ java.util.concurrent.threadpoolexecutor.runworker(unknown source)         @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source)         @ java.lang.thread.run(unknown source)     caused by: org.codehaus.groovy.control.multiplecompilationerrorsexception: startup failed:     script59.groovy: 1: unexpected token: cont @ line 1, column 4.        if cont > m , metr > source_index prob           ^      1 error          @ org.codehaus.groovy.control.errorcollector.failiferrors(errorcollector.java:309)         @ org.codehaus.groovy.control.errorcollector.addfatalerror(errorcollector.java:149)         @ org.codehaus.groovy.control.errorcollector.adderror(errorcollector.java:119)         @ org.codehaus.groovy.control.errorcollector.adderror(errorcollector.java:131)         @ org.codehaus.groovy.control.sourceunit.adderror(sourceunit.java:359)         @ org.codehaus.groovy.antlr.antlrparserplugin.transformcstintoast(antlrparserplugin.java:142)         @ org.codehaus.groovy.antlr.antlrparserplugin.parsecst(antlrparserplugin.java:108)         @ org.codehaus.groovy.control.sourceunit.parse(sourceunit.java:236)         @ org.codehaus.groovy.control.compilationunit$1.call(compilationunit.java:164)         @ org.codehaus.groovy.control.compilationunit.applytosourceunits(compilationunit.java:928)         @ org.codehaus.groovy.control.compilationunit.dophaseoperation(compilationunit.java:590)         @ org.codehaus.groovy.control.compilationunit.processphaseoperations(compilationunit.java:566)         @ org.codehaus.groovy.control.compilationunit.compile(compilationunit.java:543)         @ groovy.lang.groovyclassloader.doparseclass(groovyclassloader.java:297)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:267)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:253)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:211)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.getscriptclass(groovyscriptengineimpl.java:366)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:143)         ... 8 more     javax.script.scriptexception: javax.script.scriptexception: groovy.lang.missingpropertyexception: no such property: h class: script56         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:151)         @ javax.script.abstractscriptengine.eval(unknown source)         @ org.moeaframework.examples.ga.evaluationrule.myprob2.evaluate(myprob2.java:97)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:99)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:1)         @ java.util.concurrent.futuretask.run(unknown source)         @ java.util.concurrent.threadpoolexecutor.runworker(unknown source)         @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source)         @ java.lang.thread.run(unknown source)     caused by: javax.script.scriptexception: groovy.lang.missingpropertyexception: no such property: h class: script56         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:347)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:145)         ... 8 more     caused by: groovy.lang.missingpropertyexception: no such property: h class: script56         @ org.codehaus.groovy.runtime.scriptbytecodeadapter.unwrap(scriptbytecodeadapter.java:51)         @ org.codehaus.groovy.runtime.callsite.pogogetpropertysite.getproperty(pogogetpropertysite.java:49)         @ org.codehaus.groovy.runtime.callsite.abstractcallsite.callgroovyobjectgetproperty(abstractcallsite.java:304)         @ script56.run(script56.groovy:1)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:344)         ... 9 more     javax.script.scriptexception: javax.script.scriptexception: groovy.lang.missingpropertyexception: no such property: l class: script58         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:151)         @ javax.script.abstractscriptengine.eval(unknown source)         @ org.moeaframework.examples.ga.evaluationrule.myprob2.evaluate(myprob2.java:97)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:99)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:1)         @ java.util.concurrent.futuretask.run(unknown source)         @ java.util.concurrent.threadpoolexecutor.runworker(unknown source)         @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source)         @ java.lang.thread.run(unknown source)     caused by: javax.script.scriptexception: groovy.lang.missingpropertyexception: no such property: l class: script58         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:347)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:145)         ... 8 more     caused by: groovy.lang.missingpropertyexception: no such property: l class: script58         @ org.codehaus.groovy.runtime.scriptbytecodeadapter.unwrap(scriptbytecodeadapter.java:51)         @ org.codehaus.groovy.runtime.callsite.pogogetpropertysite.getproperty(pogogetpropertysite.java:49)         @ org.codehaus.groovy.runtime.callsite.abstractcallsite.callgroovyobjectgetproperty(abstractcallsite.java:304)         @ script58.run(script58.groovy:1)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:344)         ... 9 more     javax.script.scriptexception: javax.script.scriptexception: groovy.lang.missingpropertyexception: no such property: l class: script54         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:151)         @ javax.script.abstractscriptengine.eval(unknown source)         @ org.moeaframework.examples.ga.evaluationrule.myprob2.evaluate(myprob2.java:97)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:99)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:1)         @ java.util.concurrent.futuretask.run(unknown source)         @ java.util.concurrent.threadpoolexecutor.runworker(unknown source)         @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source)         @ java.lang.thread.run(unknown source)     caused by: javax.script.scriptexception: groovy.lang.missingpropertyexception: no such property: l class: script54         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:347)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:145)         ... 8 more     caused by: groovy.lang.missingpropertyexception: no such property: l class: script54         @ org.codehaus.groovy.runtime.scriptbytecodeadapter.unwrap(scriptbytecodeadapter.java:51)         @ org.codehaus.groovy.runtime.callsite.pogogetpropertysite.getproperty(pogogetpropertysite.java:49)         @ org.codehaus.groovy.runtime.callsite.abstractcallsite.callgroovyobjectgetproperty(abstractcallsite.java:304)         @ script54.run(script54.groovy:1)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:344)         ... 9 more     javax.script.scriptexception: org.codehaus.groovy.control.multiplecompilationerrorsexception: startup failed:     script62.groovy: 1: unexpected token: cont @ line 1, column 4.        if cont > l , metr < source_index prob           ^      1 error          @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:151)         @ javax.script.abstractscriptengine.eval(unknown source)         @ org.moeaframework.examples.ga.evaluationrule.myprob2.evaluate(myprob2.java:97)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:99)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:1)         @ java.util.concurrent.futuretask.run(unknown source)         @ java.util.concurrent.threadpoolexecutor.runworker(unknown source)         @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source)         @ java.lang.thread.run(unknown source)     caused by: org.codehaus.groovy.control.multiplecompilationerrorsexception: startup failed:     script62.groovy: 1: unexpected token: cont @ line 1, column 4.        if cont > l , metr < source_index prob           ^      1 error          @ org.codehaus.groovy.control.errorcollector.failiferrors(errorcollector.java:309)         @ org.codehaus.groovy.control.errorcollector.addfatalerror(errorcollector.java:149)         @ org.codehaus.groovy.control.errorcollector.adderror(errorcollector.java:119)         @ org.codehaus.groovy.control.errorcollector.adderror(errorcollector.java:131)         @ org.codehaus.groovy.control.sourceunit.adderror(sourceunit.java:359)         @ org.codehaus.groovy.antlr.antlrparserplugin.transformcstintoast(antlrparserplugin.java:142)         @ org.codehaus.groovy.antlr.antlrparserplugin.parsecst(antlrparserplugin.java:108)         @ org.codehaus.groovy.control.sourceunit.parse(sourceunit.java:236)         @ org.codehaus.groovy.control.compilationunit$1.call(compilationunit.java:164)         @ org.codehaus.groovy.control.compilationunit.applytosourceunits(compilationunit.java:928)         @ org.codehaus.groovy.control.compilationunit.dophaseoperation(compilationunit.java:590)         @ org.codehaus.groovy.control.compilationunit.processphaseoperations(compilationunit.java:566)         @ org.codehaus.groovy.control.compilationunit.compile(compilationunit.java:543)         @ groovy.lang.groovyclassloader.doparseclass(groovyclassloader.java:297)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:267)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:253)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:211)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.getscriptclass(groovyscriptengineimpl.java:366)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:143)         ... 8 more     javax.script.scriptexception: org.codehaus.groovy.control.multiplecompilationerrorsexception: startup failed:     script63.groovy: 1: unexpected token: cont @ line 1, column 4.        if cont > m , metr < source_index prob           ^      1 error          @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:151)         @ javax.script.abstractscriptengine.eval(unknown source)         @ org.moeaframework.examples.ga.evaluationrule.myprob2.evaluate(myprob2.java:97)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:99)         @ org.moeaframework.util.distributed.distributedproblem$problemevaluator.call(distributedproblem.java:1)         @ java.util.concurrent.futuretask.run(unknown source)         @ java.util.concurrent.threadpoolexecutor.runworker(unknown source)         @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source)         @ java.lang.thread.run(unknown source)     caused by: org.codehaus.groovy.control.multiplecompilationerrorsexception: startup failed:     script63.groovy: 1: unexpected token: cont @ line 1, column 4.        if cont > m , metr < source_index prob           ^      1 error          @ org.codehaus.groovy.control.errorcollector.failiferrors(errorcollector.java:309)         @ org.codehaus.groovy.control.errorcollector.addfatalerror(errorcollector.java:149)         @ org.codehaus.groovy.control.errorcollector.adderror(errorcollector.java:119)         @ org.codehaus.groovy.control.errorcollector.adderror(errorcollector.java:131)         @ org.codehaus.groovy.control.sourceunit.adderror(sourceunit.java:359)         @ org.codehaus.groovy.antlr.antlrparserplugin.transformcstintoast(antlrparserplugin.java:142)         @ org.codehaus.groovy.antlr.antlrparserplugin.parsecst(antlrparserplugin.java:108)         @ org.codehaus.groovy.control.sourceunit.parse(sourceunit.java:236)         @ org.codehaus.groovy.control.compilationunit$1.call(compilationunit.java:164)         @ org.codehaus.groovy.control.compilationunit.applytosourceunits(compilationunit.java:928)         @ org.codehaus.groovy.control.compilationunit.dophaseoperation(compilationunit.java:590)         @ org.codehaus.groovy.control.compilationunit.processphaseoperations(compilationunit.java:566)         @ org.codehaus.groovy.control.compilationunit.compile(compilationunit.java:543)         @ groovy.lang.groovyclassloader.doparseclass(groovyclassloader.java:297)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:267)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:253)         @ groovy.lang.groovyclassloader.parseclass(groovyclassloader.java:211)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.getscriptclass(groovyscriptengineimpl.java:366)         @ org.codehaus.groovy.jsr223.groovyscriptengineimpl.eval(groovyscriptengineimpl.java:143)         ... 8 more     javax.script.scriptexception: org.codehaus.groovy.control.multiplecompilationerrorsexception: startup failed:     script64.groovy: 1: unexpected token: cont @ line 1, column 4.        if cont > l , metr > source_index prob           ^   .................... 

please give me idea solve problem. !!


Comments

Popular posts from this blog

android - Pass an Serializable object in AIDL -

How to provide Authorization & Authentication using Asp.net, C#? -

How to use Authorization & Authentication in Asp.net, C#? -