From 981d796766e19b769d4577855d086d5d197ee124 Mon Sep 17 00:00:00 2001 From: Victor Melnik Date: Wed, 27 May 2020 16:55:52 +0300 Subject: [PATCH 1/4] Create .gitattributes --- .gitattributes | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitattributes diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..053c906 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.own linguist-language=Scala From 493a3995a9426b3e84b2a53ff97021ddac3662bb Mon Sep 17 00:00:00 2001 From: Victor Melnik Date: Thu, 18 Jun 2020 23:33:03 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B2=D1=80=D0=B5=D0=BC=D0=B5=D0=BD=D0=B8=20?= =?UTF-8?q?=D0=B2=2024-=D1=87=D0=B0=D1=81=D0=BE=D0=B2=D0=BE=D0=BC=20=D1=84?= =?UTF-8?q?=D0=BE=D1=80=D0=BC=D0=B0=D1=82=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/annimon/ownlang/modules/date/date.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/annimon/ownlang/modules/date/date.java b/src/main/java/com/annimon/ownlang/modules/date/date.java index b83e24c..7f5e10d 100644 --- a/src/main/java/com/annimon/ownlang/modules/date/date.java +++ b/src/main/java/com/annimon/ownlang/modules/date/date.java @@ -58,7 +58,7 @@ public final class date implements Module { value.set(YEAR, NumberValue.of(calendar.get(Calendar.YEAR))); value.set(MONTH, NumberValue.of(calendar.get(Calendar.MONTH))); value.set(DAY, NumberValue.of(calendar.get(Calendar.DAY_OF_MONTH))); - value.set(HOUR, NumberValue.of(calendar.get(Calendar.HOUR))); + value.set(HOUR, NumberValue.of(calendar.get(Calendar.HOUR_OF_DAY))); value.set(MINUTE, NumberValue.of(calendar.get(Calendar.MINUTE))); value.set(SECOND, NumberValue.of(calendar.get(Calendar.SECOND))); value.set(MILLISECOND, NumberValue.of(calendar.get(Calendar.MILLISECOND))); From d18a14b2acafa2db744f371258483415301f8d9a Mon Sep 17 00:00:00 2001 From: corgifist <86985149+corgifist@users.noreply.github.com> Date: Thu, 8 Jul 2021 17:58:11 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=90=D0=B2=D1=82=D0=BE=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B7=D0=BE=D0=B2=20toString()=20(#9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Added auto toString() * Update ClassInstanceValue.java --- .../ownlang/lib/ClassInstanceValue.java | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/annimon/ownlang/lib/ClassInstanceValue.java b/src/main/java/com/annimon/ownlang/lib/ClassInstanceValue.java index a0e2a4a..9a2ff76 100644 --- a/src/main/java/com/annimon/ownlang/lib/ClassInstanceValue.java +++ b/src/main/java/com/annimon/ownlang/lib/ClassInstanceValue.java @@ -8,6 +8,7 @@ public class ClassInstanceValue implements Value { private final String className; private final MapValue thisMap; private ClassMethod constructor; + private UserDefinedFunction toString; public ClassInstanceValue(String name) { this.className = name; @@ -17,28 +18,32 @@ public class ClassInstanceValue implements Value { public MapValue getThisMap() { return thisMap; } - + public String getClassName() { return className; } - + public void addField(String name, Value value) { thisMap.set(name, value); } - + public void addMethod(String name, ClassMethod method) { + if (name.equals("toString")) { + toString = method; + } thisMap.set(name, method); if (name.equals(className)) { constructor = method; } } - + + public void callConstructor(Value[] args) { if (constructor != null) { constructor.execute(args); } } - + public Value access(Value value) { return thisMap.get(value); } @@ -46,7 +51,7 @@ public class ClassInstanceValue implements Value { public void set(Value key, Value value) { final Value v = thisMap.get(key); if (v == null) { - throw new RuntimeException("Unable to add new field " + throw new RuntimeException("Unable to add new field " + key.asString() + " to class " + className); } thisMap.set(key, value); @@ -69,14 +74,17 @@ public class ClassInstanceValue implements Value { @Override public String asString() { - return "class " + className + "@" + thisMap; + if (toString != null) { + return toString.execute(new Value[] {}).asString(); + } + return className + "@" + thisMap; } @Override public int type() { return Types.CLASS; } - + @Override public int hashCode() { int hash = 5; @@ -99,7 +107,7 @@ public class ClassInstanceValue implements Value { public int compareTo(Value o) { return asString().compareTo(o.asString()); } - + @Override public String toString() { return asString(); From 30f18ab053d5ada0223bc1f7e502dd918bdbd344 Mon Sep 17 00:00:00 2001 From: Victor Melnik Date: Sun, 30 Jan 2022 12:41:53 +0200 Subject: [PATCH 4/4] Fix release link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index dfa95af..2b6669c 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ OwnLang - dynamic functional programming language inspired by Scala and Python. | Free | Pro | Desktop | | :--: | :-: | :-----: | -| [![Free](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang.free) | [![Pro](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang) | [v1.5.0](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases/tag/1.5.0) +| [![Free](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang.free) | [![Pro](https://developer.android.com/images/brand/en_generic_rgb_wo_45.png)](https://play.google.com/store/apps/details?id=com.annimon.ownlang) | [v1.5.0](https://github.com/aNNiMON/Own-Programming-Language-Tutorial/releases/tag/v1.5.0) Also available as AUR package: