Main.java 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import ast.Formula;
  2. import ast.Interp;
  3. import front.Drzwi;
  4. import parser.Aster;
  5. import parser.Parser;
  6. import parser.TokenTree;
  7. import pisarz.Wypisz;
  8. import java.io.*;
  9. /**
  10. * ulepszyć drzwi + zaczytać denfinicje
  11. */
  12. public class Main {
  13. public static void main(String[] args) throws IOException {
  14. if (args.length > 0) {
  15. InputStream inS;
  16. if (args[0].equals("--")) {
  17. inS = (System.in);
  18. } else {
  19. var f = new File(args[0]);
  20. inS = new FileInputStream(f);
  21. }
  22. TokenTree ogar = Parser.ogar(inS);
  23. inS.close();
  24. var ast = Aster.doAst(ogar);
  25. var interpd = Interp.interp(ast);
  26. System.out.println(ast);
  27. System.out.println(Wypisz.doNapisu(interpd));
  28. } else {
  29. System.out.println("zapodaj cel");
  30. System.out.print("$ ");
  31. Formula cel;
  32. try {
  33. var r = new BufferedReader(new InputStreamReader(System.in));
  34. var l = r.readLine();
  35. cel = Aster.parseFormula(Parser.ogar(l));
  36. // nie zamykam stdin, bdzie potrzebne
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39. var f = "(forall n (implies (forall x (in x n)) (forall x (in x n))))";
  40. System.out.println("Coś nie pykło, podmieniam cel na:\n" + f);
  41. cel = Aster.parseFormula(Parser.ogar(f));
  42. }
  43. System.out.println("No to zaczynamy!");
  44. var d = new Drzwi(cel);
  45. var ast = d.repl();
  46. System.out.println(ast);
  47. }
  48. }
  49. }