SnuviScript.java 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. package me.hammerle.snuviscript;
  2. import me.hammerle.code.ISnuviLogger;
  3. import me.hammerle.code.ISnuviScheduler;
  4. import me.hammerle.code.Script;
  5. import me.hammerle.code.SnuviParser;
  6. import me.hammerle.exceptions.PreScriptException;
  7. public class SnuviScript
  8. {
  9. public static void main(String[] args)
  10. {
  11. ISnuviLogger logger = new ISnuviLogger()
  12. {
  13. @Override
  14. public void printException(Exception ex, Script s, int line)
  15. {
  16. System.out.println("Exception " + ex);
  17. System.out.println("Line: " + line);
  18. }
  19. @Override
  20. public void printException(Exception ex)
  21. {
  22. System.out.println("Exception " + ex);
  23. }
  24. @Override
  25. public void printWarning(String s)
  26. {
  27. System.out.println("Warning: " + s);
  28. }
  29. @Override
  30. public void printInfo(String s)
  31. {
  32. System.out.println("Info: " + s);
  33. }
  34. };
  35. SnuviParser parser = new SnuviParser(logger, new ISnuviScheduler()
  36. {
  37. @Override
  38. public int scheduleTask(Runnable r)
  39. {
  40. System.out.println("Schedule");
  41. return 0;
  42. }
  43. @Override
  44. public int scheduleTask(Runnable r, long delay)
  45. {
  46. System.out.println("Schedule");
  47. return 0;
  48. }
  49. });
  50. parser.registerConsumer("debug", (o, sc) -> System.out.println(o[0]));
  51. parser.registerConsumer("deb.ug", (o, sc) -> System.out.println(o[0]));
  52. //parser.registerFunction("ggv", (o, sc) -> o[0]);
  53. //parser.registerFunction("read.item", (o, sc) -> o[0]);
  54. /*StringBuilder sb = new StringBuilder("wusi = 1;\n");
  55. int counter = 0;
  56. for(int i = 0; i < 1000; i++)
  57. {
  58. switch(counter)
  59. {
  60. case 0: sb.append("wusi += 1;\n"); break;
  61. case 1: sb.append("wusi *= 2;\n"); break;
  62. case 2: sb.append("wusi = wusi - 1;\n"); break;
  63. case 3: sb.append("wusi /= 2;\n"); break;
  64. case 4: sb.append("wusi += 1;\n"); break;
  65. }
  66. counter++;
  67. if(counter >= 5)
  68. {
  69. counter = 0;
  70. }
  71. }
  72. sb.append("debug(wusi);");*/
  73. String s = "debug(\"Das ist ein test\");\n" +
  74. "if(5 < 6)\n" +
  75. "{\n" +
  76. " debug(\"hehe\");\n" +
  77. "}\n" +
  78. "else\n" +
  79. "{\n" +
  80. " deb.ug(\"muhahah\");\n" +
  81. " debug(\"ich bin auch da\");\n" +
  82. "}\n" +
  83. "{\n" +
  84. "debug(\"wir sind fertig\");\n" +
  85. "}";
  86. //System.out.println(s);
  87. //System.out.println("___________");
  88. //parser.startScript(Script.class, "test", sb.toString(), true);
  89. try
  90. {
  91. parser.startScript("test", s);
  92. }
  93. catch(PreScriptException ex)
  94. {
  95. //ex.printStackTrace();
  96. logger.printException(ex);
  97. }
  98. //parser.getScript(0).runCode();
  99. //Fraction f = Fraction.fromDouble(Fraction.PI.doubleValue());
  100. //Object o = Code.convertInput("32.323");
  101. //System.out.println(o + " " + o.getClass().getSimpleName());
  102. //System.out.println(Fraction.fromDouble(0.324234235));
  103. }
  104. }