Kajetan Johannes Hammerle 8 роки тому
батько
коміт
6b04afe8f7

+ 1 - 2
nbproject/private/private.xml

@@ -4,8 +4,7 @@
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
             <file>file:/Users/kajetanjohannes/Dropbox/Projekte/Informatik/SnuviScript/src/me/hammerle/code/CodeParser.java</file>
-            <file>file:/Users/kajetanjohannes/Dropbox/Projekte/Informatik/SnuviScript/src/me/hammerle/code/Script.java</file>
-            <file>file:/Users/kajetanjohannes/Dropbox/Projekte/Informatik/SnuviScript/src/me/hammerle/graphics/GraphicPanel.java</file>
+            <file>file:/Users/kajetanjohannes/Dropbox/Projekte/Informatik/SnuviScript/src/me/hammerle/code/Code.java</file>
         </group>
     </open-files>
 </project-private>

+ 10 - 0
src/me/hammerle/code/Code.java

@@ -218,6 +218,9 @@ public class Code implements Comparable<Code>
                 case '<':
                 case '!':
                 case '%':
+                case ',':
+                case '&':
+                case '|':
                     if(bracketCounter != 0)
                     {
                         break;
@@ -280,6 +283,9 @@ public class Code implements Comparable<Code>
                 case '<':
                 case '!':
                 case '%':
+                case ',':
+                case '&':
+                case '|':
                     if(bracketCounter != 0)
                     {
                         break;
@@ -369,6 +375,7 @@ public class Code implements Comparable<Code>
             }
             newSyntax.append(")");
             pos -= end - start - newSyntax.length();
+            //System.out.println(sb.substring(start, end) + "   ===>    " + newSyntax);
             sb.replace(start, end, newSyntax.toString());
         }
         return sb.toString();
@@ -456,6 +463,9 @@ public class Code implements Comparable<Code>
             code = changeBiSyntax(">", "greater", code, false);
             code = changeBiSyntax(">=", "greaterequal", code, false);
             code = changeBiSyntax("<=", "lessequal", code, false);
+            
+            code = changeBiSyntax("||", "or", code, false);
+            code = changeBiSyntax("&&", "and", code, false);
 
             code = changeUnSyntax("+=", "add", code);
             code = changeUnSyntax("-=", "sub", code);

+ 9 - 1
src/me/hammerle/code/CodeParser.java

@@ -48,6 +48,8 @@ public class CodeParser
     @SuppressWarnings("unchecked")
     public static void initCodeParser()
     {
+        registerConsumer("test", (args, sc) -> 
+                test(args, sc));
         registerFunction("nothing", (args, sc) -> 
                 0);
         registerFunction("", (args, sc) -> 
@@ -581,13 +583,19 @@ public class CodeParser
         sc.getGraphicPanel().addGraphic(getInt(args[0]), rec);
     }
     
+    private static void test(Object[] args, Script sc)
+    {
+        //sc.getGraphicPanel().objects.clear();
+        //sc.getGraphicPanel().getGraphics().drawLine(20, 20, 30, 30);
+    }
+    
     // -------------------------------------------------------------------------    
     // Int-Handler, weil die Objekte double immer zu Double konvertieren
     // ------------------------------------------------------------------------- 
     
     private static int getInt(Object o)
     {
-        return ((Double) o).intValue();
+        return ((Number) o).intValue();
     }
     
     // -------------------------------------------------------------------------    

+ 1 - 0
src/me/hammerle/code/Script.java

@@ -1,5 +1,6 @@
 package me.hammerle.code;
 
+import java.awt.Graphics;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Stack;

+ 12 - 14
src/me/hammerle/graphics/GraphicFrame.java

@@ -5,6 +5,7 @@ import java.awt.event.KeyEvent;
 import java.awt.event.MouseEvent;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
+import java.util.function.Consumer;
 import javax.swing.JFrame;
 import javax.swing.event.MouseInputAdapter;
 import me.hammerle.code.Script;
@@ -30,7 +31,7 @@ public class GraphicFrame extends JFrame
             @Override
             public void windowClosing(WindowEvent evt) 
             {
-                windowClosingEvent(evt);
+                generalEvent("window-closing", (sc) -> {});
             }
         });
         
@@ -63,36 +64,33 @@ public class GraphicFrame extends JFrame
         });
     }
     
-    private void windowClosingEvent(WindowEvent e)
+    private void generalEvent(String name, Consumer<Script> f)
     {
-        if(parent.isLoadedEvent("window-closing"))
+        if(parent.isLoadedEvent(name))
         {
-            parent.setVar("event", "window-closing");
+            parent.setVar("event", name);
+            f.accept(parent);
             parent.runCode(); 
         }
     }
     
     private void keyEvent(KeyEvent e, String name)
     {
-        if(parent.isLoadedEvent("key-" + name))
+        generalEvent("key-" + name, sc -> 
         {
-            parent.setVar("event", "key-" + name);
-            parent.setVar("keycode", e.getKeyCode());
-            parent.setVar("keychar", e.getKeyChar());
-            parent.runCode(); 
-        }
+            sc.setVar("keycode", e.getKeyCode());
+            sc.setVar("keychar", e.getKeyChar());
+        });
     }
     
     private void mouseEvent(MouseEvent e, String name)
     {      
-        if(parent.isLoadedEvent("mouse-" + name))
+        generalEvent("mouse-" + name, sc -> 
         {
-            parent.setVar("event", "mouse-" + name);
             parent.setVar("button", e.getButton());
             parent.setVar("count", e.getClickCount());
             parent.setVar("x", e.getX());
             parent.setVar("y", e.getY());
-            parent.runCode();  
-        }
+        });
     }
 }

+ 1 - 1
src/me/hammerle/graphics/GraphicPanel.java

@@ -29,7 +29,7 @@ public class GraphicPanel extends JPanel
     {
         objects.put(id, g);
     }
-    
+
     @Override
     public synchronized void paint(Graphics g) 
     {

+ 2 - 2
src/me/hammerle/graphics/Rectangle.java

@@ -15,11 +15,11 @@ public class Rectangle extends Line
     {
         if(isFilled())
         {
-            g.fillRect(x1, y1, x2 - x1 - 1, y2 - y1 - 1);
+            g.fillRect(x1, y1, x2 - x1, y2 - y1);
         }
         else
         {
-            g.drawRect(x1, y1, x2 - x1 - 1, y2 - y1 - 1);
+            g.drawRect(x1, y1, x2 - x1, y2 - y1);
         }
     }
 }

+ 6 - 12
start.snuvi

@@ -1,20 +1,14 @@
-time = time.get();
-c = read.color(255,255,255, 100);
-
 size = 500;
-
 g.new(size, size);
+x = 0;
 
-i = 1;
-while(i < 1000)
+while(x < 256)
 {
-    x = math.random(0, size);
-    y = math.random(0, size);
-    g.newPoint(i, c, x, y);
-    i += 1;
+    g.newRectangle(x, read.color(0,0,x), x * 2, 0, x * 2 + 1, size);
+    x += 1;
     reset();
 }
 g.repaint();
-
-debug(time.get() - time);
 wait();
+
+

+ 6 - 0
todo.txt

@@ -0,0 +1,6 @@
+To-Do-List für SnuviScript:
+
+Hierfür am Besten beim einlesen gotoline einbauen:
+continue, break
+
+Kommentare mit // und /* + */, zu Beginn der Code-Generierung entfernen