public ObjectControlOp extractControlPart()

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;
  }