Package wycs.syntax

Examples of wycs.syntax.WyalFile


    for(Pair<Path.Entry<?>,Path.Root> p : delta) {
      Path.Entry<WyilFile> sf = (Path.Entry<WyilFile>) p.first();
      Path.Root dst = p.second();
      Path.Entry<WyalFile> df = (Path.Entry<WyalFile>) dst.create(sf.id(), WyalFile.ContentType);
      generatedFiles.add(df);
      WyalFile contents = build(sf.read());
      // Write the file into its destination
      df.write(contents);
      // Then, flush contents to disk in case we generate an assertion
      // error later. In principle, this should be unnecessary when
      // syntax errors are no longer implemented as exceptions.
View Full Code Here


  protected WyalFile build(WyilFile wyilFile) {
    this.filename = wyilFile.filename();

    // TODO: definitely need a better module ID here.
    final WyalFile wyalFile = new WyalFile(wyilFile.id(), filename);

    for (WyilFile.TypeDeclaration type : wyilFile.types()) {
      transform(type);
    }
    for (WyilFile.FunctionOrMethodDeclaration method : wyilFile.functionOrMethods()) {
View Full Code Here

            sf.id(), WyalFile.ContentType);
        generatedFiles.add(df);
        WycsFile wf = sf.read();
        // NOTE: following is really a temporary hack
        new WycsFilePrinter(System.err).write(wf);
        WyalFile waf = decompile(wf);
        df.write(waf);
        count++;
      }
    }
View Full Code Here

    return generatedFiles;
  }

  protected WyalFile decompile(WycsFile wycsFile) {
    return new WyalFile(wycsFile.id(), wycsFile.filename());
  }
View Full Code Here

    int count = 0;
    for (Pair<Path.Entry<?>, Path.Root> p : delta) {
      Path.Entry<?> src = p.first();
      if (src.contentType() == WyalFile.ContentType) {
        Path.Entry<WyalFile> sf = (Path.Entry<WyalFile>) src;
        WyalFile wf = sf.read();
        count++;
        srcFiles.put(wf.id(), sf);
      }
    }

    logger.logTimedMessage("Parsed " + count + " source file(s).",
        System.currentTimeMillis() - tmpTime,
        tmpMem - runtime.freeMemory());

    // ========================================================================
    // Stub Generation
    // ========================================================================
    runtime = Runtime.getRuntime();
    tmpTime = System.currentTimeMillis();
    tmpMem = runtime.freeMemory();
    HashSet<Path.Entry<?>> generatedFiles = new HashSet<Path.Entry<?>>();
    for(Pair<Path.Entry<?>,Path.Root> p : delta) {
      Path.Entry<?> src = p.first();
      Path.Root dst = p.second();
      if (src.contentType() == WyalFile.ContentType) {
        Path.Entry<WyalFile> source = (Path.Entry<WyalFile>) src;
        Path.Entry<WycsFile> target = (Path.Entry<WycsFile>) dst.create(src.id(),WycsFile.ContentType);
        generatedFiles.add(target);
        WyalFile wf = source.read();
        WycsFile wycs = getModuleStub(wf);
        target.write(wycs);
      }
    }
    logger.logTimedMessage("Generated stubs for " + count + " source file(s).",
        System.currentTimeMillis() - tmpTime, tmpMem - runtime.freeMemory());

    // ========================================================================
    // Type source files
    // ========================================================================
    runtime = Runtime.getRuntime();
    tmpTime = System.currentTimeMillis();
    tmpMem = runtime.freeMemory();

    TypePropagation typer = new TypePropagation(this);
    for(Pair<Path.Entry<?>,Path.Root> p : delta) {
      Path.Entry<?> f = p.first();
      if (f.contentType() == WyalFile.ContentType) {
        Path.Entry<WyalFile> sf = (Path.Entry<WyalFile>) f;
        WyalFile wf = sf.read();
        typer.apply(wf);
      }
    }

    logger.logTimedMessage("Typed " + count + " source file(s).",
        System.currentTimeMillis() - tmpTime, tmpMem - runtime.freeMemory());


    // ========================================================================
    // Code Generation
    // ========================================================================
    runtime = Runtime.getRuntime();
    tmpTime = System.currentTimeMillis();
    tmpMem = runtime.freeMemory();

    CodeGeneration generator = new CodeGeneration(this);
    for (Pair<Path.Entry<?>, Path.Root> p : delta) {
      Path.Entry<?> src = p.first();
      Path.Root dst = p.second();
      if (src.contentType() == WyalFile.ContentType) {
        Path.Entry<WyalFile> source = (Path.Entry<WyalFile>) src;
        Path.Entry<WycsFile> target = (Path.Entry<WycsFile>) dst
            .create(src.id(), WycsFile.ContentType);
        WyalFile wf = source.read();
        WycsFile wycs = generator.generate(wf);
        target.write(wycs);
      }
    }
View Full Code Here

TOP

Related Classes of wycs.syntax.WyalFile

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.