Package apigen.gen.c

Source Code of apigen.gen.c.Main

package apigen.gen.c;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

import apigen.adt.ADT;
import apigen.adt.ADTReader;
import apigen.adt.api.Factory;
import aterm.pure.SingletonFactory;

public class Main {
  public final static void main(String[] arguments) {
    CGenerationParameters params = buildDefaultParameters();

    List<String> args = new LinkedList<String>(Arrays.asList(arguments));
    if (args.size() == 0) {
      usage(params);
      System.exit(1);
    } else if (args.contains("-h") || args.contains("--help")) {
      usage(params);
      return;
    }

    try {
      params.parseArguments(args);
      params.check();
    } catch (IllegalArgumentException e) {
      System.err.println(e.getMessage());
      usage(params);
      System.exit(1);
    }

    generateAPI(params, ADTReader.readADT(params));
  }

  private static void usage(CGenerationParameters params) {
    System.err.println("Usage: apigen.gen.c.Main [options]");
    System.err.println("options:");
    System.err.println();
    System.err.println(params.usage());
  }

  private static CGenerationParameters buildDefaultParameters() {
    CGenerationParameters params = new CGenerationParameters();
    params.setOutputDirectory(".");
    params.setPrefix("");
    params.setVerbose(false);
    params.setFolding(false);
    return params;
  }

  public static void generateAPI(CGenerationParameters params, ADT adt) {
    Factory factory = Factory.getInstance(SingletonFactory.getInstance());
    APIGenerator apigen = new APIGenerator(params, adt);
    apigen.run();
    new CDictionaryGenerator(adt, params, factory.getPureFactory(), apigen
        .getAFunRegister()).run();
    try {
      PrintStream out = new PrintStream(new FileOutputStream(params
          .getOutputDirectory()
          + File.separatorChar + "apigen.env"));
      out.println("APINAME=" + params.getApiName());
      out.println("DIRECTORY=" + params.getOutputDirectory());
      out.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }

  }
}
TOP

Related Classes of apigen.gen.c.Main

TOP
Copyright © 2018 www.massapi.com. 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.