mirror of
https://github.com/aNNiMON/Own-Programming-Language-Tutorial.git
synced 2024-09-20 08:44:20 +03:00
Добавлен метод для инициализации констант
This commit is contained in:
parent
a484df12e3
commit
792e6e6db4
12
src/com/annimon/ownlang/annotations/ConstantInitializer.java
Normal file
12
src/com/annimon/ownlang/annotations/ConstantInitializer.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package com.annimon.ownlang.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
|
@Target(ElementType.TYPE)
|
||||||
|
public @interface ConstantInitializer {
|
||||||
|
|
||||||
|
}
|
@ -5,6 +5,6 @@ package com.annimon.ownlang.lib.modules;
|
|||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
public interface Module {
|
public interface Module {
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
import com.annimon.ownlang.exceptions.ArgumentsMismatchException;
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
@ -20,6 +20,7 @@ import javax.swing.JPanel;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class canvas implements Module {
|
public final class canvas implements Module {
|
||||||
|
|
||||||
private static JFrame frame;
|
private static JFrame frame;
|
||||||
@ -30,8 +31,18 @@ public final class canvas implements Module {
|
|||||||
private static NumberValue lastKey;
|
private static NumberValue lastKey;
|
||||||
private static ArrayValue mouseHover;
|
private static ArrayValue mouseHover;
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
Variables.set("VK_UP", NumberValue.of(KeyEvent.VK_UP));
|
||||||
|
Variables.set("VK_DOWN", NumberValue.of(KeyEvent.VK_DOWN));
|
||||||
|
Variables.set("VK_LEFT", NumberValue.of(KeyEvent.VK_LEFT));
|
||||||
|
Variables.set("VK_RIGHT", NumberValue.of(KeyEvent.VK_RIGHT));
|
||||||
|
Variables.set("VK_FIRE", NumberValue.of(KeyEvent.VK_ENTER));
|
||||||
|
Variables.set("VK_ESCAPE", NumberValue.of(KeyEvent.VK_ESCAPE));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("window", new CreateWindow());
|
Functions.set("window", new CreateWindow());
|
||||||
Functions.set("prompt", new Prompt());
|
Functions.set("prompt", new Prompt());
|
||||||
Functions.set("keypressed", new KeyPressed());
|
Functions.set("keypressed", new KeyPressed());
|
||||||
@ -45,14 +56,7 @@ public final class canvas implements Module {
|
|||||||
Functions.set("drawstring", new DrawString());
|
Functions.set("drawstring", new DrawString());
|
||||||
Functions.set("color", new SetColor());
|
Functions.set("color", new SetColor());
|
||||||
Functions.set("repaint", new Repaint());
|
Functions.set("repaint", new Repaint());
|
||||||
|
|
||||||
Variables.set("VK_UP", NumberValue.of(KeyEvent.VK_UP));
|
|
||||||
Variables.set("VK_DOWN", NumberValue.of(KeyEvent.VK_DOWN));
|
|
||||||
Variables.set("VK_LEFT", NumberValue.of(KeyEvent.VK_LEFT));
|
|
||||||
Variables.set("VK_RIGHT", NumberValue.of(KeyEvent.VK_RIGHT));
|
|
||||||
Variables.set("VK_FIRE", NumberValue.of(KeyEvent.VK_ENTER));
|
|
||||||
Variables.set("VK_ESCAPE", NumberValue.of(KeyEvent.VK_ESCAPE));
|
|
||||||
|
|
||||||
lastKey = NumberValue.MINUS_ONE;
|
lastKey = NumberValue.MINUS_ONE;
|
||||||
mouseHover = new ArrayValue(new Value[] { NumberValue.ZERO, NumberValue.ZERO });
|
mouseHover = new ArrayValue(new Value[] { NumberValue.ZERO, NumberValue.ZERO });
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.exceptions.TypeException;
|
import com.annimon.ownlang.exceptions.TypeException;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
@ -42,6 +43,7 @@ import javax.swing.JFrame;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class canvasfx implements Module {
|
public final class canvasfx implements Module {
|
||||||
|
|
||||||
private static final int FX_EFFECT_TYPE = 5301;
|
private static final int FX_EFFECT_TYPE = 5301;
|
||||||
@ -84,8 +86,12 @@ public final class canvasfx implements Module {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("window", new CreateWindow());
|
Functions.set("window", new CreateWindow());
|
||||||
Functions.set("repaint", new Repaint());
|
Functions.set("repaint", new Repaint());
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.exceptions.TypeException;
|
import com.annimon.ownlang.exceptions.TypeException;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import java.text.DateFormat;
|
import java.text.DateFormat;
|
||||||
@ -13,6 +14,7 @@ import java.util.Locale;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class date implements Module {
|
public final class date implements Module {
|
||||||
|
|
||||||
private static final int DATE_DATE_FORMAT = 9829;
|
private static final int DATE_DATE_FORMAT = 9829;
|
||||||
@ -26,13 +28,16 @@ public final class date implements Module {
|
|||||||
SECOND = new StringValue("second"),
|
SECOND = new StringValue("second"),
|
||||||
MILLISECOND = new StringValue("millisecond");
|
MILLISECOND = new StringValue("millisecond");
|
||||||
|
|
||||||
@Override
|
public static void initConstants() {
|
||||||
public void init() {
|
|
||||||
Variables.set("STYLE_FULL", NumberValue.of(DateFormat.FULL));
|
Variables.set("STYLE_FULL", NumberValue.of(DateFormat.FULL));
|
||||||
Variables.set("STYLE_LONG", NumberValue.of(DateFormat.LONG));
|
Variables.set("STYLE_LONG", NumberValue.of(DateFormat.LONG));
|
||||||
Variables.set("STYLE_MEDIUM", NumberValue.of(DateFormat.MEDIUM));
|
Variables.set("STYLE_MEDIUM", NumberValue.of(DateFormat.MEDIUM));
|
||||||
Variables.set("STYLE_SHORT", NumberValue.of(DateFormat.SHORT));
|
Variables.set("STYLE_SHORT", NumberValue.of(DateFormat.SHORT));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("newDate", new date_newDate());
|
Functions.set("newDate", new date_newDate());
|
||||||
Functions.set("newFormat", new date_newFormat());
|
Functions.set("newFormat", new date_newFormat());
|
||||||
Functions.set("formatDate", new date_format());
|
Functions.set("formatDate", new date_format());
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.exceptions.ArgumentsMismatchException;
|
import com.annimon.ownlang.exceptions.ArgumentsMismatchException;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
@ -20,13 +21,18 @@ import java.util.Map;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class files implements Module {
|
public final class files implements Module {
|
||||||
|
|
||||||
private static Map<Integer, FileInfo> files;
|
private static Map<Integer, FileInfo> files;
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
files = new HashMap<>();
|
files = new HashMap<>();
|
||||||
|
initConstants();
|
||||||
Variables.set("FILES_COMPARATOR", new FunctionValue(new filesComparatorFunction()));
|
Variables.set("FILES_COMPARATOR", new FunctionValue(new filesComparatorFunction()));
|
||||||
|
|
||||||
Functions.set("fopen", new fopen());
|
Functions.set("fopen", new fopen());
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import com.annimon.ownlang.lib.modules.functions.*;
|
import com.annimon.ownlang.lib.modules.functions.*;
|
||||||
|
|
||||||
@ -7,10 +8,16 @@ import com.annimon.ownlang.lib.modules.functions.*;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class functional implements Module {
|
public final class functional implements Module {
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
Variables.set("IDENTITY", new FunctionValue(args -> args[0]));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("foreach", new functional_foreach());
|
Functions.set("foreach", new functional_foreach());
|
||||||
Functions.set("map", new functional_map());
|
Functions.set("map", new functional_map());
|
||||||
Functions.set("flatmap", new functional_flatmap());
|
Functions.set("flatmap", new functional_flatmap());
|
||||||
@ -20,7 +27,5 @@ public final class functional implements Module {
|
|||||||
|
|
||||||
Functions.set("chain", new functional_chain());
|
Functions.set("chain", new functional_chain());
|
||||||
Functions.set("combine", new functional_combine());
|
Functions.set("combine", new functional_combine());
|
||||||
|
|
||||||
Variables.set("IDENTITY", new FunctionValue(args -> args[0]));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import com.annimon.ownlang.lib.modules.functions.*;
|
import com.annimon.ownlang.lib.modules.functions.*;
|
||||||
|
|
||||||
@ -7,10 +8,15 @@ import com.annimon.ownlang.lib.modules.functions.*;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class http implements Module {
|
public final class http implements Module {
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("urlencode", new http_urlencode());
|
Functions.set("urlencode", new http_urlencode());
|
||||||
Functions.set("http", new http_http());
|
Functions.set("http", new http_http());
|
||||||
Functions.set("download", new http_download());
|
Functions.set("download", new http_download());
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import java.lang.reflect.Array;
|
import java.lang.reflect.Array;
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@ -13,12 +14,17 @@ import java.util.List;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class java implements Module {
|
public final class java implements Module {
|
||||||
|
|
||||||
private static final Value NULL = new NullValue();
|
private static final Value NULL = new NullValue();
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Variables.define("null", NULL);
|
Variables.define("null", NULL);
|
||||||
Variables.define("boolean.class", new ClassValue(boolean.class));
|
Variables.define("boolean.class", new ClassValue(boolean.class));
|
||||||
Variables.define("boolean[].class", new ClassValue(boolean[].class));
|
Variables.define("boolean[].class", new ClassValue(boolean[].class));
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.exceptions.ArgumentsMismatchException;
|
import com.annimon.ownlang.exceptions.ArgumentsMismatchException;
|
||||||
import com.annimon.ownlang.lib.Arguments;
|
import com.annimon.ownlang.lib.Arguments;
|
||||||
import com.annimon.ownlang.lib.ArrayValue;
|
import com.annimon.ownlang.lib.ArrayValue;
|
||||||
@ -31,10 +32,10 @@ import java.util.function.Function;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class jdbc implements Module {
|
public final class jdbc implements Module {
|
||||||
|
|
||||||
@Override
|
public static void initConstants() {
|
||||||
public void init() {
|
|
||||||
Variables.define("TRANSACTION_NONE", NumberValue.of(Connection.TRANSACTION_NONE));
|
Variables.define("TRANSACTION_NONE", NumberValue.of(Connection.TRANSACTION_NONE));
|
||||||
Variables.define("TRANSACTION_READ_COMMITTED", NumberValue.of(Connection.TRANSACTION_READ_COMMITTED));
|
Variables.define("TRANSACTION_READ_COMMITTED", NumberValue.of(Connection.TRANSACTION_READ_COMMITTED));
|
||||||
Variables.define("TRANSACTION_READ_UNCOMMITTED", NumberValue.of(Connection.TRANSACTION_READ_UNCOMMITTED));
|
Variables.define("TRANSACTION_READ_UNCOMMITTED", NumberValue.of(Connection.TRANSACTION_READ_UNCOMMITTED));
|
||||||
@ -59,7 +60,11 @@ public final class jdbc implements Module {
|
|||||||
Variables.define("TYPE_FORWARD_ONLY", NumberValue.of(ResultSet.TYPE_FORWARD_ONLY));
|
Variables.define("TYPE_FORWARD_ONLY", NumberValue.of(ResultSet.TYPE_FORWARD_ONLY));
|
||||||
Variables.define("TYPE_SCROLL_INSENSITIVE", NumberValue.of(ResultSet.TYPE_SCROLL_INSENSITIVE));
|
Variables.define("TYPE_SCROLL_INSENSITIVE", NumberValue.of(ResultSet.TYPE_SCROLL_INSENSITIVE));
|
||||||
Variables.define("TYPE_SCROLL_SENSITIVE", NumberValue.of(ResultSet.TYPE_SCROLL_SENSITIVE));
|
Variables.define("TYPE_SCROLL_SENSITIVE", NumberValue.of(ResultSet.TYPE_SCROLL_SENSITIVE));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("getConnection", getConnectionFunction());
|
Functions.set("getConnection", getConnectionFunction());
|
||||||
Functions.set("sqlite", getConnectionFunction("jdbc:sqlite:"));
|
Functions.set("sqlite", getConnectionFunction("jdbc:sqlite:"));
|
||||||
Functions.set("mysql", getConnectionFunction("jdbc:", () -> Class.forName("com.mysql.jdbc.Driver")));
|
Functions.set("mysql", getConnectionFunction("jdbc:", () -> Class.forName("com.mysql.jdbc.Driver")));
|
||||||
|
@ -9,8 +9,12 @@ import com.annimon.ownlang.lib.modules.functions.*;
|
|||||||
*/
|
*/
|
||||||
public final class json implements Module {
|
public final class json implements Module {
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("jsonencode", new json_encode());
|
Functions.set("jsonencode", new json_encode());
|
||||||
Functions.set("jsondecode", new json_decode());
|
Functions.set("jsondecode", new json_decode());
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import java.util.function.DoubleBinaryOperator;
|
import java.util.function.DoubleBinaryOperator;
|
||||||
import java.util.function.DoubleFunction;
|
import java.util.function.DoubleFunction;
|
||||||
@ -10,12 +11,19 @@ import java.util.function.UnaryOperator;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class math implements Module {
|
public final class math implements Module {
|
||||||
|
|
||||||
private static final DoubleFunction<NumberValue> doubleToNumber = NumberValue::of;
|
private static final DoubleFunction<NumberValue> doubleToNumber = NumberValue::of;
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
Variables.set("PI", NumberValue.of(Math.PI));
|
||||||
|
Variables.set("E", NumberValue.of(Math.E));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("abs", math::abs);
|
Functions.set("abs", math::abs);
|
||||||
Functions.set("acos", functionConvert(Math::acos));
|
Functions.set("acos", functionConvert(Math::acos));
|
||||||
Functions.set("asin", functionConvert(Math::asin));
|
Functions.set("asin", functionConvert(Math::asin));
|
||||||
@ -52,9 +60,6 @@ public final class math implements Module {
|
|||||||
Functions.set("toDegrees", functionConvert(Math::toDegrees));
|
Functions.set("toDegrees", functionConvert(Math::toDegrees));
|
||||||
Functions.set("toRadians", functionConvert(Math::toRadians));
|
Functions.set("toRadians", functionConvert(Math::toRadians));
|
||||||
Functions.set("ulp", functionConvert(Math::ulp, Math::ulp));
|
Functions.set("ulp", functionConvert(Math::ulp, Math::ulp));
|
||||||
|
|
||||||
Variables.set("PI", NumberValue.of(Math.PI));
|
|
||||||
Variables.set("E", NumberValue.of(Math.E));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Value abs(Value... args) {
|
private static Value abs(Value... args) {
|
||||||
|
@ -11,8 +11,12 @@ import java.util.stream.Collectors;
|
|||||||
*/
|
*/
|
||||||
public final class ounit implements Module {
|
public final class ounit implements Module {
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("assertEquals", new assertEquals());
|
Functions.set("assertEquals", new assertEquals());
|
||||||
Functions.set("assertNotEquals", new assertNotEquals());
|
Functions.set("assertNotEquals", new assertNotEquals());
|
||||||
Functions.set("assertSameType", new assertSameType());
|
Functions.set("assertSameType", new assertSameType());
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import com.annimon.ownlang.lib.modules.functions.robot_exec;
|
import com.annimon.ownlang.lib.modules.functions.robot_exec;
|
||||||
import com.annimon.ownlang.lib.modules.functions.robot_fromclipboard;
|
import com.annimon.ownlang.lib.modules.functions.robot_fromclipboard;
|
||||||
@ -15,6 +16,7 @@ import java.util.Map;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class robot implements Module {
|
public final class robot implements Module {
|
||||||
|
|
||||||
private static final int CLICK_DELAY = 200;
|
private static final int CLICK_DELAY = 200;
|
||||||
@ -28,9 +30,22 @@ public final class robot implements Module {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static Robot awtRobot;
|
private static Robot awtRobot;
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
Variables.set("VK_DOWN", NumberValue.of(KeyEvent.VK_DOWN));
|
||||||
|
Variables.set("VK_LEFT", NumberValue.of(KeyEvent.VK_LEFT));
|
||||||
|
Variables.set("VK_RIGHT", NumberValue.of(KeyEvent.VK_RIGHT));
|
||||||
|
Variables.set("VK_FIRE", NumberValue.of(KeyEvent.VK_ENTER));
|
||||||
|
Variables.set("VK_ESCAPE", NumberValue.of(KeyEvent.VK_ESCAPE));
|
||||||
|
|
||||||
|
Variables.set("BUTTON1", NumberValue.of(InputEvent.BUTTON1_MASK));
|
||||||
|
Variables.set("BUTTON2", NumberValue.of(InputEvent.BUTTON2_MASK));
|
||||||
|
Variables.set("BUTTON3", NumberValue.of(InputEvent.BUTTON3_MASK));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
|
initConstants();
|
||||||
initialize();
|
initialize();
|
||||||
|
|
||||||
Functions.set("click", convertFunction(robot::click));
|
Functions.set("click", convertFunction(robot::click));
|
||||||
@ -59,16 +74,6 @@ public final class robot implements Module {
|
|||||||
Functions.set("fromClipboard", new robot_fromclipboard());
|
Functions.set("fromClipboard", new robot_fromclipboard());
|
||||||
Functions.set("execProcess", new robot_exec(robot_exec.Mode.EXEC));
|
Functions.set("execProcess", new robot_exec(robot_exec.Mode.EXEC));
|
||||||
Functions.set("execProcessAndWait", new robot_exec(robot_exec.Mode.EXEC_AND_WAIT));
|
Functions.set("execProcessAndWait", new robot_exec(robot_exec.Mode.EXEC_AND_WAIT));
|
||||||
|
|
||||||
Variables.set("VK_DOWN", NumberValue.of(KeyEvent.VK_DOWN));
|
|
||||||
Variables.set("VK_LEFT", NumberValue.of(KeyEvent.VK_LEFT));
|
|
||||||
Variables.set("VK_RIGHT", NumberValue.of(KeyEvent.VK_RIGHT));
|
|
||||||
Variables.set("VK_FIRE", NumberValue.of(KeyEvent.VK_ENTER));
|
|
||||||
Variables.set("VK_ESCAPE", NumberValue.of(KeyEvent.VK_ESCAPE));
|
|
||||||
|
|
||||||
Variables.set("BUTTON1", NumberValue.of(InputEvent.BUTTON1_MASK));
|
|
||||||
Variables.set("BUTTON2", NumberValue.of(InputEvent.BUTTON2_MASK));
|
|
||||||
Variables.set("BUTTON3", NumberValue.of(InputEvent.BUTTON3_MASK));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void initialize() {
|
private static void initialize() {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
import com.annimon.ownlang.Main;
|
import com.annimon.ownlang.Main;
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
import com.annimon.ownlang.lib.modules.functions.*;
|
import com.annimon.ownlang.lib.modules.functions.*;
|
||||||
|
|
||||||
@ -8,12 +9,16 @@ import com.annimon.ownlang.lib.modules.functions.*;
|
|||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class std implements Module {
|
public final class std implements Module {
|
||||||
|
|
||||||
|
public static void initConstants() {
|
||||||
|
Variables.set("ARGS", ArrayValue.of(Main.getOwnlangArgs()));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init() {
|
public void init() {
|
||||||
Variables.set("ARGS", ArrayValue.of(Main.getOwnlangArgs()));
|
initConstants();
|
||||||
|
|
||||||
Functions.set("echo", new std_echo());
|
Functions.set("echo", new std_echo());
|
||||||
Functions.set("readln", new std_readln());
|
Functions.set("readln", new std_readln());
|
||||||
Functions.set("length", new std_length());
|
Functions.set("length", new std_length());
|
||||||
|
@ -1,22 +1,27 @@
|
|||||||
package com.annimon.ownlang.lib.modules;
|
package com.annimon.ownlang.lib.modules;
|
||||||
|
|
||||||
|
import com.annimon.ownlang.annotations.ConstantInitializer;
|
||||||
import com.annimon.ownlang.lib.*;
|
import com.annimon.ownlang.lib.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author aNNiMON
|
* @author aNNiMON
|
||||||
*/
|
*/
|
||||||
|
@ConstantInitializer
|
||||||
public final class types implements Module {
|
public final class types implements Module {
|
||||||
|
|
||||||
@Override
|
public static void initConstants() {
|
||||||
public void init() {
|
|
||||||
Variables.set("OBJECT", NumberValue.of(Types.OBJECT));
|
Variables.set("OBJECT", NumberValue.of(Types.OBJECT));
|
||||||
Variables.set("NUMBER", NumberValue.of(Types.NUMBER));
|
Variables.set("NUMBER", NumberValue.of(Types.NUMBER));
|
||||||
Variables.set("STRING", NumberValue.of(Types.STRING));
|
Variables.set("STRING", NumberValue.of(Types.STRING));
|
||||||
Variables.set("ARRAY", NumberValue.of(Types.ARRAY));
|
Variables.set("ARRAY", NumberValue.of(Types.ARRAY));
|
||||||
Variables.set("MAP", NumberValue.of(Types.MAP));
|
Variables.set("MAP", NumberValue.of(Types.MAP));
|
||||||
Variables.set("FUNCTION", NumberValue.of(Types.FUNCTION));
|
Variables.set("FUNCTION", NumberValue.of(Types.FUNCTION));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() {
|
||||||
|
initConstants();
|
||||||
Functions.set("typeof", args -> NumberValue.of(args[0].type()));
|
Functions.set("typeof", args -> NumberValue.of(args[0].type()));
|
||||||
Functions.set("string", args -> new StringValue(args[0].asString()));
|
Functions.set("string", args -> new StringValue(args[0].asString()));
|
||||||
Functions.set("number", args -> NumberValue.of(args[0].asNumber()));
|
Functions.set("number", args -> NumberValue.of(args[0].asNumber()));
|
||||||
|
Loading…
Reference in New Issue
Block a user