Example #1
0
  private static void findFunctionUses(JassProg prog, final HashMap<String, Boolean> useMap) {
    prog.accept(
        new JassProg.DefaultVisitor() {
          @Override
          public void visit(JassFunction func) {

            func.accept(
                new JassFunction.DefaultVisitor() {

                  @Override
                  public void visit(JassExprFuncRef ref) {
                    String name = ref.getFuncName();
                    useMap.put(name, true);
                  }

                  @Override
                  public void visit(JassExprFunctionCall call) {
                    String name = call.getFuncName();
                    useMap.put(name, true);
                  }

                  @Override
                  public void visit(JassStmtCall call) {
                    String name = call.getFuncName();
                    useMap.put(name, true);
                  }
                });
          }
        });
  }