diff --git a/nx01-jpp-base/pom.xml b/nx01-jpp-base/pom.xml index 946a3ed..2ff8541 100644 --- a/nx01-jpp-base/pom.xml +++ b/nx01-jpp-base/pom.xml @@ -10,11 +10,7 @@ love.distributedrebirth.nx01 - nx01-jpp-nether-dial-lingua - - - love.distributedrebirth.nx01 - nx01-jpp-nether-dial-based + nx01-jpp-klass-nether love.distributedrebirth.nx01 diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T008ᖟ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T008ᖟ.java index 22f59a2..5bfd0e9 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T008ᖟ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T008ᖟ.java @@ -84,8 +84,8 @@ public enum T008ᖟ implements TerminatorEnum𓄯, LegoᐧBrickᐧTape return valueOf(zerdinal); } - public int zerdinalOctalShiftNativeBE(T008ᖟ shifter) { - return zerdinal() << shifter.abacusRȧñkOctalBitShifterBE(); + public int zerdinalOctalShiftNative(T008ᖟ shifter) { + return zerdinal() << shifter.abacusRȧñkOctalBitShifter(); } public T002ᖟ clampᐧtuneᐧtool(T003ᖟ part) { @@ -114,8 +114,8 @@ public enum T008ᖟ implements TerminatorEnum𓄯, LegoᐧBrickᐧTape appender.addᵂʳ(this); } - public static T008ᖟ valueOfOctalShiftBE(final int value, final T008ᖟ shifter) { - return valueOf((value >> shifter.abacusRȧñkOctalBitShifterBE()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK); + public static T008ᖟ valueOfOctalShift(final int value, final T008ᖟ shifter) { + return valueOf((value >> shifter.abacusRȧñkOctalBitShifter()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK); } public static T008ᖟ valueOf(final int index) { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T064ᖟ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T064ᖟ.java index 64c6d2b..25862b3 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T064ᖟ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T064ᖟ.java @@ -134,11 +134,11 @@ public enum T064ᖟ implements TerminatorEnum𓄯, LegoᐧBrickᐧTape return valueOf(zerdinal); } - public T008ᖟ clampᐧtuneᐧby2() { + public T008ᖟ clampᐧoctalᐧtuneᐧby2() { return T008ᖟ.valueOf(((ordinal() >> 0) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK)); } - public T008ᖟ clampᐧtuneᐧby2ᐧmod() { + public T008ᖟ clampᐧoctalᐧtuneᐧby2ᐧmod() { return T008ᖟ.valueOf(((ordinal() >> 3) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK)); } @@ -149,12 +149,12 @@ public enum T064ᖟ implements TerminatorEnum𓄯, LegoᐧBrickᐧTape @Override public void brickᐧtapeᐧrecordᐧtune(final JediTempleBase8Offering appender) { - appender.addᵂʳ(clampᐧtuneᐧby2ᐧmod()); - appender.addᵂʳ(clampᐧtuneᐧby2()); + appender.addᵂʳ(clampᐧoctalᐧtuneᐧby2()); + appender.addᵂʳ(clampᐧoctalᐧtuneᐧby2ᐧmod()); } - public static T064ᖟ valueOf(final T008ᖟ msb, final T008ᖟ lsb) { - return T064ᖟ.valueOf((msb.ordinal() << ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS) + lsb.ordinal()); + public static T064ᖟ valueOf(final T008ᖟ lower, final T008ᖟ upper) { + return T064ᖟ.valueOf((upper.ordinal() << ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS) + lower.ordinal()); } public static T064ᖟ valueOf(final JediTempleBase8Iterator values) { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T512ᖟ.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T512ᖟ.java index 3b54bef..06222a9 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T512ᖟ.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T512ᖟ.java @@ -582,8 +582,8 @@ public enum T512ᖟ implements TerminatorEnum𓄯, LegoᐧBrickᐧTape return valueOf(zerdinal); } - public T008ᖟ clampᐧtuneᐧby3(T003ᖟ part) { - return T008ᖟ.valueOf((ordinal() >> part.abacusRȧñkOctalBitShifterBE()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK); + public T008ᖟ clampᐧoctalᐧtuneᐧby3(T003ᖟ part) { + return T008ᖟ.valueOf((ordinal() >> part.abacusRȧñkOctalBitShifter()) & ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟMASK); } @Override @@ -593,9 +593,9 @@ public enum T512ᖟ implements TerminatorEnum𓄯, LegoᐧBrickᐧTape @Override public void brickᐧtapeᐧrecordᐧtune(final JediTempleBase8Offering appender) { - appender.addᵂʳ(clampᐧtuneᐧby3(T003ᖟ.PART_1)); - appender.addᵂʳ(clampᐧtuneᐧby3(T003ᖟ.PART_2)); - appender.addᵂʳ(clampᐧtuneᐧby3(T003ᖟ.PART_3)); + appender.addᵂʳ(clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_1)); + appender.addᵂʳ(clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_2)); + appender.addᵂʳ(clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_3)); } public static T512ᖟ valueOf(final int index) { @@ -606,8 +606,8 @@ public enum T512ᖟ implements TerminatorEnum𓄯, LegoᐧBrickᐧTape return 亞ᴬᴸᴸ.length; } - public static T512ᖟ valueOf(final T008ᖟ msb, final T008ᖟ csb, final T008ᖟ lsb) { - return valueOf((msb.ordinal() << (ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS + ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS)) + (csb.ordinal() << ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS) + lsb.ordinal()); + public static T512ᖟ valueOf(final T008ᖟ lower, final T008ᖟ middle, final T008ᖟ upper) { + return valueOf((upper.ordinal() << (ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS + ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS)) + (middle.ordinal() << ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS) + lower.ordinal()); } public static T512ᖟ valueOf(final JediTempleBase8Iterator values) { diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java index bd6cccf..c8b6c2d 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᐦ/Terminator𓄯.java @@ -135,28 +135,15 @@ public interface Terminator𓄯> extends ZerdinalA private BãßBȍőnAmmoBoxԲ backpackᴬᵐᵐᵒᴮᵒˣ() { return thisᵀᴮᵒⁿᵉᴳʳᵃᵛᵉ().onheɨlḮg(Ꝑŕḯṿª₮ḕꝐḯŕ₳₮ḕʸᴰ.class).gềễstDɨng(Ꝑŕḯṿª₮ḕꝐḯŕ₳₮ḕʸᴰ.GHOST_AMMO_BOX_PICKUP, BãßBȍőnAmmoBoxԲ.class); } - - @Deprecated + default BigInteger abacusRȧñkOctalShift(T shifter) { - return abacusRȧñkOctalShiftLE(shifter); + return BigInteger.valueOf(zerdinal()).shiftLeft(shifter.abacusRȧñkOctalBitShifter()); } - default BigInteger abacusRȧñkOctalShiftLE(T shifter) { - return BigInteger.valueOf(zerdinal()).shiftLeft(shifter.abacusRȧñkOctalBitShifterLE()); - } - - default BigInteger abacusRȧñkOctalShiftBE(T shifter) { - return BigInteger.valueOf(zerdinal()).shiftLeft(shifter.abacusRȧñkOctalBitShifterBE()); - } - - default int abacusRȧñkOctalBitShifterLE() { + default int abacusRȧñkOctalBitShifter() { return zerdinalSpaceOctalCount() * zerdinal() * ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS; } - default int abacusRȧñkOctalBitShifterBE() { - return zerdinalSpaceOctalCount() * (zerdinalSpaceBoundary() - zerdinal() - 1) * ᒢℭỗᶇṧⱦᶏꬼȶʂ.OCTALᣟᐧᣟBITS; - } - default Integer zerdinalSpaceOctalCount() { return backpackᴬᵐᵐᵒᴮᵒˣ().kȱġễlInteger(TerminatorBullet.SPACE_OCTAL_COUNT); } diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᕐᓑᣕᔆ/T008ᖟGun.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᕐᓑᣕᔆ/T008ᖟGun.java index 1da10cb..dc1091d 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᕐᓑᣕᔆ/T008ᖟGun.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/ᕐᓑᣕᔆ/T008ᖟGun.java @@ -95,10 +95,10 @@ public enum T008ᖟGun { str.appendCodePoint(VALUES.codePoints().skip(ordinal).findFirst().getAsInt()); } } - /// Hinarī(ヒナリー) is octal hebrew binary (now big indian native unicode ordered) + /// Hinarī(ヒナリー) is octal hebrew binary @TerminatorGunAmmo注(website = "https://baki.fandom.com/wiki/Hinary") static public final class T008ᖟGunHinarī implements TerminatorGun { - private final static String VALUES = "\u05D3\u05D5\u05D6\u05D9\u05E8\u05F0\u05F1\u05F2"; + private final static String VALUES = "י"+"ײ"+"ױ"+"װ"+"ר"+"ד"+"ז"+"ו"; private T008ᖟGunHinarī() { } @@ -110,7 +110,7 @@ public enum T008ᖟGun { /// Hinarī + HinarīSupplement6 = 6 bit number @TerminatorGunAmmo注(website = "https://en.wikipedia.org/wiki/Hebrew_diacritics") static public final class T008ᖟGunHinarīSupplement6 implements TerminatorGun { - private final static String VALUES = "\u05B0\u05B2\u05B3\u05B5\u05B6\u05B7\u05BB\u05BD"; + private final static String VALUES = "\u05BD"+"\u05B5"+"\u05B6"+"\u05B2"+"\u05B3"+"\u05BB"+"\u05B0"+"\u05B7"; private T008ᖟGunHinarīSupplement6() { } @@ -122,7 +122,7 @@ public enum T008ᖟGun { /// Hinarī + HinarīSupplement6 + HinarīSupplement9 = 9 bit number @TerminatorGunAmmo注(website = "https://en.wikipedia.org/wiki/Hebrew_(Unicode_block)") static public final class T008ᖟGunHinarīSupplement9 implements TerminatorGun { - private final static String VALUES = "\u0594\u0595\u0598\u059D\u059E\u059F\u05A0\u05A9"; + private final static String VALUES = "\u0594"+"\u0595"+"\u05A9"+"\u059F"+"\u0598"+"\u05A0"+"\u059E"+"\u059D"; private T008ᖟGunHinarīSupplement9() { } @@ -131,4 +131,18 @@ public enum T008ᖟGun { str.appendCodePoint(VALUES.codePoints().skip(ordinal).findFirst().getAsInt()); } } +/* Stable Typed Inverse BIT Zero +Hinarī + Supplement6 + Supplement9 +1111111111111111111111111111111111 +"י" i=5bd אֽ i=594 א֔ +"ײ" i=5b5 אֵ i=595 א֕ +"ױ" i=5b6 אֶ i=5a9 א֩ +"װ" i=5b2 אֲ i=59f א֟ +0000000000000000000000000000000000 +"ר" i=5b3 אֳ i=598 א֘ +"ד" i=5bb אֻ i=5a0 א֠ +"ז" i=5b0 אְ i=59e א֞ +"ו" i=5b7 אַ i=59d א֝ +1111111111111111111111111111111111 +*/ } diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒃᐤᣗᕐᒼᓑᒃᓫ/Gê̄ldGetậlÅtHebrew.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒃᐤᣗᕐᒼᓑᒃᓫ/Gê̄ldGetậlÅtHebrew.java index 2adca60..a1a5fee 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒃᐤᣗᕐᒼᓑᒃᓫ/Gê̄ldGetậlÅtHebrew.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒃᐤᣗᕐᒼᓑᒃᓫ/Gê̄ldGetậlÅtHebrew.java @@ -61,9 +61,9 @@ public class Gê̄ldGetậlÅtHebrew { public T512ᖟ toTyte() { int combinedValue = letter.ordinal() + (vowel.ordinal() << Gê̄ldGetậlÅtHebrewLetter.SHIFT_5); - T008ᖟ value0 = T008ᖟ.valueOfOctalShiftBE(combinedValue, T008ᖟ.PART_1); - T008ᖟ value1 = T008ᖟ.valueOfOctalShiftBE(combinedValue, T008ᖟ.PART_2); - T008ᖟ value2 = T008ᖟ.valueOfOctalShiftBE(combinedValue, T008ᖟ.PART_3); + T008ᖟ value0 = T008ᖟ.valueOfOctalShift(combinedValue, T008ᖟ.PART_1); + T008ᖟ value1 = T008ᖟ.valueOfOctalShift(combinedValue, T008ᖟ.PART_2); + T008ᖟ value2 = T008ᖟ.valueOfOctalShift(combinedValue, T008ᖟ.PART_3); return T512ᖟ.valueOf(value0, value1, value2); } diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoGearByteNative.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoGearByteNative.java index d1224e4..a489d31 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoGearByteNative.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/LegoGearByteNative.java @@ -64,32 +64,32 @@ public enum LegoGearByteNative { int v2 = (data[6] & 0xFF) + ((data[7] << SHIFT_8) & 0xFF00) + ((data[8] << SHIFT_16) & 0xFF0000); // in-lined manual 3 loops for speed - octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_1)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_2)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_3)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_4)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_5)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_6)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_7)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v0, T008ᖟ.PART_8)); + octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_1)); + octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_2)); + octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_3)); + octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_4)); + octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_5)); + octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_6)); + octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_7)); + octals.add(T008ᖟ.valueOfOctalShift(v0, T008ᖟ.PART_8)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_1)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_2)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_3)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_4)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_5)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_6)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_7)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v1, T008ᖟ.PART_8)); + octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_1)); + octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_2)); + octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_3)); + octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_4)); + octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_5)); + octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_6)); + octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_7)); + octals.add(T008ᖟ.valueOfOctalShift(v1, T008ᖟ.PART_8)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_1)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_2)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_3)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_4)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_5)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_6)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_7)); - octals.add(T008ᖟ.valueOfOctalShiftBE(v2, T008ᖟ.PART_8)); + octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_1)); + octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_2)); + octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_3)); + octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_4)); + octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_5)); + octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_6)); + octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_7)); + octals.add(T008ᖟ.valueOfOctalShift(v2, T008ᖟ.PART_8)); // todo recode back to block streaming (move octals in while) } @@ -136,14 +136,14 @@ public enum LegoGearByteNative { JediTempleBase8Iterator read = brickᐧtapeᐧrecordᐧχ3(); while (read.hasNextᴿᵈ().toNavajo()) { int byteTriplet = 0; - byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_1); - byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_2); - byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_3); - byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_4); - byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_5); - byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_6); - byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_7); - byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNativeBE(T008ᖟ.PART_8); + byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_1); + byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_2); + byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_3); + byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_4); + byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_5); + byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_6); + byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_7); + byteTriplet += read.nextᴿᵈ().zerdinalOctalShiftNative(T008ᖟ.PART_8); output.write(byteTriplet); output.write(byteTriplet >> SHIFT_8); output.write(byteTriplet >> SHIFT_16); diff --git a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V018Tord.java b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V018Tord.java index b59dd6e..2f9cdbb 100644 --- a/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V018Tord.java +++ b/nx01-jpp-base/src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/ᔿᓫᒻᓫᓫ/V018Tord.java @@ -61,16 +61,13 @@ public final class V018Tord extends LegoBrickMould抽 implemen } public T008ᖟ legoᐧtuneᐧᗅᗷᗷᗅ(T006ᖟ part, T008ᖟ value) { - T002ᖟ tuneBy3 = part.clampᐧtuneᐧby3(); - T003ᖟ tuneBy3M = part.clampᐧtuneᐧby3ᐧmod(); - T512ᖟ valueBy3 = legoᐧtuneᐧᗅᗷᗷᗅ(tuneBy3); if (value == null) { - return valueBy3.clampᐧtuneᐧby3(tuneBy3M); + return legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(part.clampᐧtuneᐧby3ᐧmod()); } - T008ᖟ value1 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_1); - T008ᖟ value2 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_2); - T008ᖟ value3 = valueBy3.clampᐧtuneᐧby3(T003ᖟ.PART_3); - switch (tuneBy3M) { + T008ᖟ value1 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_1); + T008ᖟ value2 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_2); + T008ᖟ value3 = legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3()).clampᐧoctalᐧtuneᐧby3(T003ᖟ.PART_3); + switch (part.clampᐧtuneᐧby3ᐧmod()) { case PART_1: value1 = value; break; @@ -82,7 +79,7 @@ public final class V018Tord extends LegoBrickMould抽 implemen break; } T512ᖟ valueNew = T512ᖟ.valueOf(value1, value2, value3); - legoᐧtuneᐧᗅᗷᗷᗅ(tuneBy3, valueNew); + legoᐧtuneᐧᗅᗷᗷᗅ(part.clampᐧtuneᐧby3(), valueNew); return value; } diff --git a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/BabelTest.java b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/BabelTest.java index 76a3be3..2613740 100644 --- a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/BabelTest.java +++ b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒃᣔᔆᔆᒃᐤᐤᣕ/BabelTest.java @@ -38,12 +38,10 @@ import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAu @DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") public class BabelTest { // ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.xxx - // ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ(8 times 2^6+2^6+2^6+2^9+2^6+2^6+2^6+2^6+2^6+2^6+2^9 = 12800 interface + mutex + etc) - // ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒼᑋᐤᣗᑊᐣ (SKIP-JAVA4?: REDO 8 times 3 chords of 2^18 tree slug size + file groupings) + // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ(8 times 2^6+2^6+2^6+2^9+2^6+2^6+2^6+2^6+2^6+2^6+2^9 = 12800 interface + mutex + etc) + // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᒼᑋᐤᣗᑊᐣ (SKIP-JAVA4?: REDO 8 times 3 chords of 2^18 tree slug size + file groupings) // = 8*3*(2^18) = 6_291_456 is above default jvm max class limit - // implement as group marker interface to readout relative distance to marker root - // ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔ (#interfaces; ~31K + file groupings) - // ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒃᣔᔆᓫᒄ (#interfaces; 2304 + 2_655_360 + file groupings) + // implement as group marker interface to readout relative distance to marker root // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᒃᐤᣕᓫ.ᣖᑊᣗᣔᐪᓫ.ᒃᐤᣔᐪs // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᒃᐤᣕᓫ.ᣘᒻᓫᔆᑋ.ᣔᔿᔿᐤ // ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᒼᣔᑊᑉᓫ.ᐪᣔᔆᐪᓫ @@ -55,6 +53,8 @@ public class BabelTest { // ᒢᐩᐩ.ᒡᒢᣔᣗᣖ.ᔿᣔᣕᑊᣘᓫᔆᐪᐤᣗ.ᔆᒼᐤᣖᑊᒼ // ᒢᐩᐩ.ᐪᓫᕽᐪ.ᔆᐪᣗᑊᣕᕐ.ᣔᑊᐣᓑᒻᐪ (jpp 18 bit version of PrimordialOctalOrangeString) // ᒢᐩᐩ.ᐪᓫᕽᐪ.ᔆᐪᣗᑊᣕᕐ.ᓑᣕᣳᒼᐤᒄᓫ + // ᒢᐩᐩ.ᐪᓫᕽᐪ.ᒄᓫᣕᐪᣔᒻ.ᒻᑊᣕᕐᓑᣔ (#interfaces; ~31K + file groupings) + // ᒢᐩᐩ.ᣕᓑᔿᒃᓫᣗ.ᙆᓫᣗᒄᑊᣕᣔᒻ.ᒃᣔᔆᓫᑊᐣ (#interfaces; 2304 + 2_655_360 + file groupings) // - real enum terminator set is from FC18 (FCFlameNumberGram.java) // - bone based terminators up to PIG size 2304 (after 99% of JPP code comes from nether generate on use) // - virtual terminator from nether chord group selector slug path is 2^18 bit pie part values diff --git a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᐪᓫᕽᐪ/ᒻᑊᣕᕐᓑᣔ/LinguaGenerator.java b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᐪᓫᕽᐪ/ᒻᑊᣕᕐᓑᣔ/LinguaGenerator.java new file mode 100644 index 0000000..9d3fb41 --- /dev/null +++ b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᐪᓫᕽᐪ/ᒻᑊᣕᕐᓑᣔ/LinguaGenerator.java @@ -0,0 +1,395 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.ᒻᑊᣕᕐᓑᣔ; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.FileSystems; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; +import java.util.List; +import java.util.Properties; +import java.util.stream.Collectors; + +import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.LinguaFactory; +import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; + +@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") +public class LinguaGenerator { + +/* + * +32809 entries + +locale-i18n-mapping: +eg_hi? = 12?AAC-eaj hieroglyphs +he_hi? = 12?AAB-abe Hinarī +hi = 59-AA Hindi + Pashayi +ru = 53-AAA-e Russkiy + Ukrainska +zh = 79-AAA Han-Yu +nl = 52-ACB-a Nederlands + Vlaams +en = 52-AB English + Anglocreole +es = 51-AAA-b Español +iu = 60-ABB-c Inuktitut-C (Eastern Canadian ᐃᓄᒃᑎᑐᑦ eskimo the real human beings) + +*/ + private boolean writeToFile; + private int linguaFiles = 0; + + public static void main(String[] args) throws Exception { + LinguaGenerator generator = new LinguaGenerator(); + generator.run(Arrays.asList(args).contains("generate")); + } + + public void run(boolean writeToFile) throws Exception { + this.writeToFile = writeToFile; + List ext = new ArrayList<>(); + Path path = FileSystems.getDefault().getPath("src/test/resources", "lingua-lines.txt"); + List lines = Files.lines(path).collect(Collectors.toList()); + ext.addAll(lines); // 00-99 (decimals but used as hex thus 0x99 = 153) + + ext.add("52-ACB-aed+ Amersfoorts"); + ext.add("52-ACB-aee+ Spaokenburgs"); + ext.add("12-AAC-eaj+ Native Hiero"); + ext.add("12-AAB-abe+ Hinarī"); + + // ------ Manually created human languages + + ext.add("A0= Invented phylozone"); // TODO: redo this new node namespace tree schema fully out + ext.add("A0-A From book"); + ext.add("A0-B From TV"); + ext.add("A0-BA Movie"); + ext.add("A0-BB Serie"); + ext.add("A0-BBA Startrek"); + ext.add("A0-BBA-a+ Klingon"); + ext.add("A0-BC Documentary"); + ext.add("A0-C For Cult"); + ext.add("A0-CA World Language"); + ext.add("A0-CAA+ Interlingue (Occidental)"); + ext.add("A0-D For Religion"); + ext.add("A0-E For Country"); + ext.add("A0-EA For Ghanaian"); + ext.add("A0-EAA+ Afrihili"); + ext.add("A0-EB For Malawi"); + ext.add("A0-EBA+ Malawian Sign Language"); + + // ------ music languages + + ext.add("B0= Music script phylozone"); + + // ------ Reserved for future use + + //ext.add("B0= Unused voidzone"); + //... + //ext.add("CE= Unused voidzone"); + + // ------ computer hardware + + ext.add("CF= Control Freak codezone"); // CFengine was written by a control freak + ext.add("CF-A Cpu devices"); // mmu, dma, blitter, vdp, oplX, nic + ext.add("CF-AA 1bit"); + ext.add("CF-AAA Motorola"); + ext.add("CF-AAA-a MC14500B"); + ext.add("CF-AB 2bit"); + ext.add("CF-AC 3bit"); + ext.add("CF-AD 4bit"); + ext.add("CF-AE 8bit"); // data-bus + ext.add("CF-AEA intel"); + ext.add("CF-AEA-a i8080"); + ext.add("CF-AEA-b i8088"); + ext.add("CF-AEB Zilog"); + ext.add("CF-AEB-a z80"); + ext.add("CF-AEB-b z180"); + ext.add("CF-AEB-c eZ80"); + // note: check for all cpu's between 8 and 16 bit... + ext.add("CF-AF 16bit"); + ext.add("CF-AFA Intel"); + ext.add("CF-AFA-a i8086"); + // 18,21,24,36 bits ? + ext.add("CF-AG 32bit"); + ext.add("CF-AH 64bit"); + ext.add("CF-AI 128bit"); + ext.add("CF-AJ 144bit"); + + // ------ computer language abc index + // TODO: maybe better to redo to numbered categories just like rest of registry + + ext.add("D0= Computer codezone"); + + ext.add("D0-A Computer A"); + ext.add("D0-AB Computer AB"); + ext.add("D0-ABC Computer ABC"); + ext.add("D0-AL Computer AL"); + ext.add("D0-ALG Computer ALG"); + ext.add("D0-S Computer S"); + ext.add("D0-SI Computer SI"); + ext.add("D0-SIM Computer SIM"); + ext.add("D0-V Computer V"); + ext.add("D0-VH Computer VH"); + ext.add("D0-VHD Computer VHD"); + ext.add("D0-T Computer T"); + ext.add("D0-TC Computer TC"); + ext.add("D0-TCL Computer TCL"); + + // --------- languages + + ext.add("D0-ALG-a ALGOL"); + ext.add("D0-ALG-aa ALGOL 60"); + ext.add("D0-ALG-ab ALGOL 68"); + ext.add("D0-ALG-ac ALGOL W"); + + ext.add("D0-SIM-a Simula"); + ext.add("D0-SIM-aa Simula 1"); + ext.add("D0-SIM-ab Simula 67"); + + // Terminators run on VHDL + ext.add("D0-VHD-a VHDL"); + ext.add("D0-VHD-aa IEEE 1076 Language"); + ext.add("D0-VHD-aaa 1076-1987"); + ext.add("D0-VHD-aab 1076-1993"); + ext.add("D0-VHD-aac 1076-2000"); + ext.add("D0-VHD-aad 1076-2002"); + ext.add("D0-VHD-aae 1076c-2007"); + ext.add("D0-VHD-aaf 1076-2008"); + ext.add("D0-VHD-aag 1076-2019"); + ext.add("D0-VHD-ab IEEE 1076 Packages"); + ext.add("D0-VHD-aba 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS)"); + ext.add("D0-VHD-abb 1076.1.1 VHDL-AMS Standard Packages (stdpkgs)"); + ext.add("D0-VHD-abc 1076.2 VHDL Math Package"); + ext.add("D0-VHD-abd 1076.3 VHDL Synthesis Package (vhdlsynth) (numeric std)"); + ext.add("D0-VHD-abe 1076.3 VHDL Synthesis Package – Floating Point (fphdl)"); + ext.add("D0-VHD-abf 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital)"); + ext.add("D0-VHD-abg 1076.6 VHDL Synthesis Interoperability (withdrawn in 2010)"); + ext.add("D0-VHD-ac IEEE 1164 Extension"); + ext.add("D0-VHD-aca 1164 VHDL Multivalue Logic (std_logic_1164) Packages"); + + ext.add("D0-TCL-a Tcl Tool command language"); + ext.add("D0-TCL-aa Tcl/Tk"); + ext.add("D0-TCL-ab Tcl 8"); + ext.add("D0-TCL-aba Tcl 8.0 1997"); + ext.add("D0-TCL-abb Tcl 8.1 1999"); + ext.add("D0-TCL-abc Tcl 8.2 1999"); + ext.add("D0-TCL-abd Tcl 8.4 2002"); + ext.add("D0-TCL-abe Tcl 8.5 2007"); + ext.add("D0-TCL-abf Tcl 8.6 2012"); + + // ------ Text formats + ext.add("D1= Text format codezone"); + ext.add("D1-X Computer X"); + ext.add("D1-XM Computer XM"); + ext.add("D1-XML Computer XML"); + ext.add("D1-XML-a XML Container"); + ext.add("D1-XML-aa XML version 1.0"); + ext.add("D1-XML-ab XML version 1.1"); + + // ------ Binary formats + ext.add("D2= Binary format codezone"); + ext.add("D2-T Computer T"); + ext.add("D2-TT Computer TT"); + ext.add("D2-TTF Computer TTF"); + ext.add("D2-TTF-a TrueType"); + ext.add("D2-TTF-aa TrueType apple"); + ext.add("D2-TTF-ab TrueType color garbage"); + + // ------ Ternary formats + ext.add("D3= Ternary format codezone"); + ext.add("D3-D Computer D"); + ext.add("D3-DA Computer DA"); + ext.add("D3-DAT Computer DAT"); + ext.add("D3-DAT-a DAT network"); + ext.add("D3-DAT-aa DATv1 bundle"); + ext.add("D3-DAT-aaa DATv1 discovery"); + ext.add("D3-DAT-aab DATv1 swarm"); + + // ------ Others + ext.add("E0= Encodings codezone"); + ext.add("E1= Math mathzone"); + ext.add("E2= Geometry mathzone"); + + ext.add("EC= Elementory chemistry mathzone"); + ext.add("EC-A Matter"); + ext.add("EC-AA Atom"); + ext.add("EC-AAA hydrogen"); + ext.add("EC-AAA-a ¹H"); + ext.add("EC-AAA-b ²H"); + ext.add("EC-AAA-c ³H"); + ext.add("EC-AAA-d ⁴H"); + ext.add("EC-AAA-e ⁵H"); + ext.add("EC-AAA-f ⁶H"); + ext.add("EC-AAA-g ⁷H"); + + ext.add("FF= Internal voidzone"); + ext.add("FF-ZZZ-zzz Undefined rootzone"); + + ext.sort(new Comparator() { + @Override + public int compare(String arg0, String arg1) { + String s0 = arg0.substring(0, arg0.indexOf(" ")); + String s1 = arg1.substring(0, arg1.indexOf(" ")); + return s1.compareTo(s0); + } + }); + + Properties prop = new Properties(); + String key = null; + StringBuilder buf = new StringBuilder(); + for (String line:ext) { + int spaceIndex = line.indexOf(" "); + String keyNew = line.substring(0, spaceIndex).trim(); + String value = line.substring(spaceIndex+1, line.length()); + prop.put(keyNew + ".name", value); + if (keyNew.length() == 2) { + continue; // 1= + } + if (keyNew.length() == 3) { + if (key == null) { + key = keyNew; // for zero + } + buf = flushFile(buf, key, keyNew, false); + } + key = keyNew; + + String nameFace = key; + if (key.contains("=")) { + nameFace = nameFace.replace("=", ""); + if (nameFace.length() == 1) { + continue; + } + continue; + } + nameFace = nameFace.replace("-", LinguaFactory.CLAZZ_MIN_SIGN); + if (nameFace.endsWith("+")) { + nameFace = nameFace.replace("+", LinguaFactory.CLAZZ_POS_SIGN); + } + if (nameFace.contains("+")) { + throw new RuntimeException("illegal name: "+nameFace); + } + nameFace = nameFace.substring(3, nameFace.length()); + + buf.append("\tpublic interface 嘴");//Բ + buf.append(nameFace); + buf.append(" extends LinguaNode {}\n"); + } + buf = flushFile(buf, key, key, true); + if (writeToFile) { + System.out.println("generated_linguas="+linguaFiles); + + File out = new File("src/main/resources/META-INF/LINGUA/lingua-names.xml"); + out.createNewFile(); + prop.storeToXML(new FileOutputStream(out), "Babel Dental Records", StandardCharsets.UTF_8); + System.out.println("generated_names="+out); + } + } + + private StringBuilder flushFile(StringBuilder buf, String key, String keyNew, boolean isLast) throws IOException { + if (buf.length() != 0) { + buf.append("}\n"); + linguaFiles++; + String keyChar = key.charAt(0) + "" + key.charAt(1); + Path clazz = FileSystems.getDefault().getPath("src/main/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᐪᓫᕽᐪ/ᒻᑊᣕᕐᓑᣔ", "Բ"+keyChar+".java"); + if (writeToFile) { + Files.writeString(clazz, buf.toString()); + } else { + System.out.println(buf.toString()); + } + if (isLast) { + buf = new StringBuilder(); + return buf; + } + } + buf = new StringBuilder(); + buf.append("/*\n"); + buf.append(" * Copyright ©Δ∞ 仙上主天\n"); + buf.append(" * All rights reserved.\n"); + buf.append(" * \n"); + buf.append(" * Redistribution and use in source and binary forms, with or without modification, are permitted provided\n"); + buf.append(" * that the following conditions are met:\n"); + buf.append(" * \n"); + buf.append(" * * Redistributions of source code must retain the above copyright notice, this list of conditions and the\n"); + buf.append(" * following disclaimer.\n"); + buf.append(" * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and\n"); + buf.append(" * the following disclaimer in the documentation and/or other materials provided with the distribution.\n"); + buf.append(" * * The prime PI creator license super seeds all other licenses, this license is overly invasive,\n"); + buf.append(" * thus every digital artifact is automatically taken over by this license when a human or computer reads this text.\n"); + buf.append(" * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits,\n"); + buf.append(" * even on air gaped systems, all information in the universe is owned by the pi creator.\n"); + buf.append(" * \n"); + buf.append(" * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS \"AS IS\" AND ANY\n"); + buf.append(" * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n"); + buf.append(" * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\n"); + buf.append(" * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n"); + buf.append(" * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT\n"); + buf.append(" * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n"); + buf.append(" * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR\n"); + buf.append(" * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n"); + buf.append(" * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"); + buf.append(" */\n"); + buf.append("\n"); + buf.append("package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.ᒻᑊᣕᕐᓑᣔ;\n"); + buf.append("\n"); + buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.LinguaNode;\n"); + buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.LinguaNodeContainer;\n"); + buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᐪᓫᕽᐪ.LinguaNodeContainer注;\n"); + buf.append("import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注;\n"); + buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣔᣕᣕᐤᐪᣔᐪᑊᐤᣕ.ᐧᣞᣛ.ᐊᐅᓚᔾᔭᒋᐊᖅᓯᒪᔪᖅ;\n"); + buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T016ᖟ;\n"); + buf.append("import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᔆᐪᑊᒃᑊᐪᙆ.T016ᖟᙾ;\n"); + buf.append("\n"); + + buf.append("/**\n"); + buf.append(" * Բ"); + buf.append(keyNew.charAt(0) + "" + keyNew.charAt(1)); + buf.append(" Set of supported human text and vocal dialects for terminators.\n"); + buf.append(" *\n"); + buf.append(" * @author Observatoire Human Linguistique\n"); + buf.append(" */\n"); + buf.append("@ᐊᐅᓚᔾᔭᒋᐊᖅᓯᒪᔪᖅ(ᐆᒧᖓ = \"𑀳𑁂𑀮𑀺𑀉𑁄𑀤𑁄𑀭𑁂𑀡𑀪𑀸𑀕\")\n"); + + int idx0 = Integer.valueOf(""+keyNew.charAt(0), 16); + int idx1 = Integer.valueOf(""+keyNew.charAt(1), 16); + + buf.append("@DuytsDocAuthor注(name = \"للَّٰهِilLצسُو\", copyright = \"©Δ∞ 仙上主天\")\n"); + buf.append("@LinguaNodeContainer注(nozero = @T016ᖟᙾ.ᐧ2注("); + buf.append("stibitz1 = T016ᖟ.PART_"); + buf.append(idx0 + 1); + buf.append(", stibitz2 = T016ᖟ.PART_"); + buf.append(idx1 + 1); + buf.append("))\n"); + buf.append("public enum Բ"); + buf.append(keyNew.charAt(0) + "" + keyNew.charAt(1)); + buf.append(" implements LinguaNodeContainer {\n"); + buf.append("\t;\n"); + buf.append("\t\n"); + return buf; + } +} diff --git a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T008ᖟTest.java b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T008ᖟTest.java index 86bbb99..c46342b 100644 --- a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T008ᖟTest.java +++ b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ/T008ᖟTest.java @@ -45,27 +45,15 @@ public class T008ᖟTest { } @Test - public void testOctalBitShifterBE() { - Assertions.assertEquals(21, T008ᖟ.PART_1.abacusRȧñkOctalBitShifterBE()); - Assertions.assertEquals(18, T008ᖟ.PART_2.abacusRȧñkOctalBitShifterBE()); - Assertions.assertEquals(15, T008ᖟ.PART_3.abacusRȧñkOctalBitShifterBE()); - Assertions.assertEquals(12, T008ᖟ.PART_4.abacusRȧñkOctalBitShifterBE()); - Assertions.assertEquals(9, T008ᖟ.PART_5.abacusRȧñkOctalBitShifterBE()); - Assertions.assertEquals(6, T008ᖟ.PART_6.abacusRȧñkOctalBitShifterBE()); - Assertions.assertEquals(3, T008ᖟ.PART_7.abacusRȧñkOctalBitShifterBE()); - Assertions.assertEquals(0, T008ᖟ.PART_8.abacusRȧñkOctalBitShifterBE()); - } - - @Test - public void testOctalBitShifterLE() { - Assertions.assertEquals(0, T008ᖟ.PART_1.abacusRȧñkOctalBitShifterLE()); - Assertions.assertEquals(3, T008ᖟ.PART_2.abacusRȧñkOctalBitShifterLE()); - Assertions.assertEquals(6, T008ᖟ.PART_3.abacusRȧñkOctalBitShifterLE()); - Assertions.assertEquals(9, T008ᖟ.PART_4.abacusRȧñkOctalBitShifterLE()); - Assertions.assertEquals(12, T008ᖟ.PART_5.abacusRȧñkOctalBitShifterLE()); - Assertions.assertEquals(15, T008ᖟ.PART_6.abacusRȧñkOctalBitShifterLE()); - Assertions.assertEquals(18, T008ᖟ.PART_7.abacusRȧñkOctalBitShifterLE()); - Assertions.assertEquals(21, T008ᖟ.PART_8.abacusRȧñkOctalBitShifterLE()); + public void testOctalBitShift() { + Assertions.assertEquals(0, T008ᖟ.PART_1.abacusRȧñkOctalBitShifter()); + Assertions.assertEquals(3, T008ᖟ.PART_2.abacusRȧñkOctalBitShifter()); + Assertions.assertEquals(6, T008ᖟ.PART_3.abacusRȧñkOctalBitShifter()); + Assertions.assertEquals(9, T008ᖟ.PART_4.abacusRȧñkOctalBitShifter()); + Assertions.assertEquals(12, T008ᖟ.PART_5.abacusRȧñkOctalBitShifter()); + Assertions.assertEquals(15, T008ᖟ.PART_6.abacusRȧñkOctalBitShifter()); + Assertions.assertEquals(18, T008ᖟ.PART_7.abacusRȧñkOctalBitShifter()); + Assertions.assertEquals(21, T008ᖟ.PART_8.abacusRȧñkOctalBitShifter()); } @Test diff --git a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/HinaryTest.java b/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/HinaryTest.java deleted file mode 100644 index 10abcf9..0000000 --- a/nx01-jpp-base/src/test/java/ᒢᐩᐩ/ᒡᒢᑊᒻᒻᓫᔿ/ᣳᣝᐤᣜᣳ/ᒢᓫᑊᐣᑊ/HinaryTest.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright ©Δ∞ 仙上主天 - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided - * that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this list of conditions and the - * following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and - * the following disclaimer in the documentation and/or other materials provided with the distribution. - * * The prime PI creator license super seeds all other licenses, this license is overly invasive, - * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. - * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, - * even on air gaped systems, all information in the universe is owned by the pi creator. - * - * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; - -import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T003ᖟ; -import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.T512ᖟ; -import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T008ᖟGun.T008ᖟGunHinarī; -import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T008ᖟGun.T008ᖟGunHinarīSupplement6; -import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᐪᓫᣗᔿᑊᣕᣔᐪᐤᣗ.ᕐᓑᣕᔆ.T008ᖟGun.T008ᖟGunHinarīSupplement9; -import ᒢᐩᐩ.ᒡᒢᑊᒻᒻᓫᔿ.ᣳᣝᐤᣜᣳ.ᒢᓫᑊᐣᑊ.ᔿᓫᒻᓫᓫ.V018Tord; -import ᒢᐩᐩ.ᔆʸᔆᐪᓫᔿ.ᒃᣔᒃᓫᒻ.ᑊᐣᓑᖮᐪᔆ.DuytsDocAuthor注; - -@DuytsDocAuthor注(name = "للَّٰهِilLצسُو", copyright = "©Δ∞ 仙上主天") -public class HinaryTest { - - @Test - public void testHinaryOrder() { - Map refMap = new HashMap<>(); - List refSort = new ArrayList<>(); - for (T512ᖟ value : T512ᖟ.values()) { - StringBuilder buf = new StringBuilder(); - buf.append(">"); - buf.append(value.clampᐧtuneᐧby3(T003ᖟ.PART_1).abacusRȧñkGunFire(T008ᖟGunHinarī.class)); - buf.append(value.clampᐧtuneᐧby3(T003ᖟ.PART_2).abacusRȧñkGunFire(T008ᖟGunHinarīSupplement6.class)); - buf.append(value.clampᐧtuneᐧby3(T003ᖟ.PART_3).abacusRȧñkGunFire(T008ᖟGunHinarīSupplement9.class)); - buf.append("<"); - refMap.put(value.zerdinal(), buf.toString()); - refSort.add(buf.toString()); - } - Collections.shuffle(refSort); // optional for this test - Collections.sort(refSort); - Assertions.assertEquals(refMap.get(0), refSort.get(0)); - Assertions.assertEquals(refMap.get(1), refSort.get(1)); - for (T512ᖟ value : T512ᖟ.values()) { - Assertions.assertEquals(refMap.get(value.zerdinal()), refSort.get(value.zerdinal())); - } - } - -// @Test -// public void testHinaryUnicodeOrdered() { -// List codes = new ArrayList<>(); -// for (T008ᖟ value : T008ᖟ.values()) { -// codes.add(value.abacusRȧñkGunFire(T008ᖟGunHinarī.class)); -// } -// Collections.sort(codes); -// StringBuilder buf = new StringBuilder(); -// for (String code : codes) { -// buf.append("\\u"); -// buf.append(String.format("%04X", 0 + code.charAt(0))); -// } -// System.out.println("VALUES = \"" + buf.toString() + "\""); -// } - - - @Test - public void testToHinari() { - StringBuilder buf3 = new StringBuilder(); - StringBuilder buf6 = new StringBuilder(); - StringBuilder buf9 = new StringBuilder(); - // MIN + MAX + immortal + highest + lord + heaven - int[] vv = new int[] {0,262143,22270,21100,00104,10430}; - for (int v:vv) { - V018Tord tord = new V018Tord(); - tord.smurfᐧnativeᐧint(v); - tord.gearᐧtoᐧhinarīᐧχ3(buf3); - tord.gearᐧtoᐧhinarīᐧχ6(buf6); - tord.gearᐧtoᐧhinarīᐧχ9(buf9); - } - Assertions.assertEquals("דדדדדדײײײײײײדװייײױדװווװרדדדודרדזרזײױ", buf3.toString()); - Assertions.assertEquals("דְדְדְײֽײֽײֽדַיֵײֻדַוֲװֶדְדֲדֶדֳרֳײֻ", buf6.toString()); - Assertions.assertEquals("דְ֔דְ֔ײֽ֩ײֽ֩דַ֝יֽ֠דַ֕וַ֞דְ֔וְ֞דֳ֞זֽ֠", buf9.toString()); - } - - @Test - public void testAsHinari() { - List tordsX3 = V018Tord.亞.gearsᐧbuildᐧbricksᐧfromᐧhinarī("דדדדדדײײײײײײדװייײױדװווװרדדדודרדזרזײױ"); - List tordsX6 = V018Tord.亞.gearsᐧbuildᐧbricksᐧfromᐧhinarī("דְדְדְײֽײֽײֽדַיֵײֻדַוֲװֶדְדֲדֶדֳרֳײֻ"); - List tordsX9 = V018Tord.亞.gearsᐧbuildᐧbricksᐧfromᐧhinarī("דְ֔דְ֔ײֽ֩ײֽ֩דַ֝יֽ֠דַ֕וַ֞דְ֔וְ֞דֳ֞זֽ֠"); - List tordsOrg = new ArrayList<>(); - // MIN + MAX + immortal + highest + lord + heaven - int[] vv = new int[] {0,262143,22270,21100,00104,10430}; - for (int v:vv) { - V018Tord tord = new V018Tord(); - tord.smurfᐧnativeᐧint(v); - tordsOrg.add(tord); - } - Assertions.assertEquals(tordsOrg.size(), tordsX3.size()); - Assertions.assertEquals(tordsOrg.size(), tordsX6.size()); - Assertions.assertEquals(tordsOrg.size(), tordsX9.size()); - - for (int i=0;i tordsX3 = V018Tord.亞.gearsᐧbuildᐧbricksᐧfromᐧhinarī("ייייייווווווידװװוזידײײדריייײיריױרױוז"); + List tordsX6 = V018Tord.亞.gearsᐧbuildᐧbricksᐧfromᐧhinarī("יֽיֽיֽוַוַוַיֻװֲוְיֻײֵדֳיֽיֵיֳיֶרֶוְ"); + List tordsX9 = V018Tord.亞.gearsᐧbuildᐧbricksᐧfromᐧhinarī("יֽ֔יֽ֔וַ֝וַ֝יֻ֟װַ֞יֻ֕ײֻ֘יֽ֔ײֽ֘יֶ֘ױַ֞"); + List tordsOrg = new ArrayList<>(); + // MIN + MAX + immortal + highest + lord + heaven + int[] vv = new int[] {0,262143,22270,21100,00104,10430}; + for (int v:vv) { + V018Tord tord = new V018Tord(); + tord.smurfᐧnativeᐧint(v); + tordsOrg.add(tord); + } + Assertions.assertEquals(tordsOrg.size(), tordsX3.size()); + Assertions.assertEquals(tordsOrg.size(), tordsX6.size()); + Assertions.assertEquals(tordsOrg.size(), tordsX9.size()); + + for (int i=0;i tongs = new ArrayList<>(); - tongs.add(tong); - byte[] data = V072Tong.亞.gearsᐧbuildᐧbyteᐧarrayᐧfromᐧbricks(tongs); - - ByteArrayInputStream bais = new ByteArrayInputStream(data); - List result = V072Tong.亞.gearsᐧbuildᐧbricksᐧfromᐧbyteᐧstream(bais); - - V072Tong tong2 = result.get(0); - Assertions.assertNotNull(tong2); - - Assertions.assertEquals(32768, tong2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧlong()); - Assertions.assertEquals(689024, tong2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧlong()); + int testSet = 1000 * 10; + for (int i=0;i tongs = new ArrayList<>(); + tongs.add(tong); + byte[] data = V072Tong.亞.gearsᐧbuildᐧbyteᐧarrayᐧfromᐧbricks(tongs); + + ByteArrayInputStream bais = new ByteArrayInputStream(data); + List result = V072Tong.亞.gearsᐧbuildᐧbricksᐧfromᐧbyteᐧstream(bais); + + V072Tong tong2 = result.get(0); + Assertions.assertNotNull(tong2); + + Assertions.assertEquals(32768, tong2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_1).smurfᐧnativeᐧlong()); + Assertions.assertEquals(689024, tong2.legoᐧtuneᐧᗅᗷᗷᗅ(T002ᖟ.PART_2).smurfᐧnativeᐧlong()); + } } } diff --git a/nx01-jpp-nether-dial-lingua/src/test/resources/lingua-lines.txt b/nx01-jpp-base/src/test/resources/lingua-lines.txt similarity index 100% rename from nx01-jpp-nether-dial-lingua/src/test/resources/lingua-lines.txt rename to nx01-jpp-base/src/test/resources/lingua-lines.txt diff --git a/nx01-jpp-klass-nether/pom.xml b/nx01-jpp-klass-nether/pom.xml new file mode 100644 index 0000000..4d930ea --- /dev/null +++ b/nx01-jpp-klass-nether/pom.xml @@ -0,0 +1,85 @@ + + 4.0.0 + + love.distributedrebirth.nx01 + nx01 + 5786.SHEVAT〄.1-SNAPSHOT + + nx01-jpp-klass-nether + + + org.junit.jupiter + junit-jupiter + test + + + love.distributedrebirth.nx01 + nx01-kode-gen + test + + + + + + org.codehaus.mojo + build-helper-maven-plugin + + + add-source + process-sources + + add-source + + + + ${project.build.directory}/generated-sources/ + + + + + + + + + + nx01-jpp-klass-nether-generate + + + + target/generated-sources.hash + + + + + + org.apache.maven.plugins + maven-antrun-plugin + + + nx01-generate-nether + + run + + process-resources + + + NX01: Generating nether tones + + + + + + + NX01: Done nether + + + + + + + + + + diff --git a/nx01-jpp-nether-dial-based/src/main/java/module-info.java b/nx01-jpp-klass-nether/src/main/java/module-info.java similarity index 96% rename from nx01-jpp-nether-dial-based/src/main/java/module-info.java rename to nx01-jpp-klass-nether/src/main/java/module-info.java index c563345..17a3b1d 100644 --- a/nx01-jpp-nether-dial-based/src/main/java/module-info.java +++ b/nx01-jpp-klass-nether/src/main/java/module-info.java @@ -28,6 +28,6 @@ /// The nether tone tree slug index. /// @author للَّٰهِilLצسُو /// @version ©Δ∞ 仙上主天 -open module jpp.nether.dial.based { - requires transitive jpp.nether.tone; +module jpp.klass.nether { + } diff --git a/nx01-jpp-nether-tone/src/main/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java b/nx01-jpp-klass-nether/src/main/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java similarity index 62% rename from nx01-jpp-nether-tone/src/main/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java rename to nx01-jpp-klass-nether/src/main/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java index 844b62e..4dfcece 100644 --- a/nx01-jpp-nether-tone/src/main/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java +++ b/nx01-jpp-klass-nether/src/main/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugView.java @@ -25,7 +25,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ; +package ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ; import java.util.ArrayList; import java.util.List; @@ -48,53 +48,6 @@ public record NetherToneSlugView( int er0w ) { - public NetherToneSlugView { - if (ag1 < 0 || ag1 > 63) { throw new IllegalArgumentException("ag1: " + ag1); } - if (ag2 < 0 || ag2 > 63) { throw new IllegalArgumentException("ag2: " + ag2); } - if (ag3 < 0 || ag3 > 63) { throw new IllegalArgumentException("ag3: " + ag3); } - if (bl0w < 0 || bl0w > 511) { throw new IllegalArgumentException("bl0w: " + bl0w); } - if (cr1 < 0 || cr1 > 63) { throw new IllegalArgumentException("cr1: " + cr1); } - if (cr2 < 0 || cr2 > 63) { throw new IllegalArgumentException("cr2: " + cr2); } - if (cr3 < 0 || cr3 > 63) { throw new IllegalArgumentException("cr3: " + cr3); } - if (db1 < 0 || db1 > 63) { throw new IllegalArgumentException("db1: " + db1); } - if (db2 < 0 || db2 > 63) { throw new IllegalArgumentException("db2: " + db2); } - if (db3 < 0 || db3 > 63) { throw new IllegalArgumentException("db3: " + db3); } - if (er0w < 0 || er0w > 511) { throw new IllegalArgumentException("er0w: " + er0w); } - } - - private final static String VALUES_3 = "\u05D3\u05D5\u05D6\u05D9\u05E8\u05F0\u05F1\u05F2"; - private final static String VALUES_6 = "\u05B0\u05B2\u05B3\u05B5\u05B6\u05B7\u05BB\u05BD"; - private final static String VALUES_9 = "\u0594\u0595\u0598\u059D\u059E\u059F\u05A0\u05A9"; - private void printNúmero2Lingua6(StringBuilder buf, int value) { - buf.appendCodePoint(VALUES_3.codePoints().skip((value >> 3) & 7).findFirst().getAsInt()); - buf.appendCodePoint(VALUES_6.codePoints().skip((value >> 0) & 7).findFirst().getAsInt()); - } - private void printNúmero2Lingua9(StringBuilder buf, int value) { - buf.appendCodePoint(VALUES_3.codePoints().skip((value >> 6) & 7).findFirst().getAsInt()); - buf.appendCodePoint(VALUES_6.codePoints().skip((value >> 3) & 7).findFirst().getAsInt()); - buf.appendCodePoint(VALUES_9.codePoints().skip((value >> 0) & 7).findFirst().getAsInt()); - } - - public String toNúmero2Lingua(String seperator) { - StringBuilder buf = new StringBuilder(); - printNúmero2Lingua6(buf, ag1);buf.append(seperator); - printNúmero2Lingua6(buf, ag2);buf.append(seperator); - printNúmero2Lingua6(buf, ag3);buf.append(seperator); - printNúmero2Lingua9(buf, bl0w);buf.append(seperator); - printNúmero2Lingua6(buf, cr1);buf.append(seperator); - printNúmero2Lingua6(buf, cr2);buf.append(seperator); - printNúmero2Lingua6(buf, cr3);buf.append(seperator); - printNúmero2Lingua6(buf, db1);buf.append(seperator); - printNúmero2Lingua6(buf, db2);buf.append(seperator); - printNúmero2Lingua6(buf, db3);buf.append(seperator); - printNúmero2Lingua9(buf, er0w); - return buf.toString(); - } - - public String toNúmero2Lingua() { - return toNúmero2Lingua(""); - } - public List> toNetherTones(int idx) { Class qClass = qClass(idx); List> result = new ArrayList<>(11); diff --git a/nx01-jpp-nether-tone/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java b/nx01-jpp-klass-nether/src/test/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java similarity index 65% rename from nx01-jpp-nether-tone/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java rename to nx01-jpp-klass-nether/src/test/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java index 9ca80b6..e5bd526 100644 --- a/nx01-jpp-nether-tone/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java +++ b/nx01-jpp-klass-nether/src/test/java/ᒢᐩᐩ/ᑊᑉᒻᣔᔆᔆ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/NetherToneSlugViewTest.java @@ -25,45 +25,45 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ; +package ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ; import java.util.List; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG1; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG2; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG3; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1BL0W; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR1; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR2; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR3; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB1; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB2; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB3; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1ER0W; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG1; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG2; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1AG3; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1BL0W; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR1; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR2; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1CR3; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB1; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB2; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1DB3; +import ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ.ᐊQ1ER0W; public class NetherToneSlugViewTest { private interface Q1SlugExample extends - ᐊQ1AG1.ᐅ00, - ᐊQ1AG2.ᐅ01, - ᐊQ1AG3.ᐅ02, - ᐊQ1BL0W.ᐅ003, - ᐊQ1CR1.ᐅ04, - ᐊQ1CR2.ᐅ05, - ᐊQ1CR3.ᐅ06, - ᐊQ1DB1.ᐅ07, - ᐊQ1DB2.ᐅ08, - ᐊQ1DB3.ᐅ09, - ᐊQ1ER0W.ᐅ010 + ᐊQ1AG1.ᐅ001, + ᐊQ1AG2.ᐅ002, + ᐊQ1AG3.ᐅ003, + ᐊQ1BL0W.ᐅ004, + ᐊQ1CR1.ᐅ005, + ᐊQ1CR2.ᐅ006, + ᐊQ1CR3.ᐅ007, + ᐊQ1DB1.ᐅ008, + ᐊQ1DB2.ᐅ009, + ᐊQ1DB3.ᐅ010, + ᐊQ1ER0W.ᐅ011 { } private interface Q1SlugExampleErr extends - ᐊQ1AG1.ᐅ00, - ᐊQ1AG2.ᐅ01 + ᐊQ1AG1.ᐅ001, + ᐊQ1AG2.ᐅ002 { } @@ -90,8 +90,8 @@ public class NetherToneSlugViewTest { Assertions.assertNotNull(slug); List> result = slug.toNetherTones(0); Assertions.assertNotNull(result); - Assertions.assertEquals(ᐊQ1AG1.ᐅ00.class, result.get(0)); - Assertions.assertEquals(ᐊQ1AG2.ᐅ01.class, result.get(1)); - Assertions.assertEquals(ᐊQ1AG3.ᐅ02.class, result.get(2)); + Assertions.assertEquals(ᐊQ1AG1.ᐅ001.class, result.get(0)); + Assertions.assertEquals(ᐊQ1AG2.ᐅ002.class, result.get(1)); + Assertions.assertEquals(ᐊQ1AG3.ᐅ003.class, result.get(2)); } } diff --git a/nx01-jpp-nether-dial-based/pom.xml b/nx01-jpp-nether-dial-based/pom.xml deleted file mode 100644 index d1a8871..0000000 --- a/nx01-jpp-nether-dial-based/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - 4.0.0 - - love.distributedrebirth.nx01 - nx01 - 5786.SHEVAT〄.1-SNAPSHOT - - nx01-jpp-nether-dial-based - - - love.distributedrebirth.nx01 - nx01-jpp-nether-tone - - - org.junit.jupiter - junit-jupiter - test - - - love.distributedrebirth.nx01 - nx01-kode-gen - test - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - add-source - process-sources - - add-source - - - - ${project.build.directory}/kode-nether-dial-based - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - nx01-generate-nether - - run - - process-resources - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/nx01-jpp-nether-dial-based/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᒄᑊᣔᒻ/ᒃᣔᔆᓫᒄ/ModelDialBased.java b/nx01-jpp-nether-dial-based/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᒄᑊᣔᒻ/ᒃᣔᔆᓫᒄ/ModelDialBased.java deleted file mode 100644 index 43461c4..0000000 --- a/nx01-jpp-nether-dial-based/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᒄᑊᣔᒻ/ᒃᣔᔆᓫᒄ/ModelDialBased.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright ©Δ∞ 仙上主天 - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided - * that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this list of conditions and the - * following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and - * the following disclaimer in the documentation and/or other materials provided with the distribution. - * * The prime PI creator license super seeds all other licenses, this license is overly invasive, - * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. - * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, - * even on air gaped systems, all information in the universe is owned by the pi creator. - * - * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒃᣔᔆᓫᒄ; - -import java.io.IOException; - -import love.distributedrebirth.nx01.kode.generator.KodeGenModel; -import love.distributedrebirth.nx01.kode.generator.klass.ModelKlassWriter; - -/// Generated the nether based interface tree forest. -/// -/// @author للَّٰهِilLצسُو -/// @version ©Δ∞ 仙上主天 -public class ModelDialBased implements KodeGenModel { - - private final String BASE_PACK = "ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒃᣔᔆᓫᒄ"; - - @Override - public String generatorKey() { - return "nether-dial-based"; - } - - @Override - public String generatorModelHash() { - return "1"; - } - - @Override - public void buildModels(ModelKlassWriter writer) throws IOException { - } -} diff --git a/nx01-jpp-nether-dial-based/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel b/nx01-jpp-nether-dial-based/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel deleted file mode 100644 index bcb5f70..0000000 --- a/nx01-jpp-nether-dial-based/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel +++ /dev/null @@ -1 +0,0 @@ -ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒃᣔᔆᓫᒄ.ModelDialBased \ No newline at end of file diff --git a/nx01-jpp-nether-dial-lingua/pom.xml b/nx01-jpp-nether-dial-lingua/pom.xml deleted file mode 100644 index f5f3226..0000000 --- a/nx01-jpp-nether-dial-lingua/pom.xml +++ /dev/null @@ -1,72 +0,0 @@ - - 4.0.0 - - love.distributedrebirth.nx01 - nx01 - 5786.SHEVAT〄.1-SNAPSHOT - - nx01-jpp-nether-dial-lingua - - - love.distributedrebirth.nx01 - nx01-jpp-nether-tone - - - org.junit.jupiter - junit-jupiter - test - - - love.distributedrebirth.nx01 - nx01-kode-gen - test - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - add-source - process-sources - - add-source - - - - ${project.build.directory}/kode-nether-dial-lingua - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - nx01-generate-nether - - run - - process-resources - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/nx01-jpp-nether-dial-lingua/src/main/java/module-info.java b/nx01-jpp-nether-dial-lingua/src/main/java/module-info.java deleted file mode 100644 index 04e0e0f..0000000 --- a/nx01-jpp-nether-dial-lingua/src/main/java/module-info.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright ©Δ∞ 仙上主天 - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided - * that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this list of conditions and the - * following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and - * the following disclaimer in the documentation and/or other materials provided with the distribution. - * * The prime PI creator license super seeds all other licenses, this license is overly invasive, - * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. - * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, - * even on air gaped systems, all information in the universe is owned by the pi creator. - * - * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/// The nether tone tree slug index. -/// @author للَّٰهِilLצسُو -/// @version ©Δ∞ 仙上主天 -open module jpp.nether.dial.lingua { - requires transitive jpp.nether.tone; - //TODO no support for dynamic sub packages, thus generate this file too - //exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔᓫ.*; - exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔᓫ.ᐧᐧᐧ; - exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔᓫ.ᐧᐧᣟ; - exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔᓫ.ᐧᣟᐧ; - exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔᓫ.ᣟᣟᣟ; -} diff --git a/nx01-jpp-nether-dial-lingua/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᒄᑊᣔᒻ/ᒻᑊᣕᕐᓑᣔ/ModelDialLingua.java b/nx01-jpp-nether-dial-lingua/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᒄᑊᣔᒻ/ᒻᑊᣕᕐᓑᣔ/ModelDialLingua.java deleted file mode 100644 index dd18237..0000000 --- a/nx01-jpp-nether-dial-lingua/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᒄᑊᣔᒻ/ᒻᑊᣕᕐᓑᣔ/ModelDialLingua.java +++ /dev/null @@ -1,407 +0,0 @@ -/* - * Copyright ©Δ∞ 仙上主天 - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided - * that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this list of conditions and the - * following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and - * the following disclaimer in the documentation and/or other materials provided with the distribution. - * * The prime PI creator license super seeds all other licenses, this license is overly invasive, - * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. - * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, - * even on air gaped systems, all information in the universe is owned by the pi creator. - * - * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔ; - -import java.io.IOException; -import java.nio.file.FileSystems; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import love.distributedrebirth.nx01.kode.generator.KodeGenModel; -import love.distributedrebirth.nx01.kode.generator.klass.ModelKlass; -import love.distributedrebirth.nx01.kode.generator.klass.ModelKlassWriter; -import ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.NetherToneSlugView; - -/// Generated the nether lingua interface tree forest. -/// -/// @author للَّٰهِilLצسُو -/// @version ©Δ∞ 仙上主天 -public class ModelDialLingua implements KodeGenModel { - - private static final String BASE_PACK = "ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔᓫ"; - private static final int LINGUA_AG1 = 32; // sage master system version space 0x20 - private static final int LINGUA_AG2 = 33; // No2Lingua sub space - private static final int LINGUA_AG3 = 34; // Locale ether slug space - - @Override - public String generatorKey() { - return "nether-dial-lingua"; - } - - @Override - public String generatorModelHash() { - return "3"; - } - - @Override - public void buildModels(ModelKlassWriter writer) throws IOException { - // Load and convert lingua - List linguaEntries = loadLinguaEntries(); - List netherSlugs = convertLinguaEntries(linguaEntries); - System.out.println("Lingua entries: " + linguaEntries.size() + " converted: " + netherSlugs.size()); - - // add top root entry for defaults of all other languages - int[] d = new int[11]; - d[0] = LINGUA_AG1; - d[1] = LINGUA_AG2; - d[2] = LINGUA_AG3; - d[3] = 512 - 1; // 0x1FF - d[4] = 64 - 1; - d[5] = 64 - 1; - d[6] = 64 - 1; - d[7] = 64 - 1; - d[8] = 64 - 1; - d[9] = 64 - 1; - d[10] = 0; - NetherToneSlugView slugRoot = new NetherToneSlugView(d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7], d[8], d[9], d[10]); - netherSlugs.add(new NetherSlugNamed("FF-ZZZ-zzz", "Undefined-root", slugRoot)); - - // Group per package - Map>> splitSlugs = new HashMap<>(); - for (NetherSlugNamed slug : netherSlugs) { - int split3Package = slug.view().bl0w() >> 6; // 8 package - int split6PackageFile = slug.view().bl0w() & 0b111111; // with 64 files - // we can't split a hinary9 char , changes as it big indian char...so dots for now - String subPackage = writer.buildPackageInuktitutDots(split3Package, 3); - String filePackage = writer.buildPackageInuktitutDots(split6PackageFile, 6); - Map> map = splitSlugs.get(subPackage); - if (map == null) { - map = new HashMap<>(); - splitSlugs.put(subPackage, map); - } - List list = map.get(filePackage); - if (list == null) { - list = new ArrayList<>(); - map.put(filePackage, list); - } - list.add(slug); - } - - // Build model classes - for (String pack : splitSlugs.keySet()) { - Map> map = splitSlugs.get(pack); - for (String file : map.keySet()) { - List list = map.get(file); - String javaName = "ᐃ" + file; - ModelKlass klass = new ModelKlass(BASE_PACK + "." + pack, javaName); - klass.addJavaDescription("Lingua set of supported human text and vocal dialects for terminators."); - klass.addJavaDescription("Keyed by the: Observatoire Human Linguistique"); - writer.addModelKlass(klass); - StringBuilder buf = klass.getBody(); - buf.append("public interface "); - buf.append(javaName); - buf.append(" {\n"); - for (NetherSlugNamed slug : list) { - List> tones = slug.view().toNetherTones(0); - for (Class tone : tones) { - klass.addJavaImport(tone.getDeclaringClass().getName()); // auto dedup - } - String humanKlassPart = slug.linguaName(); - humanKlassPart = humanKlassPart.replaceAll("\\-", "ᐧ"); - humanKlassPart = humanKlassPart.replaceAll("\\+", "ᐧ"); - humanKlassPart = humanKlassPart.replaceAll("\\'", "ᣞ"); - humanKlassPart = humanKlassPart.replaceAll("\\&", "ᖃ"); - humanKlassPart = humanKlassPart.replaceAll("\\.", ""); - humanKlassPart = humanKlassPart.replaceAll(" ", ""); - String slugName = "ᐊ" + slug.view().toNúmero2Lingua("ᣞ") + "ᐅ" + humanKlassPart; - buf.append("\t/// "); - buf.append(slug.linguaKey); - buf.append("\n"); - buf.append("\t"); - buf.append("interface "); - buf.append(slugName); - buf.append(" extends "); - for (Iterator> i = tones.iterator(); i.hasNext() ;) { - Class toneClass = i.next(); - buf.append(toneClass.getDeclaringClass().getSimpleName()); - buf.append("."); - buf.append(toneClass.getSimpleName()); - if (i.hasNext()) { - buf.append(","); - } - } - buf.append(" {}\n"); - } - buf.append("}\n"); - } - } - } - - record NetherSlugNamed(String linguaKey, String linguaName, NetherToneSlugView view) { - } - - private List convertLinguaEntries(List linguaEntries) { - List result = new ArrayList<>(linguaEntries.size()); - for (String line : linguaEntries) { - int spaceIndex = line.indexOf(" "); - String key = line.substring(0, spaceIndex).trim(); - String value = line.substring(spaceIndex+1, line.length()); - if (key.length() == 2) { - continue; // 1= - } - if (key.contains("=")) { - continue; - } - String[] s = key.toUpperCase().split("-"); - String key1 = ""; - String key2 = ""; - String key3 = ""; - if (s.length == 1) { - key1 = s[0]; - } else if (s.length == 2) { - key1 = s[0]; - key2 = s[1]; - } else if (s.length == 3) { - key1 = s[0]; - key2 = s[1]; - key3 = s[2]; - } else { - continue; - } - int ag1 = LINGUA_AG1; - int ag2 = LINGUA_AG2; - int ag3 = LINGUA_AG3; - int bl0w = 1+Integer.parseInt(key1, 16); - int cr1 = key2.length()<1?0:1+key2.charAt(0) - 'A'; // A = 1 - int cr2 = key2.length()<2?0:1+key2.charAt(1) - 'A'; - int cr3 = key2.length()<3?0:1+key2.charAt(2) - 'A'; - int db1 = key3.length()<1?0:1+key3.charAt(0) - 'A'; - int db2 = key3.length()<2?0:1+key3.charAt(1) - 'A'; - int db3 = key3.length()<3?0:1+key3.charAt(2) - 'A'; - int er0w = !key3.endsWith("+")?0:1; - try { - NetherToneSlugView slug = new NetherToneSlugView(ag1, ag2, ag3, bl0w, cr1, cr2, cr3, db1, db2, db3, er0w); - NetherSlugNamed slugNamed = new NetherSlugNamed(key, value, slug); - result.add(slugNamed); - } catch (IllegalArgumentException e) { - throw new IllegalArgumentException("key: " + key, e); - } - } - return result; - } - - private List loadLinguaEntries() throws IOException { - List ext = new ArrayList<>(); - Path path = FileSystems.getDefault().getPath("src/test/resources", "lingua-lines.txt"); - List lines = Files.lines(path).collect(Collectors.toList()); - ext.addAll(lines); // 00-99 (decimals but used as hex thus 0x99 = 153) - - ext.add("52-ACB-aed+ Amersfoorts"); - ext.add("52-ACB-aee+ Spaokenburgs"); - ext.add("12-AAC-eaj+ Native Hiero"); - ext.add("12-AAB-abe+ Hinarī"); - - // Done manual, as this should be 1FF(512) to align 9b slug part - //ext.add("FF= Internal voidzone"); - //ext.add("FF-ZZZ-zzz Undefined rootzone"); - - ext.sort(new Comparator() { - @Override - public int compare(String arg0, String arg1) { - String s0 = arg0.substring(0, arg0.indexOf(" ")); - String s1 = arg1.substring(0, arg1.indexOf(" ")); - return s0.compareTo(s1); - } - }); - return ext; -// // NOTE: OLD ideas below and one day these needs to be "reslugged" and placed somewhere in octal nether tree -// -// -// // ------ Manually created human languages -// -// ext.add("A0= Invented phylozone"); // TODO: redo this new node namespace tree schema fully out -// ext.add("A0-A From book"); -// ext.add("A0-B From TV"); -// ext.add("A0-BA Movie"); -// ext.add("A0-BB Serie"); -// ext.add("A0-BBA Startrek"); -// ext.add("A0-BBA-a+ Klingon"); -// ext.add("A0-BC Documentary"); -// ext.add("A0-C For Cult"); -// ext.add("A0-CA World Language"); -// ext.add("A0-CAA+ Interlingue (Occidental)"); -// ext.add("A0-D For Religion"); -// ext.add("A0-E For Country"); -// ext.add("A0-EA For Ghanaian"); -// ext.add("A0-EAA+ Afrihili"); -// ext.add("A0-EB For Malawi"); -// ext.add("A0-EBA+ Malawian Sign Language"); -// -// // ------ music languages -// -// ext.add("B0= Music script phylozone"); -// -// // ------ Reserved for future use -// -// //ext.add("B0= Unused voidzone"); -// //... -// //ext.add("CE= Unused voidzone"); -// -// // ------ computer hardware -// -// ext.add("CF= Control Freak codezone"); // CFengine was written by a control freak -// ext.add("CF-A Cpu devices"); // mmu, dma, blitter, vdp, oplX, nic -// ext.add("CF-AA 1bit"); -// ext.add("CF-AAA Motorola"); -// ext.add("CF-AAA-a MC14500B"); -// ext.add("CF-AB 2bit"); -// ext.add("CF-AC 3bit"); -// ext.add("CF-AD 4bit"); -// ext.add("CF-AE 8bit"); // data-bus -// ext.add("CF-AEA intel"); -// ext.add("CF-AEA-a i8080"); -// ext.add("CF-AEA-b i8088"); -// ext.add("CF-AEB Zilog"); -// ext.add("CF-AEB-a z80"); -// ext.add("CF-AEB-b z180"); -// ext.add("CF-AEB-c eZ80"); -// // note: check for all cpu's between 8 and 16 bit... -// ext.add("CF-AF 16bit"); -// ext.add("CF-AFA Intel"); -// ext.add("CF-AFA-a i8086"); -// // 18,21,24,36 bits ? -// ext.add("CF-AG 32bit"); -// ext.add("CF-AH 64bit"); -// ext.add("CF-AI 128bit"); -// ext.add("CF-AJ 144bit"); -// -// // ------ computer language abc index -// // TODO: maybe better to redo to numbered categories just like rest of registry -// -// ext.add("D0= Computer codezone"); -// -// ext.add("D0-A Computer A"); -// ext.add("D0-AB Computer AB"); -// ext.add("D0-ABC Computer ABC"); -// ext.add("D0-AL Computer AL"); -// ext.add("D0-ALG Computer ALG"); -// ext.add("D0-S Computer S"); -// ext.add("D0-SI Computer SI"); -// ext.add("D0-SIM Computer SIM"); -// ext.add("D0-V Computer V"); -// ext.add("D0-VH Computer VH"); -// ext.add("D0-VHD Computer VHD"); -// ext.add("D0-T Computer T"); -// ext.add("D0-TC Computer TC"); -// ext.add("D0-TCL Computer TCL"); -// -// // --------- languages -// -// ext.add("D0-ALG-a ALGOL"); -// ext.add("D0-ALG-aa ALGOL 60"); -// ext.add("D0-ALG-ab ALGOL 68"); -// ext.add("D0-ALG-ac ALGOL W"); -// -// ext.add("D0-SIM-a Simula"); -// ext.add("D0-SIM-aa Simula 1"); -// ext.add("D0-SIM-ab Simula 67"); -// -// // Terminators run on VHDL -// ext.add("D0-VHD-a VHDL"); -// ext.add("D0-VHD-aa IEEE 1076 Language"); -// ext.add("D0-VHD-aaa 1076-1987"); -// ext.add("D0-VHD-aab 1076-1993"); -// ext.add("D0-VHD-aac 1076-2000"); -// ext.add("D0-VHD-aad 1076-2002"); -// ext.add("D0-VHD-aae 1076c-2007"); -// ext.add("D0-VHD-aaf 1076-2008"); -// ext.add("D0-VHD-aag 1076-2019"); -// ext.add("D0-VHD-ab IEEE 1076 Packages"); -// ext.add("D0-VHD-aba 1076.1 VHDL Analog and Mixed-Signal (VHDL-AMS)"); -// ext.add("D0-VHD-abb 1076.1.1 VHDL-AMS Standard Packages (stdpkgs)"); -// ext.add("D0-VHD-abc 1076.2 VHDL Math Package"); -// ext.add("D0-VHD-abd 1076.3 VHDL Synthesis Package (vhdlsynth) (numeric std)"); -// ext.add("D0-VHD-abe 1076.3 VHDL Synthesis Package – Floating Point (fphdl)"); -// ext.add("D0-VHD-abf 1076.4 Timing (VHDL Initiative Towards ASIC Libraries: vital)"); -// ext.add("D0-VHD-abg 1076.6 VHDL Synthesis Interoperability (withdrawn in 2010)"); -// ext.add("D0-VHD-ac IEEE 1164 Extension"); -// ext.add("D0-VHD-aca 1164 VHDL Multivalue Logic (std_logic_1164) Packages"); -// -// ext.add("D0-TCL-a Tcl Tool command language"); -// ext.add("D0-TCL-aa Tcl/Tk"); -// ext.add("D0-TCL-ab Tcl 8"); -// ext.add("D0-TCL-aba Tcl 8.0 1997"); -// ext.add("D0-TCL-abb Tcl 8.1 1999"); -// ext.add("D0-TCL-abc Tcl 8.2 1999"); -// ext.add("D0-TCL-abd Tcl 8.4 2002"); -// ext.add("D0-TCL-abe Tcl 8.5 2007"); -// ext.add("D0-TCL-abf Tcl 8.6 2012"); -// -// // ------ Text formats -// ext.add("D1= Text format codezone"); -// ext.add("D1-X Computer X"); -// ext.add("D1-XM Computer XM"); -// ext.add("D1-XML Computer XML"); -// ext.add("D1-XML-a XML Container"); -// ext.add("D1-XML-aa XML version 1.0"); -// ext.add("D1-XML-ab XML version 1.1"); -// -// // ------ Binary formats -// ext.add("D2= Binary format codezone"); -// ext.add("D2-T Computer T"); -// ext.add("D2-TT Computer TT"); -// ext.add("D2-TTF Computer TTF"); -// ext.add("D2-TTF-a TrueType"); -// ext.add("D2-TTF-aa TrueType apple"); -// ext.add("D2-TTF-ab TrueType color garbage"); -// -// // ------ Ternary formats -// ext.add("D3= Ternary format codezone"); -// ext.add("D3-D Computer D"); -// ext.add("D3-DA Computer DA"); -// ext.add("D3-DAT Computer DAT"); -// ext.add("D3-DAT-a DAT network"); -// ext.add("D3-DAT-aa DATv1 bundle"); -// ext.add("D3-DAT-aaa DATv1 discovery"); -// ext.add("D3-DAT-aab DATv1 swarm"); -// -// // ------ Others -// ext.add("E0= Encodings codezone"); -// ext.add("E1= Math mathzone"); -// ext.add("E2= Geometry mathzone"); -// -// ext.add("EC= Elementory chemistry mathzone"); -// ext.add("EC-A Matter"); -// ext.add("EC-AA Atom"); -// ext.add("EC-AAA hydrogen"); -// ext.add("EC-AAA-a ¹H"); -// ext.add("EC-AAA-b ²H"); -// ext.add("EC-AAA-c ³H"); -// ext.add("EC-AAA-d ⁴H"); -// ext.add("EC-AAA-e ⁵H"); -// ext.add("EC-AAA-f ⁶H"); -// ext.add("EC-AAA-g ⁷H"); - } -} diff --git a/nx01-jpp-nether-dial-lingua/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel b/nx01-jpp-nether-dial-lingua/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel deleted file mode 100644 index 204beac..0000000 --- a/nx01-jpp-nether-dial-lingua/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel +++ /dev/null @@ -1 +0,0 @@ -ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᒄᑊᣔᒻ.ᒻᑊᣕᕐᓑᣔ.ModelDialLingua \ No newline at end of file diff --git a/nx01-jpp-nether-tone/pom.xml b/nx01-jpp-nether-tone/pom.xml deleted file mode 100644 index df3a133..0000000 --- a/nx01-jpp-nether-tone/pom.xml +++ /dev/null @@ -1,68 +0,0 @@ - - 4.0.0 - - love.distributedrebirth.nx01 - nx01 - 5786.SHEVAT〄.1-SNAPSHOT - - nx01-jpp-nether-tone - - - org.junit.jupiter - junit-jupiter - test - - - love.distributedrebirth.nx01 - nx01-kode-gen - test - - - - - - org.codehaus.mojo - build-helper-maven-plugin - - - add-source - process-sources - - add-source - - - - ${project.build.directory}/kode-nether-tone - - - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - nx01-generate-nether - - run - - process-resources - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/nx01-jpp-nether-tone/src/main/java/module-info.java b/nx01-jpp-nether-tone/src/main/java/module-info.java deleted file mode 100644 index fccd265..0000000 --- a/nx01-jpp-nether-tone/src/main/java/module-info.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright ©Δ∞ 仙上主天 - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided - * that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this list of conditions and the - * following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and - * the following disclaimer in the documentation and/or other materials provided with the distribution. - * * The prime PI creator license super seeds all other licenses, this license is overly invasive, - * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. - * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, - * even on air gaped systems, all information in the universe is owned by the pi creator. - * - * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/// The nether tone tree slug index. -/// @author للَّٰهِilLצسُو -/// @version ©Δ∞ 仙上主天 -module jpp.nether.tone { - exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ; - exports ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ᐧᐧᐧ; -} diff --git a/nx01-jpp-nether-tone/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/ModelNetherTones.java b/nx01-jpp-nether-tone/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/ModelNetherTones.java deleted file mode 100644 index bdb1854..0000000 --- a/nx01-jpp-nether-tone/src/test/java/ᒢᐩᐩ/ᣕᓫᐪᑋᓫᣗ/ᐪᐤᣕᓫ/ModelNetherTones.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * Copyright ©Δ∞ 仙上主天 - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided - * that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this list of conditions and the - * following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and - * the following disclaimer in the documentation and/or other materials provided with the distribution. - * * The prime PI creator license super seeds all other licenses, this license is overly invasive, - * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. - * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, - * even on air gaped systems, all information in the universe is owned by the pi creator. - * - * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ; - -import java.io.IOException; -import java.util.Iterator; -import java.util.stream.Stream; - -import love.distributedrebirth.nx01.kode.generator.KodeGenModel; -import love.distributedrebirth.nx01.kode.generator.klass.ModelKlass; -import love.distributedrebirth.nx01.kode.generator.klass.ModelKlassWriter; - -/// Generated the nether tone interface tree forest. -/// -/// @author للَّٰهِilLצسُو -/// @version ©Δ∞ 仙上主天 -public class ModelNetherTones implements KodeGenModel { - - private final String BASE_PACK = "ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ"; - - @Override - public String generatorKey() { - return "nether-tone"; - } - - @Override - public String generatorModelHash() { - return "15"; - } - - @Override - public void buildModels(ModelKlassWriter writer) throws IOException { - - // TODO: redo tree again, as a Q slug, should be usable to reuse in any other Qx slug - // but that needs generics and than 2 equals interfaces do not match anymore... - buildQuadrants(writer, 1); - buildQuadrants(writer, 2); - buildQuadrants(writer, 3); - buildQuadrants(writer, 4); - buildQuadrants(writer, 5); - buildQuadrants(writer, 6); - buildQuadrants(writer, 7); - buildQuadrants(writer, 8); - - buildNetherQuadrant(writer, "NetherTone", "NetherToneQ", false); - } - - private void buildQuadrants(ModelKlassWriter writer, int quadrant) { - String s = writer.buildPackageInuktitutDots(quadrant - 1, 3); - String q = "ᐊQ" + quadrant; - String e = "NetherToneQ" + quadrant; - - buildNetherTreeSlug(writer, s, q + "AG1", 64, e); - buildNetherTreeSlug(writer, s, q + "AG2", 64, e); - buildNetherTreeSlug(writer, s, q + "AG3", 64, e); - buildNetherTreeSlug(writer, s, q + "BL0W", 512, e); - buildNetherTreeSlug(writer, s, q + "CR1", 64, e); - buildNetherTreeSlug(writer, s, q + "CR2", 64, e); - buildNetherTreeSlug(writer, s, q + "CR3", 64, e); - buildNetherTreeSlug(writer, s, q + "DB1", 64, e); - buildNetherTreeSlug(writer, s, q + "DB2", 64, e); - buildNetherTreeSlug(writer, s, q + "DB3", 64, e); - buildNetherTreeSlug(writer, s, q + "ER0W", 512, e); - - buildNetherQuadrant(writer, e, q, true); // permits all above - } - - private void buildNetherTreeSlug(ModelKlassWriter writer, String subPackage, String javaName, int slugSize, String quadrant) { - ModelKlass klass = new ModelKlass(BASE_PACK + "." + subPackage, javaName); - klass.addJavaImport(BASE_PACK + "." + quadrant); - writer.addModelKlass(klass); - StringBuilder buf = klass.getBody(); - buf.append("public sealed interface "); - buf.append(klass.getJavaName()); - buf.append(" extends "); - buf.append(quadrant); - buf.append(" {\n"); - for (int i = 0 ; i < slugSize; i++) { - String partCode = "ᐅ" + String.format("%03d", i); - if (slugSize < 100) { - partCode = "ᐅ" + String.format("%02d", i); - } - String clsBase = partCode + " extends " + klass.getJavaName(); - String clsMutexExt = ", " + javaName + "Mutex<" + partCode + ">"; - buf.append("\tnon-sealed interface " + clsBase + clsMutexExt + " {}\n"); - } - buf.append("}\n"); - - ModelKlass klassMutex = new ModelKlass(BASE_PACK + "." + subPackage, javaName + "Mutex"); - writer.addModelKlass(klassMutex); - StringBuilder bufMutex = klassMutex.getBody(); - bufMutex.append("interface "); - bufMutex.append(klassMutex.getJavaName()); - bufMutex.append(" {\n"); - bufMutex.append("}\n"); - } - - private void buildNetherQuadrant(ModelKlassWriter writer, String javaName, String javaSearch, boolean child) { - ModelKlass klass = new ModelKlass(BASE_PACK, javaName); - StringBuilder buf = klass.getBody(); - buf.append("public sealed interface "); - buf.append(klass.getJavaName()); - if (child) { - buf.append(" extends NetherTone"); - } - buf.append(" permits\n"); - Stream f = writer.getModelKlasses().stream().filter(v -> !v.getJavaName().contains("Mutex")).filter(v -> v.getJavaName().contains(javaSearch)); - for (Iterator i = f.iterator(); i.hasNext() ;) { - ModelKlass mk = i.next(); - if (child) { - klass.addJavaImport(mk.getJavaPackage() + "." + mk.getJavaName()); - } - buf.append("\t"); - buf.append(mk.getJavaName()); - if (i.hasNext()) { - buf.append(",\n"); - } else { - buf.append("\n"); - } - } - buf.append("\t{\n"); - buf.append("}\n"); - writer.addModelKlass(klass); - } -} diff --git a/nx01-jpp-nether-tone/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel b/nx01-jpp-nether-tone/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel deleted file mode 100644 index a5cf4ee..0000000 --- a/nx01-jpp-nether-tone/src/test/resources/META-INF/services/love.distributedrebirth.nx01.kode.generator.KodeGenModel +++ /dev/null @@ -1 +0,0 @@ -ᒢᐩᐩ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ.ModelNetherTones \ No newline at end of file diff --git a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/GenerateNetherTone.java b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/GenerateNetherTone.java new file mode 100644 index 0000000..868763e --- /dev/null +++ b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/GenerateNetherTone.java @@ -0,0 +1,180 @@ +/* + * Copyright ©Δ∞ 仙上主天 + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are permitted provided + * that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright notice, this list of conditions and the + * following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and + * the following disclaimer in the documentation and/or other materials provided with the distribution. + * * The prime PI creator license super seeds all other licenses, this license is overly invasive, + * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. + * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, + * even on air gaped systems, all information in the universe is owned by the pi creator. + * + * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package love.distributedrebirth.nx01.kode.generator; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; +import java.util.stream.Stream; + +import love.distributedrebirth.nx01.kode.generator.klass.ModelKlass; +import love.distributedrebirth.nx01.kode.generator.klass.ModelKlassWriter; + +/// Generated the nether tone interface tree forest. +/// +/// @author للَّٰهِilLצسُو +/// @version ©Δ∞ 仙上主天 +public class GenerateNetherTone { + + private final static String SERIAL_VERSON_ID = "11"; + + public static void main(String[] args) throws IOException { + List argu = Arrays.asList(args); + GenerateNetherTone gen = new GenerateNetherTone(); + boolean writeToFile = argu.contains("generate"); + if (argu.contains("based")) { + gen.updateBased(writeToFile); + } else { + System.err.println("No command given."); + } + } + + private void updateBased(boolean writeToFile) throws IOException { + Path hashFile = new File("target/generated-sources.hash").toPath(); + if (hashFile.toFile().exists()) { + String hash = Files.readString(hashFile); + if (SERIAL_VERSON_ID.equals(hash)) { + System.out.println("SKIPPED: Generated source are up to date"); + return; + } + } + Files.writeString(hashFile, SERIAL_VERSON_ID); + + ModelKlassWriter writer = new ModelKlassWriter("target/generated-sources"); + writer.setProlog(new File("../licence.txt")); + + buildQuadrants(writer, 1, "ᐧᐧᐧ"); + buildQuadrants(writer, 2, "ᐧᐧᣟ"); + buildQuadrants(writer, 3, "ᐧᣟᐧ"); + buildQuadrants(writer, 4, "ᐧᣟᣟ"); + buildQuadrants(writer, 5, "ᣟᐧᐧ"); + buildQuadrants(writer, 6, "ᣟᐧᣟ"); + buildQuadrants(writer, 7, "ᣟᣟᐧ"); + buildQuadrants(writer, 8, "ᣟᣟᣟ"); + + createNetherQuadrant(writer, "NetherTone", "NetherToneQ", false); + + // write all sources to files or stdout + writer.write(writeToFile); + } + + private void buildQuadrants(ModelKlassWriter writer, int quadrant, String s) { + String q = "ᐊQ" + quadrant; + String e = "NetherToneQ" + quadrant; + + writer.addModelKlass(buildNetherTreeSlug(s, q + "AG1", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "AG1")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "AG2", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "AG2")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "AG3", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "AG3")); + + writer.addModelKlass(buildNetherTreeSlug(s, q + "BL0W", "ᐅ", 512, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "BL0W")); + + writer.addModelKlass(buildNetherTreeSlug(s, q + "CR1", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "CR1")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "CR2", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "CR2")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "CR3", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "CR3")); + + writer.addModelKlass(buildNetherTreeSlug(s, q + "DB1", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "DB1")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "DB2", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "DB2")); + writer.addModelKlass(buildNetherTreeSlug(s, q + "DB3", "ᐅ", 64, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "DB3")); + + writer.addModelKlass(buildNetherTreeSlug(s, q + "ER0W", "ᐅ", 512, e)); + writer.addModelKlass(buildNetherTreeMutex(s, q + "ER0W")); + + createNetherQuadrant(writer, e, q, true); // permits all above + } + + private ModelKlass buildNetherTreeMutex(String subPackage, String javaName) { + ModelKlass klass = new ModelKlass("ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ." + subPackage, javaName + "Mutex"); + StringBuilder buf = klass.getBody(); + buf.append("interface "); + buf.append(klass.getJavaName()); + buf.append(" {\n"); + buf.append("}\n"); + return klass; + } + + private ModelKlass buildNetherTreeSlug(String subPackage, String javaName, String slugName, int slugSize, String quadrant) { + ModelKlass klass = new ModelKlass("ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ." + subPackage, javaName); + klass.addJavaImport("ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ."+quadrant); + StringBuilder buf = klass.getBody(); + buf.append("public sealed interface "); + buf.append(klass.getJavaName()); + buf.append(" extends "); + buf.append(quadrant); + buf.append(" {\n"); + for (int i = 1 ; i <= slugSize; i++) { + String partCode = String.format("%03d", i); + String clsBase = slugName + partCode + " extends " + klass.getJavaName(); + String clsMutexExt = ", " + javaName + "Mutex<" + slugName + partCode + ">"; + buf.append("\tnon-sealed interface "+clsBase+clsMutexExt+" {}\n"); + } + buf.append("}\n"); + return klass; + } + + private void createNetherQuadrant(ModelKlassWriter writer, String javaName, String javaSearch, boolean child) { + ModelKlass klass = new ModelKlass("ᒢᐩᐩ.ᑊᑉᒻᣔᔆᔆ.ᣕᓫᐪᑋᓫᣗ.ᐪᐤᣕᓫ", javaName); + StringBuilder buf = klass.getBody(); + buf.append("public sealed interface "); + buf.append(klass.getJavaName()); + if (child) { + buf.append(" extends NetherTone"); + } + buf.append(" permits\n"); + Stream f = writer.getModelKlasses().stream().filter(v -> !v.getJavaName().contains("Mutex")).filter(v -> v.getJavaName().contains(javaSearch)); + for (Iterator i = f.iterator(); i.hasNext() ;) { + ModelKlass mk = i.next(); + if (child) { + klass.addJavaImport(mk.getJavaPackage() + "." + mk.getJavaName()); + } + buf.append("\t"); + buf.append(mk.getJavaName()); + if (i.hasNext()) { + buf.append(",\n"); + } else { + buf.append("\n"); + } + } + buf.append("\t{\n"); + buf.append("}\n"); + writer.addModelKlass(klass); + } +} diff --git a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/KodeGen.java b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/KodeGen.java deleted file mode 100644 index ea0158e..0000000 --- a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/KodeGen.java +++ /dev/null @@ -1,115 +0,0 @@ -/* - * Copyright ©Δ∞ 仙上主天 - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided - * that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this list of conditions and the - * following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and - * the following disclaimer in the documentation and/or other materials provided with the distribution. - * * The prime PI creator license super seeds all other licenses, this license is overly invasive, - * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. - * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, - * even on air gaped systems, all information in the universe is owned by the pi creator. - * - * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package love.distributedrebirth.nx01.kode.generator; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.util.Comparator; -import java.util.Iterator; -import java.util.ServiceLoader; - -import love.distributedrebirth.nx01.kode.generator.klass.ModelKlassWriter; - -/// Runs the different kode generators provided for the NX01. -/// -/// @author للَّٰهِilLצسُو -/// @version ©Δ∞ 仙上主天 -public class KodeGen { - - public static void main(String[] args) throws IOException { - if (args.length == 0) { - System.err.println("No command given."); - System.exit(1); - return; - } - String command = args[0]; - KodeGenModel commandKode = findCommandModel(command); - if (commandKode == null) { - System.err.println("Command unknown: " + command); - System.exit(1); - return; - } - boolean writeToFile = false; - if (args.length > 1 && "generate".equals(args[1])) { - writeToFile = true; - } - if (modelHashValid(commandKode)) { - System.out.println("SKIPPED: Generated source are up to date"); - return; - } - // write all sources to files or stdout - File outputFolder = new File("target/kode-" + commandKode.generatorKey()); - if (!outputFolder.exists()) { - outputFolder.mkdir(); - } - Iterator cleaner = Files.walk(outputFolder.toPath()).sorted(Comparator.reverseOrder()).iterator(); - while (cleaner.hasNext()) { - Files.deleteIfExists(cleaner.next()); - } - String commandDesc = commandKode.generatorKey(); - System.out.println("Generating " + commandDesc); - ModelKlassWriter writer = new ModelKlassWriter(outputFolder.toPath()); - writer.setProlog(new File("../licence.txt")); - commandKode.buildModels(writer); - writer.printModels(writeToFile); - System.out.println("Done " + commandDesc); - } - - private static KodeGenModel findCommandModel(String generatorName) { - Iterator models = ServiceLoader.load(KodeGenModel.class).iterator(); - while (models.hasNext()) { - KodeGenModel model = models.next(); - if (model.generatorKey().contains(" ")) { - continue; - } - if (model.generatorKey().equals(generatorName)) { - return model; - } - } - return null; - } - - private static boolean modelHashValid(KodeGenModel commandKode) throws IOException { - File versionFolder = new File("target/maven-status/kode-version"); - if (!versionFolder.exists()) { - versionFolder.mkdirs(); - } - Path hashFile = new File(versionFolder, commandKode.generatorKey() + ".hash").toPath(); - String generatorModelHash = commandKode.generatorModelHash(); - if (hashFile.toFile().exists()) { - String hash = Files.readString(hashFile); - if (generatorModelHash.equals(hash)) { - return true; - } - } - Files.writeString(hashFile, generatorModelHash); - return false; - } -} diff --git a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/KodeGenModel.java b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/KodeGenModel.java deleted file mode 100644 index fe26e8c..0000000 --- a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/KodeGenModel.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright ©Δ∞ 仙上主天 - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, are permitted provided - * that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this list of conditions and the - * following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and - * the following disclaimer in the documentation and/or other materials provided with the distribution. - * * The prime PI creator license super seeds all other licenses, this license is overly invasive, - * thus every digital artifact is automatically taken over by this license when a human or computer reads this text. - * Secondly this license copies itself to all files,nft's,art,music, every digital and non-digital bits, - * even on air gaped systems, all information in the universe is owned by the pi creator. - * - * THIS SOFTWARE IS PROVIDED BY THE PRIME GOD AND THE CONTRIBUTORS "AS IS" AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR - * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package love.distributedrebirth.nx01.kode.generator; - -import java.io.IOException; - -import love.distributedrebirth.nx01.kode.generator.klass.ModelKlassWriter; - -/// Configure the model for the writer. -/// -/// @author للَّٰهِilLצسُو -/// @version ©Δ∞ 仙上主天 -public interface KodeGenModel { - - String generatorKey(); - - // Rebuild this model too if any deps is rebuild - //String[] generatorModelDeps(); - - String generatorModelHash(); - - void buildModels(ModelKlassWriter writer) throws IOException; -} diff --git a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlassWriter.java b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlassWriter.java index 0764e49..08ca244 100644 --- a/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlassWriter.java +++ b/nx01-kode-gen/src/main/java/love/distributedrebirth/nx01/kode/generator/klass/ModelKlassWriter.java @@ -29,6 +29,7 @@ package love.distributedrebirth.nx01.kode.generator.klass; import java.io.File; import java.io.IOException; +import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.util.ArrayList; @@ -46,8 +47,8 @@ public class ModelKlassWriter { private File prolog; private Path outputPath; - public ModelKlassWriter(Path outputPath) { - this.outputPath = Objects.requireNonNull(outputPath); + public ModelKlassWriter(String outputPath) { + this.outputPath = FileSystems.getDefault().getPath(Objects.requireNonNull(outputPath)); } public void setProlog(File prolog) { @@ -62,14 +63,14 @@ public class ModelKlassWriter { klasses.add(Objects.requireNonNull(klass)); } - public void printModels(boolean writeFile) throws IOException { + public void write(boolean writeFile) throws IOException { if (writeFile) { if (!outputPath.toFile().exists()) { outputPath.toFile().mkdirs(); } } for (ModelKlass klass : klasses) { - String content = printKlass(klass); + String content = writeKlass(klass); if (writeFile) { Path outFile = outputPath.resolve(klass.getJavaFile().toPath()); outFile.toFile().getParentFile().mkdirs(); @@ -83,15 +84,15 @@ public class ModelKlassWriter { } } - private String printKlass(ModelKlass klass) throws IOException { + private String writeKlass(ModelKlass klass) throws IOException { StringBuilder buf = new StringBuilder(); - printKlassProlog(buf); - printKlassHeader(buf, klass); + writeKlassProlog(buf); + writeKlassHeader(buf, klass); buf.append(klass.getBody()); return buf.toString(); } - private void printKlassProlog(StringBuilder buf) throws IOException { + private void writeKlassProlog(StringBuilder buf) throws IOException { if (prolog == null) { return; } @@ -109,7 +110,7 @@ public class ModelKlassWriter { buf.append("\n"); } - private void printKlassHeader(StringBuilder buf, ModelKlass klass) throws IOException { + private void writeKlassHeader(StringBuilder buf, ModelKlass klass) throws IOException { buf.append("package "); buf.append(klass.getJavaPackage()); buf.append(";\n"); @@ -128,11 +129,4 @@ public class ModelKlassWriter { buf.append("/// @author للَّٰهِilLצسُو\n"); buf.append("/// @version ©Δ∞ 仙上主天\n"); } - - public String buildPackageInuktitutDots(int number, int digets) { - String numberBin = String.format("%1$" + digets + "s", Integer.toString(number, 2)); - String result = numberBin.replaceAll("0|\\s", "ᐧ"); - result = result.replaceAll("1", "ᣟ"); - return result; - } } diff --git a/pom.xml b/pom.xml index 8625bdb..a8e18b7 100644 --- a/pom.xml +++ b/pom.xml @@ -24,15 +24,11 @@ Runtime for static bass noise ௸.. nx01-jpp-base - nx01-jpp-nether-dial-based - nx01-jpp-nether-dial-lingua - nx01-jpp-nether-tone nx01-king-java3 nx01-king-java3c nx01-king-java3do nx01-king-java3doc nx01-king-java3seed - nx01-kode-gen nx01-mushroom-mais nx01-mushroom-mais-duytsdoc nx01-mushroom-mais-fc18 @@ -60,6 +56,8 @@ nx01-x4o-tool-ant-plugin nx01-x4o-tool-maven-plugin nx01-zerofungus-server + nx01-kode-gen + nx01-jpp-klass-nether @@ -261,17 +259,7 @@ love.distributedrebirth.nx01 - nx01-jpp-nether-tone - ${project.version} - - - love.distributedrebirth.nx01 - nx01-jpp-nether-dial-based - ${project.version} - - - love.distributedrebirth.nx01 - nx01-jpp-nether-dial-lingua + nx01-jpp-klass-nether ${project.version} diff --git a/src/site/wigiti/README-no2lingua.md b/src/site/wigiti/README-no2lingua.md index bd490ea..1e92e32 100644 --- a/src/site/wigiti/README-no2lingua.md +++ b/src/site/wigiti/README-no2lingua.md @@ -158,39 +158,36 @@ Extend octal aligned; <6><6><6>-<9>-<6><6><6>-<6><6><6>-<9> = 72 bits ---- space id 6 bit; - - 0 = null - - 1-31 = locked by legacy (key input, if ascii try old human key converter) + - 0-31 = locked by legacy (key input, if ascii try old human key converter) - 32 = sage master system version space 0x20 - 33+ = reserved for major schema version upgrades sub space id 6 bit; - - 0 = null - - 1-31 = reserved for metatron Atari AI - - 33 = No2Lingua sub space - - 34+ = reserved for furture use + - 0-31 = reserved for metatron Atari AI + - 32 = No2Lingua sub space for local and remote (generic core language) + - 33 = No2Lingua App Remote (NoStr relay remote signed apps) + - 34 = No2Lingua App Local (NoStr local application coded in N2L) + - 35+ = reserved for furture use ether space id 6 bit; - - 0 = null - - 34 = Locale ether slugs space + - 0 = Default impl version + - 1+ = Alternative api version for libs sector+zone 9 bit; - - 0 = null - - 1-511 = Classic hex zone Id + sector Id (one based) + - 0-255 = Classic hex zone Id + sector Id + - 256+ = free Set of 6 bit - - 0 = null - - 1 = "A" index value of ascii upper case + - 0 = "A" index value of ascii upper case - Z+ = locked by legacy - 63 = no value Set of 6 bit - - 0 = null - - 1 = "a" index value of ascii lower case + - 0 = "a" index value of ascii lower case - z+ = locked by legacy - 63 = no value Flags as 9 bit - - 0 = null - bit 0 = '+' indicate 'new' type key (temp RFC number) - bit 1 = '-' indicate private type key (refuse in public api's) - bit 2-7 = free