Package apigen.adt

Source Code of apigen.adt.ADTReader

package apigen.adt;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Iterator;

import apigen.adt.api.Factory;
import apigen.adt.api.types.Modules;
import apigen.gen.GenerationParameters;
import aterm.ParseError;
import aterm.pure.SingletonFactory;

public class ADTReader {

  public static ADT readADT(GenerationParameters params) {
    Iterator<String> iter = params.getInputFiles().iterator();
    String fileName = "";
    try {
      Factory factory = Factory.getInstance(SingletonFactory
          .getInstance());
      Modules all = factory.makeModules();
      // Entries all = factory.makeEntries();
      while (iter.hasNext()) {
        fileName = iter.next();
        FileInputStream fis = new FileInputStream(fileName);
        try {
          all = all.concat(factory.ModulesFromFile(fis));
        } catch (IllegalArgumentException ex) {
          fis.close();
          if (params.getApiName() == null) {
            throw new IllegalArgumentException(
                "No API name specified");
          }
          fis = new FileInputStream(fileName);

          all = factory.makeModules(factory.makeModule_Modulentry(
              factory.makeModuleName_Name(""), factory
                  .makeImports(), factory.makeSorts(),
              factory.EntriesFromFile(fis)));

        }
      }
      return ADT.initialize(all);
    } catch (FileNotFoundException e) {
      System.err.println("Error: File not found: " + fileName);
    } catch (IOException e) {
      System.err.println("Error: Could not read ADT from input: "
          + fileName);
    } catch (ParseError e) {
      System.err.println("Error: A parse error occurred in the ADT file:"
          + e);
    } catch (ADTException e) {
      System.err.println("Error: ");
      System.err.println(e);
    }

    return null;
  }
}
TOP

Related Classes of apigen.adt.ADTReader

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.