コード例 #1
0
  private void createMatchMethod(
      String symbol,
      String namePrefix,
      GExpansion expansion,
      NodeList<Stmt> stmts,
      NodeList<FormalParameter> params) {
    if (STATISTICS) {
      stmts =
          listOf(
              stmt("historize(\"In " + namePrefix + "\");").build(),
              tryStmt(blockStmt().withStmts(stmts))
                  .withFinallyBlock(
                      blockStmt()
                          .withStmts(
                              listOf(stmt("historize(\"Out " + namePrefix + "\");").build()))));
    }

    List<MethodDecl> methods = perSymbolMatchMethods.get(symbol);
    if (methods == null) {
      methods = new ArrayList<>();
      perSymbolMatchMethods.put(symbol, methods);
    }
    methods.add(matchMethod(namePrefix, stmts, expansion, params));
  }