diff --git a/src/main/java/com/annimon/ownlang/modules/base64/base64.java b/modules/main/src/main/java/com/annimon/ownlang/modules/base64/base64.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/base64/base64.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/base64/base64.java diff --git a/src/main/java/com/annimon/ownlang/modules/canvas/canvas.java b/modules/main/src/main/java/com/annimon/ownlang/modules/canvas/canvas.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/canvas/canvas.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/canvas/canvas.java diff --git a/src/main/java/com/annimon/ownlang/modules/canvasfx/canvasfx.java b/modules/main/src/main/java/com/annimon/ownlang/modules/canvasfx/canvasfx.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/canvasfx/canvasfx.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/canvasfx/canvasfx.java diff --git a/src/main/java/com/annimon/ownlang/modules/collections/collections.java b/modules/main/src/main/java/com/annimon/ownlang/modules/collections/collections.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/collections/collections.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/collections/collections.java diff --git a/src/main/java/com/annimon/ownlang/modules/date/date.java b/modules/main/src/main/java/com/annimon/ownlang/modules/date/date.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/date/date.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/date/date.java diff --git a/src/main/java/com/annimon/ownlang/modules/downloader/downloader.java b/modules/main/src/main/java/com/annimon/ownlang/modules/downloader/downloader.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/downloader/downloader.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/downloader/downloader.java diff --git a/src/main/java/com/annimon/ownlang/modules/files/files.java b/modules/main/src/main/java/com/annimon/ownlang/modules/files/files.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/files/files.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/files/files.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/AbstractButtonValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/AbstractButtonValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/AbstractButtonValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/AbstractButtonValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/ComponentValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/ComponentValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/ComponentValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/ComponentValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/Components.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/Components.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/Components.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/Components.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/ContainerValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/ContainerValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/ContainerValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/ContainerValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JButtonValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JButtonValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JButtonValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JButtonValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JComponentValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JComponentValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JComponentValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JComponentValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JFrameValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JFrameValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JFrameValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JFrameValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JLabelValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JLabelValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JLabelValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JLabelValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JPanelValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JPanelValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JPanelValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JPanelValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JProgressBarValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JProgressBarValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JProgressBarValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JProgressBarValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JScrollPaneValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JScrollPaneValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JScrollPaneValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JScrollPaneValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JTextAreaValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JTextAreaValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JTextAreaValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JTextAreaValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JTextComponentValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JTextComponentValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JTextComponentValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JTextComponentValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/JTextFieldValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/JTextFieldValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/JTextFieldValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/JTextFieldValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/LayoutManagerValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/LayoutManagerValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/LayoutManagerValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/LayoutManagerValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/LayoutManagers.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/LayoutManagers.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/LayoutManagers.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/LayoutManagers.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/WindowValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/WindowValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/WindowValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/WindowValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/forms/forms.java b/modules/main/src/main/java/com/annimon/ownlang/modules/forms/forms.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/forms/forms.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/forms/forms.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_chain.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_chain.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_chain.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_chain.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_combine.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_combine.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_combine.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_combine.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_dropwhile.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_dropwhile.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_dropwhile.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_dropwhile.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_filter.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_filter.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_filter.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_filter.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_flatmap.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_flatmap.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_flatmap.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_flatmap.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_foreach.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_foreach.java similarity index 88% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_foreach.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_foreach.java index fc74383..b13c656 100644 --- a/src/main/java/com/annimon/ownlang/modules/functional/functional_foreach.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_foreach.java @@ -6,19 +6,12 @@ import java.util.Map; public final class functional_foreach implements Function { - private static final int UNKNOWN = -1; - @Override public Value execute(Value... args) { Arguments.check(2, args.length); final Value container = args[0]; final Function consumer = ValueUtils.consumeFunction(args[1], 1); - final int argsCount; - if (consumer instanceof UserDefinedFunction) { - argsCount = ((UserDefinedFunction) consumer).getArgsCount(); - } else { - argsCount = UNKNOWN; - } + final int argsCount = consumer.getArgsCount(); switch (container.type()) { case Types.STRING: diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_map.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_map.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_map.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_map.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_reduce.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_reduce.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_reduce.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_reduce.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_sortby.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_sortby.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_sortby.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_sortby.java diff --git a/src/main/java/com/annimon/ownlang/modules/functional/functional_stream.java b/modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_stream.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/functional/functional_stream.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/functional/functional_stream.java diff --git a/src/main/java/com/annimon/ownlang/modules/gzip/gzip.java b/modules/main/src/main/java/com/annimon/ownlang/modules/gzip/gzip.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/gzip/gzip.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/gzip/gzip.java diff --git a/src/main/java/com/annimon/ownlang/modules/http/http.java b/modules/main/src/main/java/com/annimon/ownlang/modules/http/http.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/http/http.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/http/http.java diff --git a/src/main/java/com/annimon/ownlang/modules/http/http_download.java b/modules/main/src/main/java/com/annimon/ownlang/modules/http/http_download.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/http/http_download.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/http/http_download.java diff --git a/src/main/java/com/annimon/ownlang/modules/http/http_http.java b/modules/main/src/main/java/com/annimon/ownlang/modules/http/http_http.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/http/http_http.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/http/http_http.java diff --git a/src/main/java/com/annimon/ownlang/modules/http/http_urlencode.java b/modules/main/src/main/java/com/annimon/ownlang/modules/http/http_urlencode.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/http/http_urlencode.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/http/http_urlencode.java diff --git a/src/main/java/com/annimon/ownlang/modules/java/java.java b/modules/main/src/main/java/com/annimon/ownlang/modules/java/java.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/java/java.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/java/java.java diff --git a/src/main/java/com/annimon/ownlang/modules/jdbc/jdbc.java b/modules/main/src/main/java/com/annimon/ownlang/modules/jdbc/jdbc.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/jdbc/jdbc.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/jdbc/jdbc.java diff --git a/src/main/java/com/annimon/ownlang/modules/json/json.java b/modules/main/src/main/java/com/annimon/ownlang/modules/json/json.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/json/json.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/json/json.java diff --git a/src/main/java/com/annimon/ownlang/modules/json/json_decode.java b/modules/main/src/main/java/com/annimon/ownlang/modules/json/json_decode.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/json/json_decode.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/json/json_decode.java diff --git a/src/main/java/com/annimon/ownlang/modules/json/json_encode.java b/modules/main/src/main/java/com/annimon/ownlang/modules/json/json_encode.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/json/json_encode.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/json/json_encode.java diff --git a/src/main/java/com/annimon/ownlang/modules/math/math.java b/modules/main/src/main/java/com/annimon/ownlang/modules/math/math.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/math/math.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/math/math.java diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/CallValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/CallValue.java similarity index 96% rename from src/main/java/com/annimon/ownlang/modules/okhttp/CallValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/CallValue.java index 41db95a..3f96722 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/CallValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/CallValue.java @@ -1,62 +1,62 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.lib.Arguments; -import com.annimon.ownlang.lib.Converters; -import com.annimon.ownlang.lib.Function; -import com.annimon.ownlang.lib.MapValue; -import com.annimon.ownlang.lib.NumberValue; -import com.annimon.ownlang.lib.StringValue; -import com.annimon.ownlang.lib.Value; -import com.annimon.ownlang.lib.ValueUtils; -import java.io.IOException; -import okhttp3.Call; -import okhttp3.Callback; -import okhttp3.Response; - -public class CallValue extends MapValue { - - private final Call call; - - public CallValue(Call call) { - super(6); - this.call = call; - init(); - } - - private void init() { - set("cancel", Converters.voidToVoid(call::cancel)); - set("enqueue", this::enqueue); - set("execute", this::execute); - set("isCanceled", Converters.voidToBoolean(call::isCanceled)); - set("isExecuted", Converters.voidToBoolean(call::isExecuted)); - } - - private Value enqueue(Value[] args) { - Arguments.checkOrOr(1, 2, args.length); - final Function onResponse = ValueUtils.consumeFunction(args[0], 0); - call.enqueue(new Callback() { - @Override - public void onResponse(Call call, Response response) throws IOException { - onResponse.execute(new CallValue(call), new ResponseValue(response)); - } - - @Override - public void onFailure(Call call, IOException e) { - if (args.length == 2) { - ValueUtils.consumeFunction(args[1], 1) - .execute(new CallValue(call), new StringValue(e.getMessage())); - } - } - }); - return NumberValue.ZERO; - } - - private Value execute(Value[] args) { - Arguments.check(0, args.length); - try { - return new ResponseValue(call.execute()); - } catch (IOException e) { - throw new RuntimeException(e); - } - } -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.Converters; +import com.annimon.ownlang.lib.Function; +import com.annimon.ownlang.lib.MapValue; +import com.annimon.ownlang.lib.NumberValue; +import com.annimon.ownlang.lib.StringValue; +import com.annimon.ownlang.lib.Value; +import com.annimon.ownlang.lib.ValueUtils; +import java.io.IOException; +import okhttp3.Call; +import okhttp3.Callback; +import okhttp3.Response; + +public class CallValue extends MapValue { + + private final Call call; + + public CallValue(Call call) { + super(6); + this.call = call; + init(); + } + + private void init() { + set("cancel", Converters.voidToVoid(call::cancel)); + set("enqueue", this::enqueue); + set("execute", this::execute); + set("isCanceled", Converters.voidToBoolean(call::isCanceled)); + set("isExecuted", Converters.voidToBoolean(call::isExecuted)); + } + + private Value enqueue(Value[] args) { + Arguments.checkOrOr(1, 2, args.length); + final Function onResponse = ValueUtils.consumeFunction(args[0], 0); + call.enqueue(new Callback() { + @Override + public void onResponse(Call call, Response response) throws IOException { + onResponse.execute(new CallValue(call), new ResponseValue(response)); + } + + @Override + public void onFailure(Call call, IOException e) { + if (args.length == 2) { + ValueUtils.consumeFunction(args[1], 1) + .execute(new CallValue(call), new StringValue(e.getMessage())); + } + } + }); + return NumberValue.ZERO; + } + + private Value execute(Value[] args) { + Arguments.check(0, args.length); + try { + return new ResponseValue(call.execute()); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/HttpClientValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/HttpClientValue.java similarity index 97% rename from src/main/java/com/annimon/ownlang/modules/okhttp/HttpClientValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/HttpClientValue.java index b222339..baea7c9 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/HttpClientValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/HttpClientValue.java @@ -1,122 +1,122 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.exceptions.TypeException; -import com.annimon.ownlang.lib.*; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.Response; -import okhttp3.WebSocket; -import okhttp3.WebSocketListener; -import okio.ByteString; - -public class HttpClientValue extends MapValue { - - private final OkHttpClient client; - - public HttpClientValue(OkHttpClient client) { - super(10); - this.client = client; - init(); - } - - public OkHttpClient getClient() { - return client; - } - - private void init() { - set("connectTimeoutMillis", Converters.voidToInt(client::connectTimeoutMillis)); - set("followRedirects", Converters.voidToBoolean(client::followRedirects)); - set("followSslRedirects", Converters.voidToBoolean(client::followSslRedirects)); - set("newCall", args -> { - Arguments.check(1, args.length); - final Request request = Values.getRequest(args[0], " at first argument"); - return new CallValue(client.newCall(request)); - }); - set("newWebSocket", this::newWebSocket); - set("pingIntervalMillis", Converters.voidToInt(client::pingIntervalMillis)); - set("readTimeoutMillis", Converters.voidToInt(client::readTimeoutMillis)); - set("retryOnConnectionFailure", Converters.voidToBoolean(client::retryOnConnectionFailure)); - set("writeTimeoutMillis", Converters.voidToInt(client::writeTimeoutMillis)); - } - - private static final StringValue onOpen = new StringValue("onOpen"); - private static final StringValue onTextMessage = new StringValue("onTextMessage"); - private static final StringValue onBytesMessage = new StringValue("onBytesMessage"); - private static final StringValue onClosing = new StringValue("onClosing"); - private static final StringValue onClosed = new StringValue("onClosed"); - private static final StringValue onFailure = new StringValue("onFailure"); - - private Value newWebSocket(Value[] args) { - Arguments.check(2, args.length); - final Request request = Values.getRequest(args[0], " at first argument"); - if (args[1].type() != Types.MAP) { - throw new TypeException("Map expected at second argument"); - } - final MapValue callbacks = (MapValue) args[1]; - final WebSocket ws = client.newWebSocket(request, new WebSocketListener() { - @Override - public void onOpen(WebSocket webSocket, Response response) { - final Value func = callbacks.get(onOpen); - if (func != null) { - ValueUtils.consumeFunction(func, " at onOpen").execute( - new WebSocketValue(webSocket), - new ResponseValue(response)); - } - } - - @Override - public void onMessage(WebSocket webSocket, String text) { - final Value func = callbacks.get(onTextMessage); - if (func != null) { - ValueUtils.consumeFunction(func, "at onTextMessage").execute( - new WebSocketValue(webSocket), - new StringValue(text)); - } - } - - @Override - public void onMessage(WebSocket webSocket, ByteString bytes) { - final Value func = callbacks.get(onBytesMessage); - if (func != null) { - ValueUtils.consumeFunction(func, "at onBytesMessage").execute( - new WebSocketValue(webSocket), - ArrayValue.of(bytes.toByteArray())); - } - } - - @Override - public void onClosing(WebSocket webSocket, int code, String reason) { - final Value func = callbacks.get(onClosing); - if (func != null) { - ValueUtils.consumeFunction(func, "at onClosing").execute( - new WebSocketValue(webSocket), - NumberValue.of(code), - new StringValue(reason)); - } - } - - @Override - public void onClosed(WebSocket webSocket, int code, String reason) { - final Value func = callbacks.get(onClosed); - if (func != null) { - ValueUtils.consumeFunction(func, "at onClosed").execute( - new WebSocketValue(webSocket), - NumberValue.of(code), - new StringValue(reason)); - } - } - - @Override - public void onFailure(WebSocket webSocket, Throwable t, Response response) { - final Value func = callbacks.get(onFailure); - if (func != null) { - ValueUtils.consumeFunction(func, "at onFailure").execute( - new WebSocketValue(webSocket), - new StringValue(t.getMessage()), - new ResponseValue(response)); - } - } - }); - return new CallValue(client.newCall(request)); - } -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.exceptions.TypeException; +import com.annimon.ownlang.lib.*; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.Response; +import okhttp3.WebSocket; +import okhttp3.WebSocketListener; +import okio.ByteString; + +public class HttpClientValue extends MapValue { + + private final OkHttpClient client; + + public HttpClientValue(OkHttpClient client) { + super(10); + this.client = client; + init(); + } + + public OkHttpClient getClient() { + return client; + } + + private void init() { + set("connectTimeoutMillis", Converters.voidToInt(client::connectTimeoutMillis)); + set("followRedirects", Converters.voidToBoolean(client::followRedirects)); + set("followSslRedirects", Converters.voidToBoolean(client::followSslRedirects)); + set("newCall", args -> { + Arguments.check(1, args.length); + final Request request = Values.getRequest(args[0], " at first argument"); + return new CallValue(client.newCall(request)); + }); + set("newWebSocket", this::newWebSocket); + set("pingIntervalMillis", Converters.voidToInt(client::pingIntervalMillis)); + set("readTimeoutMillis", Converters.voidToInt(client::readTimeoutMillis)); + set("retryOnConnectionFailure", Converters.voidToBoolean(client::retryOnConnectionFailure)); + set("writeTimeoutMillis", Converters.voidToInt(client::writeTimeoutMillis)); + } + + private static final StringValue onOpen = new StringValue("onOpen"); + private static final StringValue onTextMessage = new StringValue("onTextMessage"); + private static final StringValue onBytesMessage = new StringValue("onBytesMessage"); + private static final StringValue onClosing = new StringValue("onClosing"); + private static final StringValue onClosed = new StringValue("onClosed"); + private static final StringValue onFailure = new StringValue("onFailure"); + + private Value newWebSocket(Value[] args) { + Arguments.check(2, args.length); + final Request request = Values.getRequest(args[0], " at first argument"); + if (args[1].type() != Types.MAP) { + throw new TypeException("Map expected at second argument"); + } + final MapValue callbacks = (MapValue) args[1]; + final WebSocket ws = client.newWebSocket(request, new WebSocketListener() { + @Override + public void onOpen(WebSocket webSocket, Response response) { + final Value func = callbacks.get(onOpen); + if (func != null) { + ValueUtils.consumeFunction(func, " at onOpen").execute( + new WebSocketValue(webSocket), + new ResponseValue(response)); + } + } + + @Override + public void onMessage(WebSocket webSocket, String text) { + final Value func = callbacks.get(onTextMessage); + if (func != null) { + ValueUtils.consumeFunction(func, "at onTextMessage").execute( + new WebSocketValue(webSocket), + new StringValue(text)); + } + } + + @Override + public void onMessage(WebSocket webSocket, ByteString bytes) { + final Value func = callbacks.get(onBytesMessage); + if (func != null) { + ValueUtils.consumeFunction(func, "at onBytesMessage").execute( + new WebSocketValue(webSocket), + ArrayValue.of(bytes.toByteArray())); + } + } + + @Override + public void onClosing(WebSocket webSocket, int code, String reason) { + final Value func = callbacks.get(onClosing); + if (func != null) { + ValueUtils.consumeFunction(func, "at onClosing").execute( + new WebSocketValue(webSocket), + NumberValue.of(code), + new StringValue(reason)); + } + } + + @Override + public void onClosed(WebSocket webSocket, int code, String reason) { + final Value func = callbacks.get(onClosed); + if (func != null) { + ValueUtils.consumeFunction(func, "at onClosed").execute( + new WebSocketValue(webSocket), + NumberValue.of(code), + new StringValue(reason)); + } + } + + @Override + public void onFailure(WebSocket webSocket, Throwable t, Response response) { + final Value func = callbacks.get(onFailure); + if (func != null) { + ValueUtils.consumeFunction(func, "at onFailure").execute( + new WebSocketValue(webSocket), + new StringValue(t.getMessage()), + new ResponseValue(response)); + } + } + }); + return new CallValue(client.newCall(request)); + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyBuilderValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyBuilderValue.java similarity index 97% rename from src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyBuilderValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyBuilderValue.java index b7d891e..b1ee7bc 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyBuilderValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyBuilderValue.java @@ -1,70 +1,70 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.exceptions.TypeException; -import com.annimon.ownlang.lib.Arguments; -import com.annimon.ownlang.lib.MapValue; -import com.annimon.ownlang.lib.Types; -import com.annimon.ownlang.lib.Value; -import java.util.Map; -import okhttp3.MediaType; -import okhttp3.MultipartBody; - -public class MultipartBodyBuilderValue extends MapValue { - - private final MultipartBody.Builder builder; - - public MultipartBodyBuilderValue() { - super(5); - this.builder = new MultipartBody.Builder(); - init(); - } - - private void init() { - set("addFormData", this::addFormData); - set("addFormDataPart", this::addFormDataPart); - set("addPart", this::addPart); - set("build", args -> new MultipartBodyValue(builder.build())); - set("setType", args -> { - Arguments.check(1, args.length); - builder.setType(MediaType.parse(args[0].asString())); - return this; - }); - } - - private Value addFormDataPart(Value[] args) { - Arguments.checkOrOr(2, 3, args.length); - if (args.length == 2) { - builder.addFormDataPart(args[0].asString(), args[1].asString()); - } else { - builder.addFormDataPart( - args[0].asString(), - args[1].asString(), - Values.getRequestBody(args[2], " at third argument")); - } - return this; - } - - private Value addFormData(Value[] args) { - Arguments.check(1, args.length); - if (args[0].type() != Types.MAP) { - throw new TypeException("Map expected at first argument"); - } - for (Map.Entry entry : ((MapValue) args[0])) { - builder.addFormDataPart(entry.getKey().asString(), entry.getValue().asString()); - } - return this; - } - - private Value addPart(Value[] args) { - Arguments.checkOrOr(2, 3, args.length); - if (args.length == 1) { - builder.addPart( - Values.getRequestBody(args[0], " at first argument")); - } else { - builder.addPart( - Values.getHeaders(args[0], " at first argument"), - Values.getRequestBody(args[1], " at second argument")); - } - return this; - } -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.exceptions.TypeException; +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.MapValue; +import com.annimon.ownlang.lib.Types; +import com.annimon.ownlang.lib.Value; +import java.util.Map; +import okhttp3.MediaType; +import okhttp3.MultipartBody; + +public class MultipartBodyBuilderValue extends MapValue { + + private final MultipartBody.Builder builder; + + public MultipartBodyBuilderValue() { + super(5); + this.builder = new MultipartBody.Builder(); + init(); + } + + private void init() { + set("addFormData", this::addFormData); + set("addFormDataPart", this::addFormDataPart); + set("addPart", this::addPart); + set("build", args -> new MultipartBodyValue(builder.build())); + set("setType", args -> { + Arguments.check(1, args.length); + builder.setType(MediaType.parse(args[0].asString())); + return this; + }); + } + + private Value addFormDataPart(Value[] args) { + Arguments.checkOrOr(2, 3, args.length); + if (args.length == 2) { + builder.addFormDataPart(args[0].asString(), args[1].asString()); + } else { + builder.addFormDataPart( + args[0].asString(), + args[1].asString(), + Values.getRequestBody(args[2], " at third argument")); + } + return this; + } + + private Value addFormData(Value[] args) { + Arguments.check(1, args.length); + if (args[0].type() != Types.MAP) { + throw new TypeException("Map expected at first argument"); + } + for (Map.Entry entry : ((MapValue) args[0])) { + builder.addFormDataPart(entry.getKey().asString(), entry.getValue().asString()); + } + return this; + } + + private Value addPart(Value[] args) { + Arguments.checkOrOr(2, 3, args.length); + if (args.length == 1) { + builder.addPart( + Values.getRequestBody(args[0], " at first argument")); + } else { + builder.addPart( + Values.getHeaders(args[0], " at first argument"), + Values.getRequestBody(args[1], " at second argument")); + } + return this; + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyValue.java similarity index 96% rename from src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyValue.java index 41db158..c47b7e8 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/MultipartBodyValue.java @@ -1,24 +1,24 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.lib.Converters; -import okhttp3.MultipartBody; - -public class MultipartBodyValue extends RequestBodyValue { - - private final MultipartBody multipartBody; - - public MultipartBodyValue(MultipartBody multipartBody) { - super(multipartBody, 5); - this.multipartBody = multipartBody; - init(); - } - - public MultipartBody getMultipartBody() { - return multipartBody; - } - - private void init() { - set("boundary", Converters.voidToString(multipartBody::boundary)); - set("size", Converters.voidToInt(multipartBody::size)); - } -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.lib.Converters; +import okhttp3.MultipartBody; + +public class MultipartBodyValue extends RequestBodyValue { + + private final MultipartBody multipartBody; + + public MultipartBodyValue(MultipartBody multipartBody) { + super(multipartBody, 5); + this.multipartBody = multipartBody; + init(); + } + + public MultipartBody getMultipartBody() { + return multipartBody; + } + + private void init() { + set("boundary", Converters.voidToString(multipartBody::boundary)); + set("size", Converters.voidToInt(multipartBody::size)); + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBodyValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBodyValue.java similarity index 96% rename from src/main/java/com/annimon/ownlang/modules/okhttp/RequestBodyValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBodyValue.java index b9ea590..2d11bc4 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBodyValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBodyValue.java @@ -1,55 +1,55 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.lib.Arguments; -import com.annimon.ownlang.lib.Converters; -import com.annimon.ownlang.lib.MapValue; -import com.annimon.ownlang.lib.StringValue; -import java.io.IOException; -import java.nio.charset.Charset; -import okhttp3.MediaType; -import okhttp3.RequestBody; - -public class RequestBodyValue extends MapValue { - - private final RequestBody requestBody; - private final MediaType mediaType; - - public RequestBodyValue(RequestBody requestBody) { - this(requestBody, 0); - } - - protected RequestBodyValue(RequestBody requestBody, int methodsCount) { - super(4 + methodsCount); - this.requestBody = requestBody; - this.mediaType = requestBody.contentType(); - init(); - } - - public RequestBody getRequestBody() { - return requestBody; - } - - public MediaType getMediaType() { - return mediaType; - } - - private void init() { - set("getContentLength", Converters.voidToLong(() -> { - try { - return requestBody.contentLength(); - } catch (IOException ex) { - return -1; - } - })); - set("getType", Converters.voidToString(mediaType::type)); - set("getSubtype", Converters.voidToString(mediaType::subtype)); - set("getCharset", args -> { - Arguments.checkOrOr(0, 1, args.length); - if (args.length == 0) { - return new StringValue(mediaType.charset().name()); - } else { - return new StringValue(mediaType.charset(Charset.forName(args[0].asString())).name()); - } - }); - } -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.Converters; +import com.annimon.ownlang.lib.MapValue; +import com.annimon.ownlang.lib.StringValue; +import java.io.IOException; +import java.nio.charset.Charset; +import okhttp3.MediaType; +import okhttp3.RequestBody; + +public class RequestBodyValue extends MapValue { + + private final RequestBody requestBody; + private final MediaType mediaType; + + public RequestBodyValue(RequestBody requestBody) { + this(requestBody, 0); + } + + protected RequestBodyValue(RequestBody requestBody, int methodsCount) { + super(4 + methodsCount); + this.requestBody = requestBody; + this.mediaType = requestBody.contentType(); + init(); + } + + public RequestBody getRequestBody() { + return requestBody; + } + + public MediaType getMediaType() { + return mediaType; + } + + private void init() { + set("getContentLength", Converters.voidToLong(() -> { + try { + return requestBody.contentLength(); + } catch (IOException ex) { + return -1; + } + })); + set("getType", Converters.voidToString(mediaType::type)); + set("getSubtype", Converters.voidToString(mediaType::subtype)); + set("getCharset", args -> { + Arguments.checkOrOr(0, 1, args.length); + if (args.length == 0) { + return new StringValue(mediaType.charset().name()); + } else { + return new StringValue(mediaType.charset(Charset.forName(args[0].asString())).name()); + } + }); + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBuilderValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBuilderValue.java similarity index 97% rename from src/main/java/com/annimon/ownlang/modules/okhttp/RequestBuilderValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBuilderValue.java index 51d4edf..68aeeb4 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBuilderValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/RequestBuilderValue.java @@ -1,109 +1,109 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.lib.Arguments; -import com.annimon.ownlang.lib.Converters.VoidToVoidFunction; -import com.annimon.ownlang.lib.Function; -import com.annimon.ownlang.lib.MapValue; -import okhttp3.OkHttpClient; -import okhttp3.Request; -import okhttp3.RequestBody; - -public class RequestBuilderValue extends MapValue { - - private final Request.Builder requestBuilder; - - public RequestBuilderValue() { - super(15); - requestBuilder = new Request.Builder(); - init(); - } - - public Request getRequest() { - return requestBuilder.build(); - } - - private void init() { - set("addHeader", args -> { - Arguments.check(2, args.length); - requestBuilder.addHeader(args[0].asString(), args[1].asString()); - return this; - }); - set("cacheControl", args -> { - Arguments.check(1, args.length); - // TODO - return this; - }); - set("delete", httpMethod(requestBuilder::delete, requestBuilder::delete)); - set("get", args -> { - requestBuilder.get(); - return this; - }); - set("head", args -> { - requestBuilder.head(); - return this; - }); - set("header", args -> { - Arguments.check(2, args.length); - requestBuilder.header(args[0].asString(), args[1].asString()); - return this; - }); - set("headers", args -> { - Arguments.check(1, args.length); - requestBuilder.headers(Values.getHeaders(args[0], " at first argument")); - return this; - }); - set("method", args -> { - Arguments.checkOrOr(1, 2, args.length); - final RequestBody body; - if (args.length == 1) { - body = null; - } else { - body = Values.getRequestBody(args[1], " at second argument"); - } - requestBuilder.method(args[0].asString(), body); - return this; - }); - set("newCall", args -> { - Arguments.check(1, args.length); - final OkHttpClient client = Values.getHttpClient(args[0], " at first argument"); - return new CallValue(client.newCall(getRequest())); - }); - set("patch", httpMethod(requestBuilder::patch)); - set("post", httpMethod(requestBuilder::post)); - set("put", httpMethod(requestBuilder::put)); - set("removeHeader", args -> { - Arguments.check(1, args.length); - requestBuilder.removeHeader(args[0].asString()); - return this; - }); - set("url", args -> { - Arguments.check(1, args.length); - requestBuilder.url(args[0].asString()); - return this; - }); - } - - private Function httpMethod(VoidToVoidFunction voidFunc, RequestBodyToVoidFunction bodyFunc) { - return (args) -> { - Arguments.checkOrOr(0, 1, args.length); - if (args.length == 0) { - voidFunc.apply(); - } else { - bodyFunc.apply(Values.getRequestBody(args[0], " at first argument")); - } - return this; - }; - } - - private Function httpMethod(RequestBodyToVoidFunction bodyFunc) { - return (args) -> { - Arguments.check(1, args.length); - bodyFunc.apply(Values.getRequestBody(args[0], " at first argument")); - return this; - }; - } - - private interface RequestBodyToVoidFunction { - void apply(RequestBody value); - } -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.Converters.VoidToVoidFunction; +import com.annimon.ownlang.lib.Function; +import com.annimon.ownlang.lib.MapValue; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.RequestBody; + +public class RequestBuilderValue extends MapValue { + + private final Request.Builder requestBuilder; + + public RequestBuilderValue() { + super(15); + requestBuilder = new Request.Builder(); + init(); + } + + public Request getRequest() { + return requestBuilder.build(); + } + + private void init() { + set("addHeader", args -> { + Arguments.check(2, args.length); + requestBuilder.addHeader(args[0].asString(), args[1].asString()); + return this; + }); + set("cacheControl", args -> { + Arguments.check(1, args.length); + // TODO + return this; + }); + set("delete", httpMethod(requestBuilder::delete, requestBuilder::delete)); + set("get", args -> { + requestBuilder.get(); + return this; + }); + set("head", args -> { + requestBuilder.head(); + return this; + }); + set("header", args -> { + Arguments.check(2, args.length); + requestBuilder.header(args[0].asString(), args[1].asString()); + return this; + }); + set("headers", args -> { + Arguments.check(1, args.length); + requestBuilder.headers(Values.getHeaders(args[0], " at first argument")); + return this; + }); + set("method", args -> { + Arguments.checkOrOr(1, 2, args.length); + final RequestBody body; + if (args.length == 1) { + body = null; + } else { + body = Values.getRequestBody(args[1], " at second argument"); + } + requestBuilder.method(args[0].asString(), body); + return this; + }); + set("newCall", args -> { + Arguments.check(1, args.length); + final OkHttpClient client = Values.getHttpClient(args[0], " at first argument"); + return new CallValue(client.newCall(getRequest())); + }); + set("patch", httpMethod(requestBuilder::patch)); + set("post", httpMethod(requestBuilder::post)); + set("put", httpMethod(requestBuilder::put)); + set("removeHeader", args -> { + Arguments.check(1, args.length); + requestBuilder.removeHeader(args[0].asString()); + return this; + }); + set("url", args -> { + Arguments.check(1, args.length); + requestBuilder.url(args[0].asString()); + return this; + }); + } + + private Function httpMethod(VoidToVoidFunction voidFunc, RequestBodyToVoidFunction bodyFunc) { + return (args) -> { + Arguments.checkOrOr(0, 1, args.length); + if (args.length == 0) { + voidFunc.apply(); + } else { + bodyFunc.apply(Values.getRequestBody(args[0], " at first argument")); + } + return this; + }; + } + + private Function httpMethod(RequestBodyToVoidFunction bodyFunc) { + return (args) -> { + Arguments.check(1, args.length); + bodyFunc.apply(Values.getRequestBody(args[0], " at first argument")); + return this; + }; + } + + private interface RequestBodyToVoidFunction { + void apply(RequestBody value); + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseBodyValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseBodyValue.java similarity index 97% rename from src/main/java/com/annimon/ownlang/modules/okhttp/ResponseBodyValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseBodyValue.java index faa0845..79dc95e 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseBodyValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseBodyValue.java @@ -1,56 +1,56 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.Console; -import com.annimon.ownlang.lib.Arguments; -import com.annimon.ownlang.lib.ArrayValue; -import com.annimon.ownlang.lib.Converters; -import com.annimon.ownlang.lib.MapValue; -import com.annimon.ownlang.lib.NumberValue; -import com.annimon.ownlang.lib.StringValue; -import java.io.IOException; -import okhttp3.ResponseBody; -import okio.BufferedSink; -import okio.Okio; - -public class ResponseBodyValue extends MapValue { - - private final ResponseBody responseBody; - - public ResponseBodyValue(ResponseBody response) { - super(8); - this.responseBody = response; - init(); - } - - private void init() { - set("bytes", args -> { - try { - return ArrayValue.of(responseBody.bytes()); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); - set("close", Converters.voidToVoid(responseBody::close)); - set("contentLength", Converters.voidToLong(responseBody::contentLength)); - set("contentType", args -> new StringValue(responseBody.contentType().toString())); - set("string", args -> { - try { - return new StringValue(responseBody.string()); - } catch (IOException e) { - throw new RuntimeException(e); - } - }); - set("file", args -> { - Arguments.check(1, args.length); - try { - BufferedSink sink = Okio.buffer(Okio.sink(Console.fileInstance(args[0].asString()))); - sink.writeAll(responseBody.source()); - sink.close(); - return NumberValue.ONE; - } catch (IOException e) { - throw new RuntimeException(e); - } - }); - } - -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.Console; +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.ArrayValue; +import com.annimon.ownlang.lib.Converters; +import com.annimon.ownlang.lib.MapValue; +import com.annimon.ownlang.lib.NumberValue; +import com.annimon.ownlang.lib.StringValue; +import java.io.IOException; +import okhttp3.ResponseBody; +import okio.BufferedSink; +import okio.Okio; + +public class ResponseBodyValue extends MapValue { + + private final ResponseBody responseBody; + + public ResponseBodyValue(ResponseBody response) { + super(8); + this.responseBody = response; + init(); + } + + private void init() { + set("bytes", args -> { + try { + return ArrayValue.of(responseBody.bytes()); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + set("close", Converters.voidToVoid(responseBody::close)); + set("contentLength", Converters.voidToLong(responseBody::contentLength)); + set("contentType", args -> new StringValue(responseBody.contentType().toString())); + set("string", args -> { + try { + return new StringValue(responseBody.string()); + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + set("file", args -> { + Arguments.check(1, args.length); + try { + BufferedSink sink = Okio.buffer(Okio.sink(Console.fileInstance(args[0].asString()))); + sink.writeAll(responseBody.source()); + sink.close(); + return NumberValue.ONE; + } catch (IOException e) { + throw new RuntimeException(e); + } + }); + } + +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseValue.java similarity index 97% rename from src/main/java/com/annimon/ownlang/modules/okhttp/ResponseValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseValue.java index aee83fb..de57784 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/ResponseValue.java @@ -1,52 +1,52 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.lib.Arguments; -import com.annimon.ownlang.lib.ArrayValue; -import com.annimon.ownlang.lib.Converters; -import com.annimon.ownlang.lib.MapValue; -import com.annimon.ownlang.lib.StringValue; -import java.util.List; -import java.util.Map; -import okhttp3.Response; - -public class ResponseValue extends MapValue { - - private final Response response; - - public ResponseValue(Response response) { - super(15); - this.response = response; - init(); - } - - private void init() { - set("body", args -> new ResponseBodyValue(response.body())); - set("cacheResponse", args -> new ResponseValue(response.cacheResponse())); - set("code", Converters.voidToInt(response::code)); - set("close", Converters.voidToVoid(response::close)); - set("header", args -> { - Arguments.checkOrOr(1, 2, args.length); - final String defaultValue = (args.length == 1) ? null : args[1].asString(); - return new StringValue(response.header(args[0].asString(), defaultValue)); - }); - set("headers", args -> { - Arguments.checkOrOr(0, 1, args.length); - if (args.length == 0) { - final Map> headers = response.headers().toMultimap(); - final MapValue result = new MapValue(headers.size()); - for (Map.Entry> entry : headers.entrySet()) { - result.set(entry.getKey(), ArrayValue.of(entry.getValue().toArray(new String[0]))); - } - return result; - } else { - return ArrayValue.of(response.headers(args[0].asString()).toArray(new String[0])); - } - }); - set("message", Converters.voidToString(response::message)); - set("networkResponse", args -> new ResponseValue(response.networkResponse())); - set("priorResponse", args -> new ResponseValue(response.priorResponse())); - set("receivedResponseAtMillis", Converters.voidToLong(response::receivedResponseAtMillis)); - set("sentRequestAtMillis", Converters.voidToLong(response::sentRequestAtMillis)); - } - -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.ArrayValue; +import com.annimon.ownlang.lib.Converters; +import com.annimon.ownlang.lib.MapValue; +import com.annimon.ownlang.lib.StringValue; +import java.util.List; +import java.util.Map; +import okhttp3.Response; + +public class ResponseValue extends MapValue { + + private final Response response; + + public ResponseValue(Response response) { + super(15); + this.response = response; + init(); + } + + private void init() { + set("body", args -> new ResponseBodyValue(response.body())); + set("cacheResponse", args -> new ResponseValue(response.cacheResponse())); + set("code", Converters.voidToInt(response::code)); + set("close", Converters.voidToVoid(response::close)); + set("header", args -> { + Arguments.checkOrOr(1, 2, args.length); + final String defaultValue = (args.length == 1) ? null : args[1].asString(); + return new StringValue(response.header(args[0].asString(), defaultValue)); + }); + set("headers", args -> { + Arguments.checkOrOr(0, 1, args.length); + if (args.length == 0) { + final Map> headers = response.headers().toMultimap(); + final MapValue result = new MapValue(headers.size()); + for (Map.Entry> entry : headers.entrySet()) { + result.set(entry.getKey(), ArrayValue.of(entry.getValue().toArray(new String[0]))); + } + return result; + } else { + return ArrayValue.of(response.headers(args[0].asString()).toArray(new String[0])); + } + }); + set("message", Converters.voidToString(response::message)); + set("networkResponse", args -> new ResponseValue(response.networkResponse())); + set("priorResponse", args -> new ResponseValue(response.priorResponse())); + set("receivedResponseAtMillis", Converters.voidToLong(response::receivedResponseAtMillis)); + set("sentRequestAtMillis", Converters.voidToLong(response::sentRequestAtMillis)); + } + +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/Values.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/Values.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/okhttp/Values.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/Values.java diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/WebSocketValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/WebSocketValue.java similarity index 96% rename from src/main/java/com/annimon/ownlang/modules/okhttp/WebSocketValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/WebSocketValue.java index 9af00d0..b937af4 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/WebSocketValue.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/WebSocketValue.java @@ -1,46 +1,46 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.lib.Arguments; -import com.annimon.ownlang.lib.ArrayValue; -import com.annimon.ownlang.lib.Converters; -import com.annimon.ownlang.lib.MapValue; -import com.annimon.ownlang.lib.NumberValue; -import com.annimon.ownlang.lib.Types; -import com.annimon.ownlang.lib.ValueUtils; -import okhttp3.WebSocket; -import okio.ByteString; - -public class WebSocketValue extends MapValue { - - private final WebSocket ws; - - protected WebSocketValue(WebSocket ws) { - super(4); - this.ws = ws; - init(); - } - - public WebSocket getWebSocket() { - return ws; - } - - private void init() { - set("cancel", Converters.voidToVoid(ws::cancel)); - set("close", args -> { - Arguments.checkOrOr(1, 2, args.length); - final String reason = (args.length == 2) ? args[1].asString() : null; - return NumberValue.fromBoolean(ws.close(args[0].asInt(), reason)); - }); - set("queueSize", Converters.voidToLong(ws::queueSize)); - set("send", args -> { - Arguments.check(1, args.length); - final boolean result; - if (args[0].type() == Types.ARRAY) { - result = ws.send(ByteString.of( ValueUtils.toByteArray(((ArrayValue) args[0])) )); - } else { - result = ws.send(args[0].asString()); - } - return NumberValue.fromBoolean(result); - }); - } -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.ArrayValue; +import com.annimon.ownlang.lib.Converters; +import com.annimon.ownlang.lib.MapValue; +import com.annimon.ownlang.lib.NumberValue; +import com.annimon.ownlang.lib.Types; +import com.annimon.ownlang.lib.ValueUtils; +import okhttp3.WebSocket; +import okio.ByteString; + +public class WebSocketValue extends MapValue { + + private final WebSocket ws; + + protected WebSocketValue(WebSocket ws) { + super(4); + this.ws = ws; + init(); + } + + public WebSocket getWebSocket() { + return ws; + } + + private void init() { + set("cancel", Converters.voidToVoid(ws::cancel)); + set("close", args -> { + Arguments.checkOrOr(1, 2, args.length); + final String reason = (args.length == 2) ? args[1].asString() : null; + return NumberValue.fromBoolean(ws.close(args[0].asInt(), reason)); + }); + set("queueSize", Converters.voidToLong(ws::queueSize)); + set("send", args -> { + Arguments.check(1, args.length); + final boolean result; + if (args[0].type() == Types.ARRAY) { + result = ws.send(ByteString.of( ValueUtils.toByteArray(((ArrayValue) args[0])) )); + } else { + result = ws.send(args[0].asString()); + } + return NumberValue.fromBoolean(result); + }); + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/okhttp/okhttp.java b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/okhttp.java similarity index 97% rename from src/main/java/com/annimon/ownlang/modules/okhttp/okhttp.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/okhttp.java index cf65b18..d4066da 100644 --- a/src/main/java/com/annimon/ownlang/modules/okhttp/okhttp.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/okhttp/okhttp.java @@ -1,81 +1,81 @@ -package com.annimon.ownlang.modules.okhttp; - -import com.annimon.ownlang.Console; -import com.annimon.ownlang.exceptions.TypeException; -import com.annimon.ownlang.lib.Arguments; -import com.annimon.ownlang.lib.ArrayValue; -import com.annimon.ownlang.lib.MapValue; -import com.annimon.ownlang.lib.StringValue; -import com.annimon.ownlang.lib.Types; -import com.annimon.ownlang.lib.ValueUtils; -import com.annimon.ownlang.lib.Variables; -import com.annimon.ownlang.modules.Module; -import okhttp3.MediaType; -import okhttp3.MultipartBody; -import okhttp3.OkHttpClient; -import okhttp3.RequestBody; - -public final class okhttp implements Module { - - private static final HttpClientValue defaultClient = new HttpClientValue(new OkHttpClient()); - - public static void initConstants() { - MapValue requestBody = new MapValue(5); - requestBody.set("bytes", args -> { - Arguments.checkOrOr(2, 4, args.length); - if (args[1].type() != Types.ARRAY) { - throw new TypeException("Array of bytes expected at second argument"); - } - final byte[] bytes = ValueUtils.toByteArray((ArrayValue) args[1]); - final int offset; - final int bytesCount; - if (args.length == 2) { - offset = 0; - bytesCount = bytes.length; - } else { - offset = args[2].asInt(); - bytesCount = args[3].asInt(); - } - return new RequestBodyValue(RequestBody.create( - MediaType.parse(args[0].asString()), - bytes, offset, bytesCount - )); - }); - requestBody.set("file", args -> { - Arguments.check(2, args.length); - return new RequestBodyValue(RequestBody.create( - MediaType.parse(args[0].asString()), - Console.fileInstance(args[1].asString()) - )); - }); - requestBody.set("string", args -> { - Arguments.check(2, args.length); - return new RequestBodyValue(RequestBody.create( - MediaType.parse(args[0].asString()), - args[1].asString() - )); - }); - Variables.define("RequestBody", requestBody); - - - MapValue multipartBody = new MapValue(10); - multipartBody.set("ALTERNATIVE", new StringValue(MultipartBody.ALTERNATIVE.toString())); - multipartBody.set("DIGEST", new StringValue(MultipartBody.DIGEST.toString())); - multipartBody.set("FORM", new StringValue(MultipartBody.FORM.toString())); - multipartBody.set("MIXED", new StringValue(MultipartBody.MIXED.toString())); - multipartBody.set("PARALLEL", new StringValue(MultipartBody.PARALLEL.toString())); - multipartBody.set("builder", args -> new MultipartBodyBuilderValue()); - Variables.define("MultipartBody", multipartBody); - - - MapValue okhttp = new MapValue(5); - okhttp.set("client", defaultClient); - okhttp.set("request", args -> new RequestBuilderValue()); - Variables.define("okhttp", okhttp); - } - - @Override - public void init() { - initConstants(); - } -} +package com.annimon.ownlang.modules.okhttp; + +import com.annimon.ownlang.Console; +import com.annimon.ownlang.exceptions.TypeException; +import com.annimon.ownlang.lib.Arguments; +import com.annimon.ownlang.lib.ArrayValue; +import com.annimon.ownlang.lib.MapValue; +import com.annimon.ownlang.lib.StringValue; +import com.annimon.ownlang.lib.Types; +import com.annimon.ownlang.lib.ValueUtils; +import com.annimon.ownlang.lib.Variables; +import com.annimon.ownlang.modules.Module; +import okhttp3.MediaType; +import okhttp3.MultipartBody; +import okhttp3.OkHttpClient; +import okhttp3.RequestBody; + +public final class okhttp implements Module { + + private static final HttpClientValue defaultClient = new HttpClientValue(new OkHttpClient()); + + public static void initConstants() { + MapValue requestBody = new MapValue(5); + requestBody.set("bytes", args -> { + Arguments.checkOrOr(2, 4, args.length); + if (args[1].type() != Types.ARRAY) { + throw new TypeException("Array of bytes expected at second argument"); + } + final byte[] bytes = ValueUtils.toByteArray((ArrayValue) args[1]); + final int offset; + final int bytesCount; + if (args.length == 2) { + offset = 0; + bytesCount = bytes.length; + } else { + offset = args[2].asInt(); + bytesCount = args[3].asInt(); + } + return new RequestBodyValue(RequestBody.create( + MediaType.parse(args[0].asString()), + bytes, offset, bytesCount + )); + }); + requestBody.set("file", args -> { + Arguments.check(2, args.length); + return new RequestBodyValue(RequestBody.create( + MediaType.parse(args[0].asString()), + Console.fileInstance(args[1].asString()) + )); + }); + requestBody.set("string", args -> { + Arguments.check(2, args.length); + return new RequestBodyValue(RequestBody.create( + MediaType.parse(args[0].asString()), + args[1].asString() + )); + }); + Variables.define("RequestBody", requestBody); + + + MapValue multipartBody = new MapValue(10); + multipartBody.set("ALTERNATIVE", new StringValue(MultipartBody.ALTERNATIVE.toString())); + multipartBody.set("DIGEST", new StringValue(MultipartBody.DIGEST.toString())); + multipartBody.set("FORM", new StringValue(MultipartBody.FORM.toString())); + multipartBody.set("MIXED", new StringValue(MultipartBody.MIXED.toString())); + multipartBody.set("PARALLEL", new StringValue(MultipartBody.PARALLEL.toString())); + multipartBody.set("builder", args -> new MultipartBodyBuilderValue()); + Variables.define("MultipartBody", multipartBody); + + + MapValue okhttp = new MapValue(5); + okhttp.set("client", defaultClient); + okhttp.set("request", args -> new RequestBuilderValue()); + Variables.define("okhttp", okhttp); + } + + @Override + public void init() { + initConstants(); + } +} diff --git a/src/main/java/com/annimon/ownlang/modules/ounit/ounit.java b/modules/main/src/main/java/com/annimon/ownlang/modules/ounit/ounit.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/ounit/ounit.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/ounit/ounit.java diff --git a/src/main/java/com/annimon/ownlang/modules/regex/MatcherValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/regex/MatcherValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/regex/MatcherValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/regex/MatcherValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/regex/PatternValue.java b/modules/main/src/main/java/com/annimon/ownlang/modules/regex/PatternValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/regex/PatternValue.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/regex/PatternValue.java diff --git a/src/main/java/com/annimon/ownlang/modules/regex/regex.java b/modules/main/src/main/java/com/annimon/ownlang/modules/regex/regex.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/regex/regex.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/regex/regex.java diff --git a/src/main/java/com/annimon/ownlang/modules/robot/robot.java b/modules/main/src/main/java/com/annimon/ownlang/modules/robot/robot.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/robot/robot.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/robot/robot.java diff --git a/src/main/java/com/annimon/ownlang/modules/robot/robot_exec.java b/modules/main/src/main/java/com/annimon/ownlang/modules/robot/robot_exec.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/robot/robot_exec.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/robot/robot_exec.java diff --git a/src/main/java/com/annimon/ownlang/modules/robot/robot_fromclipboard.java b/modules/main/src/main/java/com/annimon/ownlang/modules/robot/robot_fromclipboard.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/robot/robot_fromclipboard.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/robot/robot_fromclipboard.java diff --git a/src/main/java/com/annimon/ownlang/modules/robot/robot_toclipboard.java b/modules/main/src/main/java/com/annimon/ownlang/modules/robot/robot_toclipboard.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/robot/robot_toclipboard.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/robot/robot_toclipboard.java diff --git a/src/main/java/com/annimon/ownlang/modules/socket/socket.java b/modules/main/src/main/java/com/annimon/ownlang/modules/socket/socket.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/socket/socket.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/socket/socket.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/ArrayFunctions.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/ArrayFunctions.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/ArrayFunctions.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/ArrayFunctions.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/NumberFunctions.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/NumberFunctions.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/NumberFunctions.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/NumberFunctions.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/StringFunctions.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/StringFunctions.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/StringFunctions.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/StringFunctions.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std.java similarity index 85% rename from src/main/java/com/annimon/ownlang/modules/std/std.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std.java index eca4d2b..272cdc4 100644 --- a/src/main/java/com/annimon/ownlang/modules/std/std.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std.java @@ -1,6 +1,7 @@ package com.annimon.ownlang.modules.std; -import com.annimon.ownlang.Main; +import com.annimon.ownlang.Shared; +import com.annimon.ownlang.Version; import com.annimon.ownlang.lib.*; import com.annimon.ownlang.modules.Module; @@ -13,17 +14,17 @@ public final class std implements Module { public static void initConstants() { MapValue ownlang = new MapValue(5); ownlang.set("PLATFORM", new StringValue("desktop")); - ownlang.set("VERSION", new StringValue(Main.VERSION)); - ownlang.set("VERSION_MAJOR", NumberValue.of(Main.VERSION_MAJOR)); - ownlang.set("VERSION_MINOR", NumberValue.of(Main.VERSION_MINOR)); - ownlang.set("VERSION_PATCH", NumberValue.of(Main.VERSION_PATCH)); + ownlang.set("VERSION", new StringValue(Version.VERSION)); + ownlang.set("VERSION_MAJOR", NumberValue.of(Version.VERSION_MAJOR)); + ownlang.set("VERSION_MINOR", NumberValue.of(Version.VERSION_MINOR)); + ownlang.set("VERSION_PATCH", NumberValue.of(Version.VERSION_PATCH)); Variables.define("OwnLang", ownlang); } @Override public void init() { initConstants(); - Variables.define("ARGS", ArrayValue.of(Main.getOwnlangArgs())); // is not constant + Variables.define("ARGS", ArrayValue.of(Shared.getOwnlangArgs())); // is not constant Functions.set("echo", new std_echo()); Functions.set("readln", new std_readln()); Functions.set("length", new std_length()); diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_arrayCombine.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arrayCombine.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_arrayCombine.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arrayCombine.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_arrayKeyExists.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arrayKeyExists.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_arrayKeyExists.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arrayKeyExists.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_arrayKeys.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arrayKeys.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_arrayKeys.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arrayKeys.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_arraySplice.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arraySplice.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_arraySplice.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arraySplice.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_arrayValues.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arrayValues.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_arrayValues.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_arrayValues.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_charat.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_charat.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_charat.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_charat.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_default.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_default.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_default.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_default.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_echo.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_echo.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_echo.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_echo.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_indexof.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_indexof.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_indexof.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_indexof.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_join.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_join.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_join.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_join.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_lastindexof.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_lastindexof.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_lastindexof.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_lastindexof.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_length.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_length.java similarity index 80% rename from src/main/java/com/annimon/ownlang/modules/std/std_length.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_length.java index bdd7a21..4a7d0b7 100644 --- a/src/main/java/com/annimon/ownlang/modules/std/std_length.java +++ b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_length.java @@ -22,11 +22,7 @@ public final class std_length implements Function { break; case Types.FUNCTION: final Function func = ((FunctionValue) val).getValue(); - if (func instanceof UserDefinedFunction) { - length = ((UserDefinedFunction) func).getArgsCount(); - } else { - length = 0; - } + length = func.getArgsCount(); break; default: length = 0; diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_newarray.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_newarray.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_newarray.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_newarray.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_rand.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_rand.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_rand.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_rand.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_range.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_range.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_range.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_range.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_readln.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_readln.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_readln.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_readln.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_replace.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_replace.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_replace.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_replace.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_replaceall.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_replaceall.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_replaceall.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_replaceall.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_replacefirst.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_replacefirst.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_replacefirst.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_replacefirst.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_sleep.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_sleep.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_sleep.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_sleep.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_sort.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_sort.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_sort.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_sort.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_split.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_split.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_split.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_split.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_sprintf.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_sprintf.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_sprintf.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_sprintf.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_substring.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_substring.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_substring.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_substring.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_sync.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_sync.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_sync.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_sync.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_thread.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_thread.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_thread.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_thread.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_time.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_time.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_time.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_time.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_tochar.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_tochar.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_tochar.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_tochar.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_tolowercase.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_tolowercase.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_tolowercase.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_tolowercase.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_touppercase.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_touppercase.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_touppercase.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_touppercase.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_trim.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_trim.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_trim.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_trim.java diff --git a/src/main/java/com/annimon/ownlang/modules/std/std_try.java b/modules/main/src/main/java/com/annimon/ownlang/modules/std/std_try.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/std/std_try.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/std/std_try.java diff --git a/src/main/java/com/annimon/ownlang/modules/types/types.java b/modules/main/src/main/java/com/annimon/ownlang/modules/types/types.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/types/types.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/types/types.java diff --git a/src/main/java/com/annimon/ownlang/modules/yaml/yaml.java b/modules/main/src/main/java/com/annimon/ownlang/modules/yaml/yaml.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/yaml/yaml.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/yaml/yaml.java diff --git a/src/main/java/com/annimon/ownlang/modules/yaml/yaml_decode.java b/modules/main/src/main/java/com/annimon/ownlang/modules/yaml/yaml_decode.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/yaml/yaml_decode.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/yaml/yaml_decode.java diff --git a/src/main/java/com/annimon/ownlang/modules/yaml/yaml_encode.java b/modules/main/src/main/java/com/annimon/ownlang/modules/yaml/yaml_encode.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/yaml/yaml_encode.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/yaml/yaml_encode.java diff --git a/src/main/java/com/annimon/ownlang/modules/zip/zip.java b/modules/main/src/main/java/com/annimon/ownlang/modules/zip/zip.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/zip/zip.java rename to modules/main/src/main/java/com/annimon/ownlang/modules/zip/zip.java diff --git a/src/main/java/com/annimon/ownlang/Console.java b/ownlang-core/src/main/java/com/annimon/ownlang/Console.java similarity index 100% rename from src/main/java/com/annimon/ownlang/Console.java rename to ownlang-core/src/main/java/com/annimon/ownlang/Console.java diff --git a/ownlang-core/src/main/java/com/annimon/ownlang/Shared.java b/ownlang-core/src/main/java/com/annimon/ownlang/Shared.java new file mode 100644 index 0000000..d4f270f --- /dev/null +++ b/ownlang-core/src/main/java/com/annimon/ownlang/Shared.java @@ -0,0 +1,13 @@ +package com.annimon.ownlang; + +public final class Shared { + private static String[] ownlangArgs = new String[0]; + + public static String[] getOwnlangArgs() { + return ownlangArgs; + } + + public static void setOwnlangArgs(String[] args) { + ownlangArgs = args; + } +} diff --git a/ownlang-core/src/main/java/com/annimon/ownlang/Version.java b/ownlang-core/src/main/java/com/annimon/ownlang/Version.java new file mode 100644 index 0000000..aa476e8 --- /dev/null +++ b/ownlang-core/src/main/java/com/annimon/ownlang/Version.java @@ -0,0 +1,11 @@ +package com.annimon.ownlang; + +public final class Version { + public static final int VERSION_MAJOR = 2; + public static final int VERSION_MINOR = 0; + public static final int VERSION_PATCH = 0; + + public static final String VERSION = VERSION_MAJOR + "." + + VERSION_MINOR + "." + VERSION_PATCH + + "_" + Gen.BUILD_DATE; +} \ No newline at end of file diff --git a/src/main/java/com/annimon/ownlang/exceptions/ArgumentsMismatchException.java b/ownlang-core/src/main/java/com/annimon/ownlang/exceptions/ArgumentsMismatchException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/ArgumentsMismatchException.java rename to ownlang-core/src/main/java/com/annimon/ownlang/exceptions/ArgumentsMismatchException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/TypeException.java b/ownlang-core/src/main/java/com/annimon/ownlang/exceptions/TypeException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/TypeException.java rename to ownlang-core/src/main/java/com/annimon/ownlang/exceptions/TypeException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/UnknownClassException.java b/ownlang-core/src/main/java/com/annimon/ownlang/exceptions/UnknownClassException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/UnknownClassException.java rename to ownlang-core/src/main/java/com/annimon/ownlang/exceptions/UnknownClassException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/UnknownFunctionException.java b/ownlang-core/src/main/java/com/annimon/ownlang/exceptions/UnknownFunctionException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/UnknownFunctionException.java rename to ownlang-core/src/main/java/com/annimon/ownlang/exceptions/UnknownFunctionException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/UnknownPropertyException.java b/ownlang-core/src/main/java/com/annimon/ownlang/exceptions/UnknownPropertyException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/UnknownPropertyException.java rename to ownlang-core/src/main/java/com/annimon/ownlang/exceptions/UnknownPropertyException.java diff --git a/src/main/java/com/annimon/ownlang/lib/Arguments.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Arguments.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/Arguments.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/Arguments.java diff --git a/src/main/java/com/annimon/ownlang/lib/ArrayValue.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/ArrayValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/ArrayValue.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/ArrayValue.java diff --git a/src/main/java/com/annimon/ownlang/lib/CallStack.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/CallStack.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/CallStack.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/CallStack.java diff --git a/src/main/java/com/annimon/ownlang/lib/Converters.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Converters.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/Converters.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/Converters.java diff --git a/src/main/java/com/annimon/ownlang/lib/Function.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Function.java similarity index 68% rename from src/main/java/com/annimon/ownlang/lib/Function.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/Function.java index 07cb0d9..78c46ab 100644 --- a/src/main/java/com/annimon/ownlang/lib/Function.java +++ b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Function.java @@ -7,4 +7,8 @@ package com.annimon.ownlang.lib; public interface Function { Value execute(Value... args); + + default int getArgsCount() { + return 0; + } } diff --git a/src/main/java/com/annimon/ownlang/lib/FunctionValue.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/FunctionValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/FunctionValue.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/FunctionValue.java diff --git a/src/main/java/com/annimon/ownlang/lib/Functions.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Functions.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/Functions.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/Functions.java diff --git a/src/main/java/com/annimon/ownlang/lib/Instantiable.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Instantiable.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/Instantiable.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/Instantiable.java diff --git a/src/main/java/com/annimon/ownlang/lib/MapValue.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/MapValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/MapValue.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/MapValue.java diff --git a/src/main/java/com/annimon/ownlang/lib/NumberValue.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/NumberValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/NumberValue.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/NumberValue.java diff --git a/src/main/java/com/annimon/ownlang/lib/StringValue.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/StringValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/StringValue.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/StringValue.java diff --git a/src/main/java/com/annimon/ownlang/lib/Types.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Types.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/Types.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/Types.java diff --git a/src/main/java/com/annimon/ownlang/lib/Value.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Value.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/Value.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/Value.java diff --git a/src/main/java/com/annimon/ownlang/lib/ValueUtils.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/ValueUtils.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/ValueUtils.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/ValueUtils.java diff --git a/src/main/java/com/annimon/ownlang/lib/Variables.java b/ownlang-core/src/main/java/com/annimon/ownlang/lib/Variables.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/Variables.java rename to ownlang-core/src/main/java/com/annimon/ownlang/lib/Variables.java diff --git a/src/main/java/com/annimon/ownlang/modules/Module.java b/ownlang-core/src/main/java/com/annimon/ownlang/modules/Module.java similarity index 100% rename from src/main/java/com/annimon/ownlang/modules/Module.java rename to ownlang-core/src/main/java/com/annimon/ownlang/modules/Module.java diff --git a/src/main/java/com/annimon/ownlang/outputsettings/ConsoleOutputSettings.java b/ownlang-core/src/main/java/com/annimon/ownlang/outputsettings/ConsoleOutputSettings.java similarity index 100% rename from src/main/java/com/annimon/ownlang/outputsettings/ConsoleOutputSettings.java rename to ownlang-core/src/main/java/com/annimon/ownlang/outputsettings/ConsoleOutputSettings.java diff --git a/src/main/java/com/annimon/ownlang/outputsettings/OutputSettings.java b/ownlang-core/src/main/java/com/annimon/ownlang/outputsettings/OutputSettings.java similarity index 100% rename from src/main/java/com/annimon/ownlang/outputsettings/OutputSettings.java rename to ownlang-core/src/main/java/com/annimon/ownlang/outputsettings/OutputSettings.java diff --git a/src/main/java/com/annimon/ownlang/outputsettings/StringOutputSettings.java b/ownlang-core/src/main/java/com/annimon/ownlang/outputsettings/StringOutputSettings.java similarity index 100% rename from src/main/java/com/annimon/ownlang/outputsettings/StringOutputSettings.java rename to ownlang-core/src/main/java/com/annimon/ownlang/outputsettings/StringOutputSettings.java diff --git a/src/main/java/com/annimon/ownlang/Main.java b/ownlang-desktop/src/main/java/com/annimon/ownlang/Main.java similarity index 93% rename from src/main/java/com/annimon/ownlang/Main.java rename to ownlang-desktop/src/main/java/com/annimon/ownlang/Main.java index 470422d..499edc7 100644 --- a/src/main/java/com/annimon/ownlang/Main.java +++ b/ownlang-desktop/src/main/java/com/annimon/ownlang/Main.java @@ -22,19 +22,6 @@ import java.util.concurrent.TimeUnit; */ public final class Main { - public static final int VERSION_MAJOR = 1; - public static final int VERSION_MINOR = 5; - public static final int VERSION_PATCH = 0; - public static final String VERSION = VERSION_MAJOR + "." - + VERSION_MINOR + "." + VERSION_PATCH - + "_" + Gen.BUILD_DATE; - - private static String[] ownlangArgs = new String[0]; - - public static String[] getOwnlangArgs() { - return ownlangArgs; - } - public static void main(String[] args) throws IOException { if (args.length == 0) { try { @@ -104,6 +91,7 @@ public final class Main { case "--sandbox": createOwnLangArgs(args, i + 1); + final String[] ownlangArgs = Shared.getOwnlangArgs(); String[] newArgs = new String[ownlangArgs.length]; System.arraycopy(ownlangArgs, 0, newArgs, 0, ownlangArgs.length); Sandbox.main(newArgs); @@ -133,7 +121,7 @@ public final class Main { } private static void printUsage() { - System.out.println("OwnLang version " + VERSION + "\n\n" + + System.out.println("OwnLang version " + Version.VERSION + "\n\n" + "Usage: ownlang [options]\n" + " options:\n" + " -f, --file [input] Run program file. Required.\n" + @@ -148,8 +136,9 @@ public final class Main { private static void createOwnLangArgs(String[] javaArgs, int index) { if (index >= javaArgs.length) return; - ownlangArgs = new String[javaArgs.length - index]; + final String[] ownlangArgs = new String[javaArgs.length - index]; System.arraycopy(javaArgs, index, ownlangArgs, 0, ownlangArgs.length); + Shared.setOwnlangArgs(ownlangArgs); } private static void run(String input, RunOptions options) { diff --git a/src/main/java/com/annimon/ownlang/exceptions/LexerException.java b/ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/LexerException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/LexerException.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/LexerException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/OperationIsNotSupportedException.java b/ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/OperationIsNotSupportedException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/OperationIsNotSupportedException.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/OperationIsNotSupportedException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/ParseException.java b/ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/ParseException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/ParseException.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/ParseException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/PatternMatchingException.java b/ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/PatternMatchingException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/PatternMatchingException.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/PatternMatchingException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/StoppedException.java b/ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/StoppedException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/StoppedException.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/StoppedException.java diff --git a/src/main/java/com/annimon/ownlang/exceptions/VariableDoesNotExistsException.java b/ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/VariableDoesNotExistsException.java similarity index 100% rename from src/main/java/com/annimon/ownlang/exceptions/VariableDoesNotExistsException.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/exceptions/VariableDoesNotExistsException.java diff --git a/src/main/java/com/annimon/ownlang/lib/ClassDeclarations.java b/ownlang-parser/src/main/java/com/annimon/ownlang/lib/ClassDeclarations.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/ClassDeclarations.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/lib/ClassDeclarations.java diff --git a/src/main/java/com/annimon/ownlang/lib/ClassInstanceValue.java b/ownlang-parser/src/main/java/com/annimon/ownlang/lib/ClassInstanceValue.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/ClassInstanceValue.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/lib/ClassInstanceValue.java diff --git a/src/main/java/com/annimon/ownlang/lib/ClassMethod.java b/ownlang-parser/src/main/java/com/annimon/ownlang/lib/ClassMethod.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/ClassMethod.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/lib/ClassMethod.java diff --git a/src/main/java/com/annimon/ownlang/lib/Classes.java b/ownlang-parser/src/main/java/com/annimon/ownlang/lib/Classes.java similarity index 100% rename from src/main/java/com/annimon/ownlang/lib/Classes.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/lib/Classes.java diff --git a/src/main/java/com/annimon/ownlang/lib/UserDefinedFunction.java b/ownlang-parser/src/main/java/com/annimon/ownlang/lib/UserDefinedFunction.java similarity index 99% rename from src/main/java/com/annimon/ownlang/lib/UserDefinedFunction.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/lib/UserDefinedFunction.java index 6b0ba78..26be084 100644 --- a/src/main/java/com/annimon/ownlang/lib/UserDefinedFunction.java +++ b/ownlang-parser/src/main/java/com/annimon/ownlang/lib/UserDefinedFunction.java @@ -20,10 +20,11 @@ public class UserDefinedFunction implements Function { this.body = body; } + @Override public int getArgsCount() { return arguments.size(); } - + public String getArgsName(int index) { if (index < 0 || index >= getArgsCount()) return ""; return arguments.get(index).getName(); diff --git a/src/main/java/com/annimon/ownlang/parser/Beautifier.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/Beautifier.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/Beautifier.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/Beautifier.java diff --git a/src/main/java/com/annimon/ownlang/parser/Lexer.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/Lexer.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/Lexer.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/Lexer.java diff --git a/src/main/java/com/annimon/ownlang/parser/Linter.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/Linter.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/Linter.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/Linter.java diff --git a/src/main/java/com/annimon/ownlang/parser/Optimizer.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/Optimizer.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/Optimizer.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/Optimizer.java diff --git a/src/main/java/com/annimon/ownlang/parser/ParseError.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ParseError.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ParseError.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ParseError.java diff --git a/src/main/java/com/annimon/ownlang/parser/ParseErrors.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ParseErrors.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ParseErrors.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ParseErrors.java diff --git a/src/main/java/com/annimon/ownlang/parser/Parser.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/Parser.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/Parser.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/Parser.java diff --git a/src/main/java/com/annimon/ownlang/parser/SourceLoader.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/SourceLoader.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/SourceLoader.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/SourceLoader.java diff --git a/src/main/java/com/annimon/ownlang/parser/Token.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/Token.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/Token.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/Token.java diff --git a/src/main/java/com/annimon/ownlang/parser/TokenType.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/TokenType.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/TokenType.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/TokenType.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/Accessible.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Accessible.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/Accessible.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Accessible.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/Argument.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Argument.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/Argument.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Argument.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/Arguments.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Arguments.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/Arguments.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Arguments.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ArrayExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ArrayExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ArrayExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ArrayExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/AssignmentExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/AssignmentExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/AssignmentExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/AssignmentExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/BinaryExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/BinaryExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/BinaryExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/BinaryExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/BlockStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/BlockStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/BlockStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/BlockStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/BreakStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/BreakStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/BreakStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/BreakStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ClassDeclarationStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ClassDeclarationStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ClassDeclarationStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ClassDeclarationStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ConditionalExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ConditionalExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ConditionalExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ConditionalExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ContainerAccessExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ContainerAccessExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ContainerAccessExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ContainerAccessExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ContinueStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ContinueStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ContinueStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ContinueStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/DestructuringAssignmentStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/DestructuringAssignmentStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/DestructuringAssignmentStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/DestructuringAssignmentStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/DoWhileStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/DoWhileStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/DoWhileStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/DoWhileStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ExprStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ExprStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ExprStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ExprStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/Expression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Expression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/Expression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Expression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ForStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ForStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ForStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ForStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ForeachArrayStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ForeachArrayStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ForeachArrayStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ForeachArrayStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ForeachMapStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ForeachMapStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ForeachMapStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ForeachMapStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/FunctionDefineStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/FunctionDefineStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/FunctionDefineStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/FunctionDefineStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/FunctionReferenceExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/FunctionReferenceExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/FunctionReferenceExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/FunctionReferenceExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/FunctionalExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/FunctionalExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/FunctionalExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/FunctionalExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/IfStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/IfStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/IfStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/IfStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/IncludeStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/IncludeStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/IncludeStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/IncludeStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/InterruptableNode.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/InterruptableNode.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/InterruptableNode.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/InterruptableNode.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/MapExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/MapExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/MapExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/MapExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/MatchExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/MatchExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/MatchExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/MatchExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/Node.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Node.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/Node.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Node.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ObjectCreationExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ObjectCreationExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ObjectCreationExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ObjectCreationExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/PrintStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/PrintStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/PrintStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/PrintStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/PrintlnStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/PrintlnStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/PrintlnStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/PrintlnStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ResultVisitor.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ResultVisitor.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ResultVisitor.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ResultVisitor.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ReturnStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ReturnStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ReturnStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ReturnStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/Statement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Statement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/Statement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Statement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/TernaryExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/TernaryExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/TernaryExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/TernaryExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/UnaryExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/UnaryExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/UnaryExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/UnaryExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/UseStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/UseStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/UseStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/UseStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/ValueExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ValueExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/ValueExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/ValueExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/VariableExpression.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/VariableExpression.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/VariableExpression.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/VariableExpression.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/Visitor.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Visitor.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/Visitor.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/Visitor.java diff --git a/src/main/java/com/annimon/ownlang/parser/ast/WhileStatement.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/WhileStatement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/ast/WhileStatement.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/ast/WhileStatement.java diff --git a/src/main/java/com/annimon/ownlang/parser/linters/AssignValidator.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/linters/AssignValidator.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/linters/AssignValidator.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/linters/AssignValidator.java diff --git a/src/main/java/com/annimon/ownlang/parser/linters/DefaultFunctionsOverrideValidator.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/linters/DefaultFunctionsOverrideValidator.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/linters/DefaultFunctionsOverrideValidator.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/linters/DefaultFunctionsOverrideValidator.java diff --git a/src/main/java/com/annimon/ownlang/parser/linters/LintVisitor.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/linters/LintVisitor.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/linters/LintVisitor.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/linters/LintVisitor.java diff --git a/src/main/java/com/annimon/ownlang/parser/linters/UseWithNonStringValueValidator.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/linters/UseWithNonStringValueValidator.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/linters/UseWithNonStringValueValidator.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/linters/UseWithNonStringValueValidator.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/ConstantFolding.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/ConstantFolding.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/ConstantFolding.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/ConstantFolding.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/ConstantPropagation.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/ConstantPropagation.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/ConstantPropagation.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/ConstantPropagation.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/DeadCodeElimination.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/ExpressionSimplification.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/ExpressionSimplification.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/ExpressionSimplification.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/ExpressionSimplification.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/InstructionCombining.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/InstructionCombining.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/InstructionCombining.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/InstructionCombining.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/Optimizable.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/Optimizable.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/Optimizable.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/Optimizable.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/OptimizationVisitor.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/OptimizationVisitor.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/OptimizationVisitor.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/OptimizationVisitor.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/SummaryOptimization.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/SummaryOptimization.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/SummaryOptimization.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/SummaryOptimization.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/VariableInfo.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/VariableInfo.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/VariableInfo.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/VariableInfo.java diff --git a/src/main/java/com/annimon/ownlang/parser/optimization/VariablesGrabber.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/VariablesGrabber.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/optimization/VariablesGrabber.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/optimization/VariablesGrabber.java diff --git a/src/main/java/com/annimon/ownlang/parser/visitors/AbstractVisitor.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/AbstractVisitor.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/visitors/AbstractVisitor.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/AbstractVisitor.java diff --git a/src/main/java/com/annimon/ownlang/parser/visitors/FunctionAdder.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/FunctionAdder.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/visitors/FunctionAdder.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/FunctionAdder.java diff --git a/src/main/java/com/annimon/ownlang/parser/visitors/ModuleDetector.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/ModuleDetector.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/visitors/ModuleDetector.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/ModuleDetector.java diff --git a/src/main/java/com/annimon/ownlang/parser/visitors/PrintVisitor.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/PrintVisitor.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/visitors/PrintVisitor.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/PrintVisitor.java diff --git a/src/main/java/com/annimon/ownlang/parser/visitors/VariablePrinter.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/VariablePrinter.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/visitors/VariablePrinter.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/VariablePrinter.java diff --git a/src/main/java/com/annimon/ownlang/parser/visitors/VisitorUtils.java b/ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/VisitorUtils.java similarity index 100% rename from src/main/java/com/annimon/ownlang/parser/visitors/VisitorUtils.java rename to ownlang-parser/src/main/java/com/annimon/ownlang/parser/visitors/VisitorUtils.java diff --git a/src/test/java/com/annimon/ownlang/parser/LexerBenchmarkTest.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/LexerBenchmarkTest.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/LexerBenchmarkTest.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/LexerBenchmarkTest.java diff --git a/src/test/java/com/annimon/ownlang/parser/LexerTest.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/LexerTest.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/LexerTest.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/LexerTest.java diff --git a/src/test/java/com/annimon/ownlang/parser/ParserBenchmarkTest.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/ParserBenchmarkTest.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/ParserBenchmarkTest.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/ParserBenchmarkTest.java diff --git a/src/test/java/com/annimon/ownlang/parser/ParserTest.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/ParserTest.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/ParserTest.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/ParserTest.java diff --git a/src/test/java/com/annimon/ownlang/parser/ProgramsTest.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/ProgramsTest.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/ProgramsTest.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/ProgramsTest.java diff --git a/src/test/java/com/annimon/ownlang/parser/ast/ASTHelper.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/ast/ASTHelper.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/ast/ASTHelper.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/ast/ASTHelper.java diff --git a/src/test/java/com/annimon/ownlang/parser/ast/OperatorExpressionTest.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/ast/OperatorExpressionTest.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/ast/OperatorExpressionTest.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/ast/OperatorExpressionTest.java diff --git a/src/test/java/com/annimon/ownlang/parser/ast/ValueExpressionTest.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/ast/ValueExpressionTest.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/ast/ValueExpressionTest.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/ast/ValueExpressionTest.java diff --git a/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java b/ownlang-parser/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java similarity index 100% rename from src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java rename to ownlang-parser/src/test/java/com/annimon/ownlang/parser/ast/VariableExpressionTest.java diff --git a/src/test/java/interop/Data.java b/ownlang-parser/src/test/java/interop/Data.java similarity index 100% rename from src/test/java/interop/Data.java rename to ownlang-parser/src/test/java/interop/Data.java diff --git a/src/test/resources/expressions/assignmentExpression.own b/ownlang-parser/src/test/resources/expressions/assignmentExpression.own similarity index 100% rename from src/test/resources/expressions/assignmentExpression.own rename to ownlang-parser/src/test/resources/expressions/assignmentExpression.own diff --git a/src/test/resources/expressions/binaryExpressionOnNumbers.own b/ownlang-parser/src/test/resources/expressions/binaryExpressionOnNumbers.own similarity index 100% rename from src/test/resources/expressions/binaryExpressionOnNumbers.own rename to ownlang-parser/src/test/resources/expressions/binaryExpressionOnNumbers.own diff --git a/src/test/resources/expressions/binaryExpressionOnStrings.own b/ownlang-parser/src/test/resources/expressions/binaryExpressionOnStrings.own similarity index 100% rename from src/test/resources/expressions/binaryExpressionOnStrings.own rename to ownlang-parser/src/test/resources/expressions/binaryExpressionOnStrings.own diff --git a/src/test/resources/expressions/binaryUnaryExpr.own b/ownlang-parser/src/test/resources/expressions/binaryUnaryExpr.own similarity index 100% rename from src/test/resources/expressions/binaryUnaryExpr.own rename to ownlang-parser/src/test/resources/expressions/binaryUnaryExpr.own diff --git a/src/test/resources/expressions/foreachKeyValue.own b/ownlang-parser/src/test/resources/expressions/foreachKeyValue.own similarity index 100% rename from src/test/resources/expressions/foreachKeyValue.own rename to ownlang-parser/src/test/resources/expressions/foreachKeyValue.own diff --git a/src/test/resources/expressions/foreachValue.own b/ownlang-parser/src/test/resources/expressions/foreachValue.own similarity index 100% rename from src/test/resources/expressions/foreachValue.own rename to ownlang-parser/src/test/resources/expressions/foreachValue.own diff --git a/src/test/resources/expressions/functionReference.own b/ownlang-parser/src/test/resources/expressions/functionReference.own similarity index 100% rename from src/test/resources/expressions/functionReference.own rename to ownlang-parser/src/test/resources/expressions/functionReference.own diff --git a/src/test/resources/expressions/include.own b/ownlang-parser/src/test/resources/expressions/include.own similarity index 100% rename from src/test/resources/expressions/include.own rename to ownlang-parser/src/test/resources/expressions/include.own diff --git a/src/test/resources/expressions/includeClass.own.txt b/ownlang-parser/src/test/resources/expressions/includeClass.own.txt similarity index 100% rename from src/test/resources/expressions/includeClass.own.txt rename to ownlang-parser/src/test/resources/expressions/includeClass.own.txt diff --git a/src/test/resources/expressions/includeParseErrorSource.own.txt b/ownlang-parser/src/test/resources/expressions/includeParseErrorSource.own.txt similarity index 100% rename from src/test/resources/expressions/includeParseErrorSource.own.txt rename to ownlang-parser/src/test/resources/expressions/includeParseErrorSource.own.txt diff --git a/src/test/resources/expressions/nullCoalesce.own b/ownlang-parser/src/test/resources/expressions/nullCoalesce.own similarity index 100% rename from src/test/resources/expressions/nullCoalesce.own rename to ownlang-parser/src/test/resources/expressions/nullCoalesce.own diff --git a/src/test/resources/expressions/unaryExpressionOnStrings.own b/ownlang-parser/src/test/resources/expressions/unaryExpressionOnStrings.own similarity index 100% rename from src/test/resources/expressions/unaryExpressionOnStrings.own rename to ownlang-parser/src/test/resources/expressions/unaryExpressionOnStrings.own diff --git a/src/test/resources/expressions/varFuncSameName.own b/ownlang-parser/src/test/resources/expressions/varFuncSameName.own similarity index 100% rename from src/test/resources/expressions/varFuncSameName.own rename to ownlang-parser/src/test/resources/expressions/varFuncSameName.own diff --git a/src/test/resources/modules/base64/base64.own b/ownlang-parser/src/test/resources/modules/base64/base64.own similarity index 100% rename from src/test/resources/modules/base64/base64.own rename to ownlang-parser/src/test/resources/modules/base64/base64.own diff --git a/src/test/resources/modules/date/compareDates.own b/ownlang-parser/src/test/resources/modules/date/compareDates.own similarity index 100% rename from src/test/resources/modules/date/compareDates.own rename to ownlang-parser/src/test/resources/modules/date/compareDates.own diff --git a/src/test/resources/modules/date/dateFormat.own b/ownlang-parser/src/test/resources/modules/date/dateFormat.own similarity index 100% rename from src/test/resources/modules/date/dateFormat.own rename to ownlang-parser/src/test/resources/modules/date/dateFormat.own diff --git a/src/test/resources/modules/date/dateParse.own b/ownlang-parser/src/test/resources/modules/date/dateParse.own similarity index 100% rename from src/test/resources/modules/date/dateParse.own rename to ownlang-parser/src/test/resources/modules/date/dateParse.own diff --git a/src/test/resources/modules/date/newDate.own b/ownlang-parser/src/test/resources/modules/date/newDate.own similarity index 100% rename from src/test/resources/modules/date/newDate.own rename to ownlang-parser/src/test/resources/modules/date/newDate.own diff --git a/src/test/resources/modules/files/files.own b/ownlang-parser/src/test/resources/modules/files/files.own similarity index 100% rename from src/test/resources/modules/files/files.own rename to ownlang-parser/src/test/resources/modules/files/files.own diff --git a/src/test/resources/modules/functional/chain.own b/ownlang-parser/src/test/resources/modules/functional/chain.own similarity index 100% rename from src/test/resources/modules/functional/chain.own rename to ownlang-parser/src/test/resources/modules/functional/chain.own diff --git a/src/test/resources/modules/functional/foreach.own b/ownlang-parser/src/test/resources/modules/functional/foreach.own similarity index 100% rename from src/test/resources/modules/functional/foreach.own rename to ownlang-parser/src/test/resources/modules/functional/foreach.own diff --git a/src/test/resources/modules/functional/stream.own b/ownlang-parser/src/test/resources/modules/functional/stream.own similarity index 100% rename from src/test/resources/modules/functional/stream.own rename to ownlang-parser/src/test/resources/modules/functional/stream.own diff --git a/src/test/resources/modules/gzip/gzipBytes.own b/ownlang-parser/src/test/resources/modules/gzip/gzipBytes.own similarity index 100% rename from src/test/resources/modules/gzip/gzipBytes.own rename to ownlang-parser/src/test/resources/modules/gzip/gzipBytes.own diff --git a/src/test/resources/modules/java/classes.own b/ownlang-parser/src/test/resources/modules/java/classes.own similarity index 100% rename from src/test/resources/modules/java/classes.own rename to ownlang-parser/src/test/resources/modules/java/classes.own diff --git a/src/test/resources/modules/regex/match.own b/ownlang-parser/src/test/resources/modules/regex/match.own similarity index 100% rename from src/test/resources/modules/regex/match.own rename to ownlang-parser/src/test/resources/modules/regex/match.own diff --git a/src/test/resources/modules/regex/replaceCallback.own b/ownlang-parser/src/test/resources/modules/regex/replaceCallback.own similarity index 100% rename from src/test/resources/modules/regex/replaceCallback.own rename to ownlang-parser/src/test/resources/modules/regex/replaceCallback.own diff --git a/src/test/resources/modules/std/arraySplice.own b/ownlang-parser/src/test/resources/modules/std/arraySplice.own similarity index 100% rename from src/test/resources/modules/std/arraySplice.own rename to ownlang-parser/src/test/resources/modules/std/arraySplice.own diff --git a/src/test/resources/modules/std/default.own b/ownlang-parser/src/test/resources/modules/std/default.own similarity index 100% rename from src/test/resources/modules/std/default.own rename to ownlang-parser/src/test/resources/modules/std/default.own diff --git a/src/test/resources/modules/std/getBytes.own b/ownlang-parser/src/test/resources/modules/std/getBytes.own similarity index 100% rename from src/test/resources/modules/std/getBytes.own rename to ownlang-parser/src/test/resources/modules/std/getBytes.own diff --git a/src/test/resources/modules/std/indexOf.own b/ownlang-parser/src/test/resources/modules/std/indexOf.own similarity index 100% rename from src/test/resources/modules/std/indexOf.own rename to ownlang-parser/src/test/resources/modules/std/indexOf.own diff --git a/src/test/resources/modules/std/lastIndexOf.own b/ownlang-parser/src/test/resources/modules/std/lastIndexOf.own similarity index 100% rename from src/test/resources/modules/std/lastIndexOf.own rename to ownlang-parser/src/test/resources/modules/std/lastIndexOf.own diff --git a/src/test/resources/modules/std/parseInt.own b/ownlang-parser/src/test/resources/modules/std/parseInt.own similarity index 100% rename from src/test/resources/modules/std/parseInt.own rename to ownlang-parser/src/test/resources/modules/std/parseInt.own diff --git a/src/test/resources/modules/std/parseLong.own b/ownlang-parser/src/test/resources/modules/std/parseLong.own similarity index 100% rename from src/test/resources/modules/std/parseLong.own rename to ownlang-parser/src/test/resources/modules/std/parseLong.own diff --git a/src/test/resources/modules/std/range.own b/ownlang-parser/src/test/resources/modules/std/range.own similarity index 100% rename from src/test/resources/modules/std/range.own rename to ownlang-parser/src/test/resources/modules/std/range.own diff --git a/src/test/resources/modules/std/stringFromBytes.own b/ownlang-parser/src/test/resources/modules/std/stringFromBytes.own similarity index 100% rename from src/test/resources/modules/std/stringFromBytes.own rename to ownlang-parser/src/test/resources/modules/std/stringFromBytes.own diff --git a/src/test/resources/modules/std/stripMargin.own b/ownlang-parser/src/test/resources/modules/std/stripMargin.own similarity index 100% rename from src/test/resources/modules/std/stripMargin.own rename to ownlang-parser/src/test/resources/modules/std/stripMargin.own diff --git a/src/test/resources/modules/std/toHexString.own b/ownlang-parser/src/test/resources/modules/std/toHexString.own similarity index 100% rename from src/test/resources/modules/std/toHexString.own rename to ownlang-parser/src/test/resources/modules/std/toHexString.own diff --git a/src/test/resources/modules/std/try.own b/ownlang-parser/src/test/resources/modules/std/try.own similarity index 100% rename from src/test/resources/modules/std/try.own rename to ownlang-parser/src/test/resources/modules/std/try.own diff --git a/src/test/resources/modules/yaml/yamldecode.own b/ownlang-parser/src/test/resources/modules/yaml/yamldecode.own similarity index 100% rename from src/test/resources/modules/yaml/yamldecode.own rename to ownlang-parser/src/test/resources/modules/yaml/yamldecode.own diff --git a/src/test/resources/modules/yaml/yamlencode.own b/ownlang-parser/src/test/resources/modules/yaml/yamlencode.own similarity index 100% rename from src/test/resources/modules/yaml/yamlencode.own rename to ownlang-parser/src/test/resources/modules/yaml/yamlencode.own diff --git a/src/test/resources/other/arrayFunctions.own b/ownlang-parser/src/test/resources/other/arrayFunctions.own similarity index 100% rename from src/test/resources/other/arrayFunctions.own rename to ownlang-parser/src/test/resources/other/arrayFunctions.own diff --git a/src/test/resources/other/functionChain.own b/ownlang-parser/src/test/resources/other/functionChain.own similarity index 100% rename from src/test/resources/other/functionChain.own rename to ownlang-parser/src/test/resources/other/functionChain.own diff --git a/src/test/resources/other/recursion.own b/ownlang-parser/src/test/resources/other/recursion.own similarity index 100% rename from src/test/resources/other/recursion.own rename to ownlang-parser/src/test/resources/other/recursion.own diff --git a/src/test/resources/other/scope.own b/ownlang-parser/src/test/resources/other/scope.own similarity index 100% rename from src/test/resources/other/scope.own rename to ownlang-parser/src/test/resources/other/scope.own diff --git a/src/test/resources/other/stringFunctions.own b/ownlang-parser/src/test/resources/other/stringFunctions.own similarity index 100% rename from src/test/resources/other/stringFunctions.own rename to ownlang-parser/src/test/resources/other/stringFunctions.own diff --git a/src/test/resources/other/types.own b/ownlang-parser/src/test/resources/other/types.own similarity index 100% rename from src/test/resources/other/types.own rename to ownlang-parser/src/test/resources/other/types.own diff --git a/src/main/java/com/annimon/ownlang/utils/ModulesInfoCreator.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/ModulesInfoCreator.java similarity index 100% rename from src/main/java/com/annimon/ownlang/utils/ModulesInfoCreator.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/ModulesInfoCreator.java diff --git a/src/main/java/com/annimon/ownlang/utils/OptimizationDumper.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/OptimizationDumper.java similarity index 100% rename from src/main/java/com/annimon/ownlang/utils/OptimizationDumper.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/OptimizationDumper.java diff --git a/src/main/java/com/annimon/ownlang/utils/Repl.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/Repl.java similarity index 98% rename from src/main/java/com/annimon/ownlang/utils/Repl.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/Repl.java index 2c06f94..8965296 100644 --- a/src/main/java/com/annimon/ownlang/utils/Repl.java +++ b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/Repl.java @@ -1,7 +1,7 @@ package com.annimon.ownlang.utils; import com.annimon.ownlang.Console; -import com.annimon.ownlang.Main; +import com.annimon.ownlang.Version; import com.annimon.ownlang.exceptions.LexerException; import com.annimon.ownlang.exceptions.StoppedException; import com.annimon.ownlang.lib.Functions; @@ -39,7 +39,7 @@ public final class Repl { private static final Token PRINTLN_TOKEN = new Token(TokenType.PRINTLN, "", 0, 0); public static void main(String[] args) { - System.out.println("Welcome to OwnLang " + Main.VERSION + " REPL"); + System.out.println("Welcome to OwnLang " + Version.VERSION + " REPL"); printHelp(false); final BlockStatement history = new BlockStatement(); diff --git a/src/main/java/com/annimon/ownlang/utils/Sandbox.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/Sandbox.java similarity index 100% rename from src/main/java/com/annimon/ownlang/utils/Sandbox.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/Sandbox.java diff --git a/src/main/java/com/annimon/ownlang/utils/TimeMeasurement.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/TimeMeasurement.java similarity index 100% rename from src/main/java/com/annimon/ownlang/utils/TimeMeasurement.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/TimeMeasurement.java diff --git a/src/main/java/com/annimon/ownlang/utils/repl/JLineConsole.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/repl/JLineConsole.java similarity index 100% rename from src/main/java/com/annimon/ownlang/utils/repl/JLineConsole.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/repl/JLineConsole.java diff --git a/src/main/java/com/annimon/ownlang/utils/repl/OwnLangCompleter.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/repl/OwnLangCompleter.java similarity index 100% rename from src/main/java/com/annimon/ownlang/utils/repl/OwnLangCompleter.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/repl/OwnLangCompleter.java diff --git a/src/main/java/com/annimon/ownlang/utils/repl/ReplConsole.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/repl/ReplConsole.java similarity index 100% rename from src/main/java/com/annimon/ownlang/utils/repl/ReplConsole.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/repl/ReplConsole.java diff --git a/src/main/java/com/annimon/ownlang/utils/repl/SystemConsole.java b/ownlang-utils/src/main/java/com/annimon/ownlang/utils/repl/SystemConsole.java similarity index 100% rename from src/main/java/com/annimon/ownlang/utils/repl/SystemConsole.java rename to ownlang-utils/src/main/java/com/annimon/ownlang/utils/repl/SystemConsole.java