From 2d5ba127705bd442ef53e43b9c65a6064f8a55f6 Mon Sep 17 00:00:00 2001 From: Victor Date: Sat, 4 Jun 2016 13:49:45 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B0=D1=80=D0=B3=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=BD=D0=BE?= =?UTF-8?q?=D0=B9=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B8=20=D0=B2=20std::A?= =?UTF-8?q?RGS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/ownlang/Main.java | 19 ++++++++++++++++++- src/com/annimon/ownlang/lib/modules/std.java | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/com/annimon/ownlang/Main.java b/src/com/annimon/ownlang/Main.java index aa52b20..49eb029 100644 --- a/src/com/annimon/ownlang/Main.java +++ b/src/com/annimon/ownlang/Main.java @@ -22,6 +22,12 @@ public final class Main { private static final String VERSION = "1.1.0"; + 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 { @@ -73,12 +79,17 @@ public final class Main { case "--file": if (i + 1 < args.length) { input = SourceLoader.readSource(args[i + 1]); + createOwnLangArgs(args, i + 2); i++; } break; default: - input = args[i]; + if (input == null) { + input = args[i]; + createOwnLangArgs(args, i + 1); + } + break; } } if (input == null) { @@ -90,6 +101,12 @@ public final class Main { } run(input, showTokens, showAst, showMeasurements); } + + private static void createOwnLangArgs(String[] javaArgs, int index) { + if (index >= javaArgs.length) return; + ownlangArgs = new String[javaArgs.length - index]; + System.arraycopy(javaArgs, index, ownlangArgs, 0, ownlangArgs.length); + } private static void run(String input, boolean showTokens, boolean showAst, boolean showMeasurements) { final TimeMeasurement measurement = new TimeMeasurement(); diff --git a/src/com/annimon/ownlang/lib/modules/std.java b/src/com/annimon/ownlang/lib/modules/std.java index 1b9e4aa..952dc4a 100644 --- a/src/com/annimon/ownlang/lib/modules/std.java +++ b/src/com/annimon/ownlang/lib/modules/std.java @@ -1,5 +1,6 @@ package com.annimon.ownlang.lib.modules; +import com.annimon.ownlang.Main; import com.annimon.ownlang.lib.*; import com.annimon.ownlang.lib.modules.functions.*; @@ -11,6 +12,8 @@ public final class std implements Module { @Override public void init() { + Variables.set("ARGS", ArrayValue.of(Main.getOwnlangArgs())); + Functions.set("echo", new std_echo()); Functions.set("readln", new std_readln()); Functions.set("length", new std_length());