in opennlp-similarity/src/main/java/opennlp/tools/nl2code/NL2Obj.java [184:237]
public ObjectControlOp extractControlPart(List<List<ParseTreeChunk>> lingPhrases, ObjectControlOp prevOp){
ObjectControlOp op = new ObjectControlOp();
List<ParseTreeChunk> parsedSent = lingPhrases.get(4);
List<String> lems = parsedSent.get(0).getLemmas();
boolean bIfSet=false, bForSet=false;
for(int i=0; i<lems.size(); i++){
String c=lems.get(i).toLowerCase();
if (!bForSet){
if ((c.equals("all") || c.equals("each") || c.equals("exists")) && i<lems.size()-1){
String loopSubject = lems.get(i+1).toLowerCase();
String iterator = "_iterator_";
if (loopSubject.endsWith("s"))
iterator = loopSubject.substring(0,loopSubject.length()-1 );
op.setOperatorFor("for(_data_type "+iterator + ": "+loopSubject+")");
bForSet=true;
}
if (c.equals("then") && prevOp.getOperatorIf()!=null && prevOp.getOperatorIf().equals("if")){
op.setOperatorFor("then");
op.setLinkUp(" if");
bForSet=true;
}
if (c.equals("stop")){
op.setOperatorFor("return");
bForSet=true;
}
}
if (!bIfSet){
if (c.equals("check") || c.equals("verify") || c.equals("sure") ){
op.setOperatorIf("if");
bIfSet=true;
}
if (c.equals("otherwise") && prevOp.getOperatorIf()!=null && prevOp.getOperatorIf().equals("if")){
op.setOperatorIf("else");
op.setLinkUp("if");
bIfSet=true;
}
if ((c.equals("so")||c.equals("such")) && lems.get(i+1).toLowerCase().equals("that")){
op.setOperatorIf("if");
bIfSet=true;
}
if((c.equals("go") && lems.get(i+1).toLowerCase().equals("to")) || c.equals("goto") ){
op.setOperatorIf(" break "+lems.get(i+1).toLowerCase()+" _label_ ");
bIfSet=true;
}
}
}
return op;
}