Package AGEvalSwipl.AGEvaluatorSwipl

Examples of AGEvalSwipl.AGEvaluatorSwipl.Schedule


    String prologGrammarPath = outputDir + File.separator + baseName + ".pl";
    AGEvaluatorSwipl.writeFile(prologGrammarPath, prologGrammar);
    if (verbose) System.out.println("=== PL GRAMMAR: === \n " + prologGrammar);
    ages.runGrammar(resourceDir, prologGrammarPath);
   
    Schedule sched = ages.generateVisits(isFixedChildOrder, isExhaustive, false, maxLen, grammar.alegEval, grammar.ast);   
   
    HashMap<String, String> exprPrinter = genExprPrinter(sched._aleg, grammar.ast.condsTop, sched);
    HashMap<String, String> exprToCall = genExprToCall(sched._aleg, grammar.ast.condsTop, sched, exprPrinter);

    ////////////////////////////////////////////////////////////////
       
    Hashtable<Variable, Term> binding = null;
    int round = 0;   
    (new File(outputDir + File.separator + "variants")).mkdir();
   
    String fHeaders = functionHeaders(grammar.ast);
   
    long queryTime = -System.currentTimeMillis();
    System.err.println("Start time: " + queryTime + "ms");
   
    long timeSinceLastQuery = -System.currentTimeMillis();
    int found = 0;
    int cumQTime = 0;
    while (sched.hasNext()) {
      found++;
      binding = sched.moveNext();   
     
      //if (!sched.isAllParallel()) continue;
     
      long qTime = timeSinceLastQuery + System.currentTimeMillis();
      cumQTime += qTime;
      String seq = "";
      for (Term visit : sched.binding.get("P").toTermArray()) {
        seq += " " + visit.arg(2).arg(1).toString().replace("tdLtrU", "inorder");
      }
      System.err.println("sched: " + seq);
      System.err.println("find time: " + qTime + "ms");
      System.err.println("Running average: " + (cumQTime / found) + "ms/query (over " + found + " queries)");

      long compeTime = -System.currentTimeMillis();
     
      (new File(outputDir + File.separator + "variants/variant" + round)).mkdir();
      backend.generateParseFiles(grammar.ast, sched, outputDir + File.separator + "variants/variant" + round + File.separator, verbose, fHeaders);
     
      LoopRecoverer ir = new LoopRecoverer(sched);
     
      String visitOut =
        backend.preVisits(grammar.alegEval, sched)
        + visits(sched._aleg, ir, binding, sched.computeVisitOrders(), sched.classMap, exprToCall, exprPrinter, sched)
        + backend.postVisits(grammar.alegEval, sched);
      String visitDispatches = visitDispatchers(sched.numVisits(), grammar.alegEval, sched.buSubInorderBuIn, sched.buSubInorderBus);
     
      backend.output(baseName, visitOut, visitDispatches, outputDir + File.separator + "variants/variant" + round + File.separator, true, verbose, grammar.ast, sched, fHeaders, binding, grammar.alegEval);
      AGEvaluatorSwipl.writeFile(outputDir + File.separator + "variants/variant" + round + File.separator + "schedule", seq);
      round++;
      //if (!isExhaustive) {
View Full Code Here


   
   
    long totalTime = -System.currentTimeMillis();
   
   
    Schedule sched = ages.generateVisits(isFixedChildOrder, isExhaustive, true, maxLen, grammar.alegEval, grammar.ast);   

   
    ////////////////////////////////////////////////////////////////
     
    Hashtable<Variable, Term> binding = null;
    //int vlen =  0;
   
    if (true) {
      while (sched.hasNext()) {
       

        binding = sched.moveNext();       
        String seq = "";
        //int len = 0;
        for (Term visit : sched.binding.get("P").toTermArray()) {
          //len++;
          seq += " " + visit.arg(2).arg(1).toString().replace("tdLtrU", "inorder");
        }
        System.err.println("sched: " + seq);
        //if (sched.isAllParallel()) break;
        break;
      }
      //return;     
    } //else {
//
//      while (sched.hasNext()) {
//        Hashtable<Variable, Term> nextBinding = sched.moveNext();
//        int nextLen = sched.binding.get("P").toTermArray().length;
//        if (binding == null || nextLen < vlen) {
//          binding = nextBinding;
//          vlen = nextLen;
//        }
//        if (!sched.isAllParallel()) continue;
//        //break;
//      }
//    }
   
    System.err.println("Total time: " + ((totalTime + System.currentTimeMillis())/1000.0) + "s");

    String schedPath = outputDir +File.separator + baseName +".sched";
    AGEvaluatorSwipl.writeFile(schedPath, sched.printBinding());
    AGEvaluatorSwipl.writeFile(schedPath +"Summary", sched.printBindingShort());
   
    String mapPath = outputDir + File.separator + baseName + ".json";
    AGEvaluatorSwipl.writeFile(mapPath, new JSON(sched._ast).getJSON("  ", "  "));

    String fHeaders = functionHeaders(grammar.ast);
   
    backend.generateParseFiles(grammar.ast, sched, outputDir, verbose, fHeaders);
   
    LoopRecoverer ir = new LoopRecoverer(sched);
   
   
    HashMap<String, String> exprPrinter = genExprPrinter(sched._aleg, grammar.ast.condsTop, sched);
    HashMap<String, String> exprToCall = genExprToCall(sched._aleg, grammar.ast.condsTop, sched, exprPrinter);
   
    String visitOut =
      backend.preVisits(grammar.alegEval, sched)
      + visits(sched._aleg, ir, binding, sched.computeVisitOrders(), sched.classMap, exprToCall, exprPrinter, sched)
      + backend.postVisits(grammar.alegEval, sched);
    String visitDispatches = visitDispatchers(sched.numVisits(), grammar.alegEval, sched.buSubInorderBuIn, sched.buSubInorderBus);
   
    backend.output(baseName, visitOut, visitDispatches, outputDir, true, verbose, grammar.ast, sched, fHeaders, binding, grammar.alegEval);
   
    return sched;
  }
View Full Code Here

  public String genHtml (String resourceDir, String outputDir, String inputDir, String testName) throws Exception {
   
    Backend backend = new Html5Generator();
    AbstractGenerator irGen = new AbstractGenerator(backend);
    String alePath = inputDir + testName;
    Schedule sched = irGen.synthesize(alePath, outputDir, resourceDir, verbose, true, false, 8, true);
    HashMap<String, String> exprPrinter = irGen.genExprPrinter(sched._aleg, sched._ast.condsTop, sched);
    HashMap<String, String> exprToCall = irGen.genExprToCall(sched._aleg, sched._ast.condsTop, sched, exprPrinter);
    LoopRecoverer ir = new LoopRecoverer(sched);
    String visitOut =
        backend.preVisits(sched._aleg, sched)
        + irGen.visits(sched._aleg, ir, sched.binding, sched.computeVisitOrders(), sched.classMap, exprToCall, exprPrinter, sched)
        + backend.postVisits(sched._aleg, sched);
    String visitDispatches = irGen.visitDispatchers(sched.numVisits(), sched._aleg, sched.buSubInorderBuIn, sched.buSubInorderBus);

    String fHeaders = irGen.functionHeaders(sched._ast);
    String output = backend.output("", visitOut, visitDispatches, outputDir, false, false, sched._ast, sched, fHeaders, sched.binding, sched._aleg);
   
   
View Full Code Here

    String prologGrammarPath = outputDir + File.separator + baseName + ".pl";
    AGEvaluatorSwipl.writeFile(prologGrammarPath, prologGrammar);
    if (verbose) System.out.println("=== PL GRAMMAR: === \n " + prologGrammar);
    ages.runGrammar(resourceDir, prologGrammarPath);
   
    Schedule sched = ages.generateVisits(isFixedChildOrder, isExhaustive, false, maxLen, grammar.alegEval, grammar.ast);   
   
    HashMap<String, String> exprPrinter = genExprPrinter(sched._aleg, grammar.ast.condsTop, sched);
    HashMap<String, String> exprToCall = genExprToCall(sched._aleg, grammar.ast.condsTop, sched, exprPrinter);

    ////////////////////////////////////////////////////////////////
       
    Hashtable<Variable, Term> binding = null;
    int round = 0;   
    (new File(outputDir + File.separator + "variants")).mkdir();
   
    long queryTime = -System.currentTimeMillis();
    System.err.println("Start time: " + queryTime + "ms");
   
    long timeSinceLastQuery = -System.currentTimeMillis();
    int found = 0;
    int cumQTime = 0;
    int totLen = 0;
    double pcnt = 100;
    int pLen = 100;
    while (sched.hasNext()) {
      found++;
      binding = sched.moveNext();   
     
      //if (!sched.isAllParallel()) continue;
     
      long qTime = timeSinceLastQuery + System.currentTimeMillis();
      cumQTime += qTime;
      String seq = "";
      int sLen = 0;
      int numPar = 0;
      for (Term visit : sched.binding.get("P").toTermArray()) {
        String str = visit.arg(2).arg(1).toString();
        if (str.equals("td") || str.equals("bu")) numPar++;
        seq += " " + visit.arg(2).arg(1).toString().replace("tdLtrU", "inorder");
        sLen++;
      }
      double pPcnt = (0.0 + numPar) / (0.0 + sLen);
      pcnt = Math.min(pcnt,  pPcnt);
     
      totLen += sLen;
      System.out.println("sched: " + seq);
      System.out.println("find time: " + qTime + "ms");
      System.out.println("Running average: " + (cumQTime / found) + "ms/query (over " + found + " queries)");
      System.out.println("Avg len: " + (totLen / found));
      System.out.println("Pcnt self: " + pPcnt);
      System.out.println("Roll pcnt: " + pcnt);
     

      if (true) continue;
     
      long compeTime = -System.currentTimeMillis();
     
      (new File(outputDir + File.separator + "variants/variant" + round)).mkdir();

      backend.generateParseFiles(grammar.ast, sched, outputDir + File.separator + "variants/variant" + round + File.separator, verbose, fHeaders);
     
      String visitOut =
        backend.preVisits(grammar.alegEval, sched)
        + visits(sched._aleg, binding, sched.computeVisitOrders(), sched.classMap, exprToCall, exprPrinter, sched)
        + backend.postVisits(grammar.alegEval, sched);
      String visitDispatches = visitDispatchers(sched.numVisits(), grammar.alegEval, sched.buSubInorderBuIn, sched.buSubInorderBus);
     
      backend.output(baseName, visitOut, visitDispatches, outputDir + File.separator + "variants/variant" + round + File.separator, true, verbose, grammar.ast, sched, fHeaders, binding, grammar.alegEval);
      AGEvaluatorSwipl.writeFile(outputDir + File.separator + "variants/variant" + round + File.separator + "schedule", seq);
      round++;
      //if (!isExhaustive) {
View Full Code Here

    AGEvaluatorSwipl.writeFile(prologGrammarPath, prologGrammar);
    if (verbose) System.out.println("=== PL GRAMMAR: === \n " + prologGrammar);
    ages.runGrammar(resourceDir, prologGrammarPath);
   
   
    Schedule sched = ages.generateVisits(isFixedChildOrder, isExhaustive, true, maxLen, grammar.alegEval, grammar.ast);   
   
    ////////////////////////////////////////////////////////////////
     
    Hashtable<Variable, Term> binding = null;
    //int vlen =  0;
   
    if (true) {
      while (sched.hasNext()) {
       

        binding = sched.moveNext();       
        String seq = "";
        //int len = 0;
        for (Term visit : sched.binding.get("P").toTermArray()) {
          //len++;
          seq += " " + visit.arg(2).arg(1).toString().replace("tdLtrU", "inorder");
        }
        System.err.println("sched: " + seq);
        //if (sched.isAllParallel()) break;
        break;
      }
      //return;     
    } //else {
//
//      while (sched.hasNext()) {
//        Hashtable<Variable, Term> nextBinding = sched.moveNext();
//        int nextLen = sched.binding.get("P").toTermArray().length;
//        if (binding == null || nextLen < vlen) {
//          binding = nextBinding;
//          vlen = nextLen;
//        }
//        if (!sched.isAllParallel()) continue;
//        //break;
//      }
//    }

   
    String schedPath = outputDir +File.separator + baseName +".sched";
    AGEvaluatorSwipl.writeFile(schedPath, sched.printBinding());   
    AGEvaluatorSwipl.writeFile(schedPath +"Summary", sched.printBindingShort());

    String fHeaders = functionHeaders(grammar.ast);
   
    backend.generateParseFiles(grammar.ast, sched, outputDir, verbose, fHeaders);
   
    HashMap<String, String> exprPrinter = genExprPrinter(sched._aleg, grammar.ast.condsTop, sched);
    HashMap<String, String> exprToCall = genExprToCall(sched._aleg, grammar.ast.condsTop, sched, exprPrinter);
   
    String visitOut =
      backend.preVisits(grammar.alegEval, sched)
      + visits(sched._aleg, binding, sched.computeVisitOrders(), sched.classMap, exprToCall, exprPrinter, sched)
      + backend.postVisits(grammar.alegEval, sched);
    String visitDispatches = visitDispatchers(sched.numVisits(), grammar.alegEval, sched.buSubInorderBuIn, sched.buSubInorderBus);
   
    backend.output(baseName, visitOut, visitDispatches, outputDir, true, verbose, grammar.ast, sched, fHeaders, binding, grammar.alegEval);
   
    return sched;
  }
View Full Code Here

TOP

Related Classes of AGEvalSwipl.AGEvaluatorSwipl.Schedule

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.