Package wyvern.tools

Source Code of wyvern.tools.Interpreter

package wyvern.tools;

import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Optional;

import edu.umn.cs.melt.copper.runtime.logging.CopperParserException;
import wyvern.stdlib.Globals;
import wyvern.tools.parsing.Wyvern;
import wyvern.tools.parsing.transformers.DSLTransformer;
import wyvern.tools.typedAST.interfaces.TypedAST;
import wyvern.tools.typedAST.interfaces.Value;
import wyvern.tools.util.TreeWriter;

public class Interpreter {

  public static void main(String[] args) {
    if (args.length < 1) {
      System.err.println("usage: wyvern <filename>");
      System.exit(-1);
    }

    String filename = args[0];
    File file = new File(filename);
    if (!file.canRead()) {
      System.err.println("Cannot read file " + filename);
      System.exit(-1);
    }
   
    try {
      Reader reader = new FileReader(file);
      TypedAST res = (TypedAST) new Wyvern().parse(reader, filename);
      res.typecheck(Globals.getStandardEnv(), Optional.empty());
      res = new DSLTransformer().transform(res);
      Value finalV = res.evaluate(Globals.getStandardEnv());
      TreeWriter t = new TreeWriter();
      finalV.writeArgsToTree(t);
      System.out.println(t.getResult());
    } catch (IOException e) {
      System.err.println("Error reading file " + filename);
    } catch (CopperParserException e) {
      System.err.print("Parsing error: ");
      e.printStackTrace();
    }
  }

}
TOP

Related Classes of wyvern.tools.Interpreter

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.