Compare commits
5 commits
2850174c63
...
5b84a8391f
| Author | SHA1 | Date | |
|---|---|---|---|
| 5b84a8391f | |||
| 51d4f2cba0 | |||
| 861209e40a | |||
| 1fe69d9d7e | |||
| 8cabc8eb0d |
13 changed files with 474 additions and 136 deletions
|
|
@ -26,6 +26,7 @@ import java.math.BigInteger;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import java.util.Optional;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import org.x4o.fc18.cake2.FourCornerDotCake;
|
import org.x4o.fc18.cake2.FourCornerDotCake;
|
||||||
|
|
@ -129,10 +130,10 @@ public class FourCornerUnicodeDisplay {
|
||||||
this.output = Objects.requireNonNull(output);
|
this.output = Objects.requireNonNull(output);
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean printedEscape(FourCornerDotCake slice, int offset) {
|
private boolean printedEscape(FourCornerDotCake slice, int cakePoint) {
|
||||||
if (FourCornerDotCake.FC_CDC1604_P6.equals(slice)) {
|
if (FourCornerDotCake.FC_CDC1604_P6.equals(slice)) {
|
||||||
if (offset < 4) {
|
if (cakePoint < 4) {
|
||||||
output.appendCodePoint(FCDotPIE9DDash09.values()[offset].codePointDotIndex());
|
output.appendCodePoint(FCDotPIE9DDash09.values()[cakePoint].codePointDotIndex());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -156,27 +157,35 @@ public class FourCornerUnicodeDisplay {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void strobeWords(FourCornerDotCake slice, List<Integer> offsets) {
|
public void strobeWords(List<Integer> cakePoints) {
|
||||||
for (int i = 0; i < offsets.size(); i++) {
|
for (int i = 0; i < cakePoints.size(); i++) {
|
||||||
strobeWord(slice, offsets.get(i));
|
strobeWord(cakePoints.get(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void strobeWord(FourCornerDotCake slice, int offset) {
|
public void strobeWord(int cakePoint) {
|
||||||
if (printedEscape(slice, offset)) {
|
|
||||||
|
// TODO: remove slice here;
|
||||||
|
Optional<FourCornerDotCake> sliceOpt = FourCornerDotCake.valueFromCakePoint(cakePoint);
|
||||||
|
if (sliceOpt.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
FourCornerDotCake slice = sliceOpt.get();
|
||||||
|
|
||||||
|
if (printedEscape(slice, cakePoint)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
FourCornerX00PetitVide[] videPoints = slice.getVidePoints();
|
FourCornerX00PetitVide[] videPoints = slice.getVidePoints();
|
||||||
|
|
||||||
if (slice.isExternWord()) {
|
if (slice.isExternWord()) {
|
||||||
String nameSpec = slice.nameSpec();
|
String nameSpec = slice.nameSpec();
|
||||||
String key = nameSpec + "." + Integer.toString(offset);
|
String key = nameSpec + "." + Integer.toString(cakePoint);
|
||||||
String value = null;
|
String value = null;
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
output.append(value);
|
output.append(value);
|
||||||
} else {
|
} else {
|
||||||
FourCornerX00PetitVide videPoint = videPoints[offset];
|
FourCornerX00PetitVide videPoint = videPoints[cakePoint - slice.getStart()];
|
||||||
if (videPoint.kaasX18CakeDotName().isPresent()) {
|
if (videPoint.kaasX18CakeDotName().isPresent()) {
|
||||||
List<FourCornerX18CakePointSequence> nameX18 = videPoint.kaasX18CakeDotName().get().nameX18();
|
List<FourCornerX18CakePointSequence> nameX18 = videPoint.kaasX18CakeDotName().get().nameX18();
|
||||||
for (FourCornerX18CakePointSequence letter : nameX18) {
|
for (FourCornerX18CakePointSequence letter : nameX18) {
|
||||||
|
|
@ -200,7 +209,7 @@ public class FourCornerUnicodeDisplay {
|
||||||
//if (offset < 0 || offset > videPoints.length) {
|
//if (offset < 0 || offset > videPoints.length) {
|
||||||
// continue;
|
// continue;
|
||||||
//}
|
//}
|
||||||
FourCornerX00PetitVide videPoint = videPoints[offset];
|
FourCornerX00PetitVide videPoint = videPoints[cakePoint - slice.getStart()];
|
||||||
videPoint.kaasX21CodeSequence().ifPresent(v -> {
|
videPoint.kaasX21CodeSequence().ifPresent(v -> {
|
||||||
v.codePointSequence().forEach(vv -> output.appendCodePoint(vv));
|
v.codePointSequence().forEach(vv -> output.appendCodePoint(vv));
|
||||||
});
|
});
|
||||||
|
|
@ -209,7 +218,7 @@ public class FourCornerUnicodeDisplay {
|
||||||
|
|
||||||
output.append(slice.name());
|
output.append(slice.name());
|
||||||
output.append("#");
|
output.append("#");
|
||||||
output.append(offset);
|
output.append(cakePoint);
|
||||||
output.append("#");
|
output.append("#");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -164,6 +164,12 @@ public enum FourCornerDotCake {
|
||||||
|
|
||||||
// =========== Allow pie terminators for symbols without escaping
|
// =========== Allow pie terminators for symbols without escaping
|
||||||
|
|
||||||
|
// build from ovewviews;
|
||||||
|
// - https://www.msx.org/wiki/KuTen_-_JIS_-_SJIS_Code_Conversion_Tables
|
||||||
|
// - https://en.wikipedia.org/wiki/Digital_encoding_of_APL_symbols
|
||||||
|
// - https://en.wikipedia.org/wiki/BraSCII
|
||||||
|
// - https://en.wikipedia.org/wiki/List_of_Unicode_characters
|
||||||
|
|
||||||
FC_PIE9C_01(256 + 0 , 1, FCDotPIE9CDash01.values()),
|
FC_PIE9C_01(256 + 0 , 1, FCDotPIE9CDash01.values()),
|
||||||
FC_PIE9C_02(1 + FC_PIE9C_01.getStop(), 2, FCDotPIE9CDash02.values()),
|
FC_PIE9C_02(1 + FC_PIE9C_01.getStop(), 2, FCDotPIE9CDash02.values()),
|
||||||
FC_PIE9C_03(1 + FC_PIE9C_02.getStop(), 3, FCDotPIE9CDash03.values()),
|
FC_PIE9C_03(1 + FC_PIE9C_02.getStop(), 3, FCDotPIE9CDash03.values()),
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
|
||||||
public enum FCDotPIE9CDash06 implements FourCornerDotCollePie9 {
|
public enum FCDotPIE9CDash06 implements FourCornerDotCollePie9 {
|
||||||
|
|
||||||
NXX_1('⍟'), // ⍟ = FROM APL
|
NXX_1('⍟'), // ⍟ = FROM APL
|
||||||
NXX_2('⊗'), // ⊗ = FROM APL
|
NXX_2('⊕'), // ⊕ = FROM APL
|
||||||
NXX_3('⊗'), // ⊗ = FROM APL
|
NXX_3('⊗'), // ⊗ = FROM APL
|
||||||
NXX_4('⊖'), // ⊖ = FROM APL
|
NXX_4('⊖'), // ⊖ = FROM APL
|
||||||
NXX_5('⍉'), // ⍉ = FROM APL
|
NXX_5('⍉'), // ⍉ = FROM APL
|
||||||
|
|
|
||||||
|
|
@ -37,18 +37,18 @@ import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
|
||||||
*/
|
*/
|
||||||
public enum FCDotPIE9DDash12 implements FourCornerDotCollePie9 {
|
public enum FCDotPIE9DDash12 implements FourCornerDotCollePie9 {
|
||||||
|
|
||||||
NXX_01(' '),
|
NXX_01('≠'), // ≠ from APL
|
||||||
NXX_02(' '),
|
NXX_02('≡'), // ≡ from APL
|
||||||
NXX_03(' '),
|
NXX_03('≢'), // ≢ from APL
|
||||||
NXX_04(' '),
|
NXX_04('≣'),
|
||||||
NXX_05(' '),
|
NXX_05('≤'), // ≤ from APL
|
||||||
NXX_06(' '),
|
NXX_06('≥'), // ≥ from APL
|
||||||
NXX_07(' '),
|
NXX_07('≰'),
|
||||||
NXX_08(' '),
|
NXX_08('≱'),
|
||||||
NXX_09(' '),
|
NXX_09('≮'),
|
||||||
NXX_10(' '),
|
NXX_10('≯'),
|
||||||
NXX_11(' '),
|
NXX_11('≍'),
|
||||||
NXX_12(' '),
|
NXX_12('≭'),
|
||||||
;
|
;
|
||||||
private final List<Integer> codePointDisplay;
|
private final List<Integer> codePointDisplay;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,27 +37,27 @@ import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
|
||||||
*/
|
*/
|
||||||
public enum FCDotPIE9DDash21 implements FourCornerDotCollePie9 {
|
public enum FCDotPIE9DDash21 implements FourCornerDotCollePie9 {
|
||||||
|
|
||||||
NXX_01(' '),
|
NXX_01('⊲'),
|
||||||
NXX_02(' '),
|
NXX_02('⊳'),
|
||||||
NXX_03(' '),
|
NXX_03('⋪'),
|
||||||
NXX_04(' '),
|
NXX_04('⋫'),
|
||||||
NXX_05(' '),
|
NXX_05('⊴'),
|
||||||
NXX_06(' '),
|
NXX_06('⊵'),
|
||||||
NXX_07(' '),
|
NXX_07('⋬'),
|
||||||
NXX_08(' '),
|
NXX_08('⋭'),
|
||||||
NXX_09(' '),
|
NXX_09('∆'), // from APL
|
||||||
NXX_10(' '),
|
NXX_10('∇'), // from APL
|
||||||
NXX_11(' '),
|
NXX_11('⍋'), // from APL
|
||||||
NXX_12(' '),
|
NXX_12('⍒'), // from APL
|
||||||
NXX_13(' '),
|
NXX_13('∧'), // from APL
|
||||||
NXX_14(' '),
|
NXX_14('∨'), // from APL
|
||||||
NXX_15(' '),
|
NXX_15('⊼'),
|
||||||
NXX_16(' '),
|
NXX_16('⊻'),
|
||||||
NXX_17(' '),
|
NXX_17('⍲'), // from APL
|
||||||
NXX_18(' '),
|
NXX_18('⍱'), // from APL
|
||||||
NXX_19(' '),
|
NXX_19('⍙'), // from APL
|
||||||
NXX_20(' '),
|
NXX_20('⍫'), // from APL
|
||||||
NXX_21(' '),
|
NXX_21('⍝'), // from APL
|
||||||
;
|
;
|
||||||
private final List<Integer> codePointDisplay;
|
private final List<Integer> codePointDisplay;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -56,21 +56,21 @@ public enum FCDotAPL0127DashP7A implements FourCornerDotColleZero33 {
|
||||||
// === 8 directions T arrows
|
// === 8 directions T arrows
|
||||||
|
|
||||||
/// SL610000
|
/// SL610000
|
||||||
UP_ARROW('↑'),
|
__UP_ARROW(' '),
|
||||||
/// SL600000
|
/// SL600000
|
||||||
RIGHT_ARROW('→'),
|
__RIGHT_ARROW(' '),
|
||||||
/// SL620000
|
/// SL620000
|
||||||
DOWN_ARROW('↓'),
|
__DOWN_ARROW(' '),
|
||||||
/// SL590000
|
/// SL590000
|
||||||
LEFT_ARROW('←'),
|
__LEFT_ARROW(' '),
|
||||||
/// SL220000
|
/// SL220000
|
||||||
UP_TACK('⊤'),
|
__UP_TACK(' '),
|
||||||
/// SL350000
|
/// SL350000
|
||||||
RIGHT_TACK('⊣'),
|
__RIGHT_TACK(' '),
|
||||||
/// SL230000
|
/// SL230000
|
||||||
DOWN_TACK('⊥'),
|
__DOWN_TACK(' '),
|
||||||
/// SL340000
|
/// SL340000
|
||||||
LEFT_TACK('⊢'),
|
__LEFT_TACK(' '),
|
||||||
|
|
||||||
// === 8 mirrors
|
// === 8 mirrors
|
||||||
|
|
||||||
|
|
@ -87,21 +87,21 @@ public enum FCDotAPL0127DashP7A implements FourCornerDotColleZero33 {
|
||||||
/// SL020000
|
/// SL020000
|
||||||
DOWN_STILE('⌊'),
|
DOWN_STILE('⌊'),
|
||||||
/// SL030000 (used in GNU GPL)
|
/// SL030000 (used in GNU GPL)
|
||||||
DEL('∇'),
|
__DEL(' '),
|
||||||
/// SL060000 (used in GNU GPL)
|
/// SL060000 (used in GNU GPL)
|
||||||
DELTA('∆'),
|
__DELTA(' '),
|
||||||
|
|
||||||
|
|
||||||
// === 8 Oooohhhs
|
// === 8 Oooohhhs
|
||||||
|
|
||||||
/// SL110000
|
/// SL110000
|
||||||
CIRCLE_STAR('⍟'),
|
__CIRCLE_STAR(' '),
|
||||||
/// SL090000
|
/// SL090000
|
||||||
CIRCLE_STILE('⌽'),
|
__CIRCLE_STILE(' '),
|
||||||
/// SL120000
|
/// SL120000
|
||||||
CIRCLE_BAR('⊖'),
|
__CIRCLE_BAR(' '),
|
||||||
/// SL100000
|
/// SL100000
|
||||||
CIRCLE_SLOPE('⍉'),
|
__CIRCLE_SLOPE(' '),
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
|
||||||
|
|
@ -49,45 +49,45 @@ public enum FCDotAPL0127DashP7B implements FourCornerDotColleZero33 {
|
||||||
// SL790000 = Plus = FCDotCDC1604DashP6._PLUS
|
// SL790000 = Plus = FCDotCDC1604DashP6._PLUS
|
||||||
// SL690000 = Bar = FCDotCDC1604DashP6._MINUS
|
// SL690000 = Bar = FCDotCDC1604DashP6._MINUS
|
||||||
/// SL550000
|
/// SL550000
|
||||||
TIMES('×'),
|
__TIMES(' '),
|
||||||
// SL760000 = Slash = FCDotCDC1604DashP6.BAR_V_RIGHT
|
// SL760000 = Slash = FCDotCDC1604DashP6.BAR_V_RIGHT
|
||||||
/// SL540000
|
/// SL540000
|
||||||
DIVIDE('÷'),
|
__DIVIDE(' '),
|
||||||
|
|
||||||
// === ALGOL_60 <relational operator> ::= <, ≤, =, ≥, >, ≠
|
// === ALGOL_60 <relational operator> ::= <, ≤, =, ≥, >, ≠
|
||||||
|
|
||||||
// SL520000 = Less than = FCDotCDC1604DashP6.TAG_COMPARE_LEFT
|
// SL520000 = Less than = FCDotCDC1604DashP6.TAG_COMPARE_LEFT
|
||||||
/// SL560000
|
/// SL560000
|
||||||
NOT_GREATER('≤'),
|
__NOT_GREATER(' '),
|
||||||
// SL810000 = Equal = FCDotCDC1604DashP6._EQUALS
|
// SL810000 = Equal = FCDotCDC1604DashP6._EQUALS
|
||||||
/// SL570000
|
/// SL570000
|
||||||
NOT_LESS('≥'),
|
__NOT_LESS(' '),
|
||||||
// SL530000 = Greater than = FCDotCDC1604DashP6.TAG_COMPARE_RIGHT
|
// SL530000 = Greater than = FCDotCDC1604DashP6.TAG_COMPARE_RIGHT
|
||||||
/// SL820000
|
/// SL820000
|
||||||
NOT_EQUAL('≠'),
|
__NOT_EQUAL(' '),
|
||||||
/// SL050000
|
/// SL050000
|
||||||
DEL_STILE('⍒'), // grade down
|
__DEL_STILE(' '), // grade down
|
||||||
/// SL070000
|
/// SL070000
|
||||||
DELTA_STILE('⍋'),
|
__DELTA_STILE(' '),
|
||||||
|
|
||||||
// === ALGOL_60 <logical operator> ::= ≡ | ⊃ | ∧ | ∨ | ¬
|
// === ALGOL_60 <logical operator> ::= ≡ | ⊃ | ∧ | ∨ | ¬
|
||||||
|
|
||||||
/// SL300000
|
/// SL300000
|
||||||
EQUALS_UNDERBAR('≡'),
|
__EQUALS_UNDERBAR(' '),
|
||||||
/// SL430000
|
/// SL430000
|
||||||
RIGHT_SHOE('⊃'),
|
__RIGHT_SHOE(' '),
|
||||||
/// SL510000
|
/// SL510000
|
||||||
UP_CARET('∧'),
|
__UP_CARET(' '),
|
||||||
/// SL500000
|
/// SL500000
|
||||||
DOWN_CARET('∨'),
|
__DOWN_CARET(' '),
|
||||||
/// NEW: This comes from ALGOL_60 chars.
|
/// NEW: This comes from ALGOL_60 chars.
|
||||||
ALGOL_NOT('¬'),
|
ALGOL_NOT('¬'),
|
||||||
/// SL170000
|
/// SL170000
|
||||||
UP_CARET_TILDE('⍲'), // NAND
|
__UP_CARET_TILDE(' '), // NAND
|
||||||
/// SL180000
|
/// SL180000
|
||||||
DOWN_CARET_TILDE('⍱'),
|
__DOWN_CARET_TILDE(' '),
|
||||||
/// NEW: from Dynalog_APL
|
/// NEW: from Dynalog_APL
|
||||||
EQUALS_UNDERNOT('≢'),
|
__EQUALS_UNDERNOT(' '),
|
||||||
|
|
||||||
/// === Left over from modern APL for Zilog Z8000 see https://aplwiki.com/wiki/Dyalog_APL
|
/// === Left over from modern APL for Zilog Z8000 see https://aplwiki.com/wiki/Dyalog_APL
|
||||||
|
|
||||||
|
|
@ -98,11 +98,11 @@ public enum FCDotAPL0127DashP7B implements FourCornerDotColleZero33 {
|
||||||
/// SL450000
|
/// SL450000
|
||||||
DIAERESIS('¨'),
|
DIAERESIS('¨'),
|
||||||
// SL870000
|
// SL870000
|
||||||
EPSILON_UNDERBAR('⍷'),
|
__EPSILON_UNDERBAR(' '),
|
||||||
// SL860000 = Iota Underbar
|
// SL860000 = Iota Underbar
|
||||||
IOTA_UNDERBAR('⍸'),
|
__IOTA_UNDERBAR(' '),
|
||||||
/// SL730000
|
/// SL730000
|
||||||
IOTA('⍳'),
|
__IOTA(' '),
|
||||||
/// SL410000
|
/// SL410000
|
||||||
DOWN_SHOE('∪'),
|
DOWN_SHOE('∪'),
|
||||||
/// SL400000
|
/// SL400000
|
||||||
|
|
|
||||||
|
|
@ -36,30 +36,30 @@ import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
|
||||||
public enum FCDotAPL0127DashP7C implements FourCornerDotColleZero33 {
|
public enum FCDotAPL0127DashP7C implements FourCornerDotColleZero33 {
|
||||||
|
|
||||||
/// SL720000
|
/// SL720000
|
||||||
EPSILON('∊'),
|
__EPSILON(' '),
|
||||||
/// NEW from dynslog APL
|
/// NEW from dynslog APL
|
||||||
LEFT_SHOE_UNDERBAR('⊆'),
|
__LEFT_SHOE_UNDERBAR(' '),
|
||||||
/// SL420000
|
/// SL420000
|
||||||
LEFT_SHOE('⊂'),
|
__LEFT_SHOE(' '),
|
||||||
/// SL740000
|
/// SL740000
|
||||||
RHO('⍴'),
|
__RHO(' '),
|
||||||
/// NEW from dynlog APL
|
/// NEW from dynlog APL
|
||||||
MINUS_COMMA('⍪'),
|
MINUS_COMMA('⍪'),
|
||||||
|
|
||||||
/// --------- Left over from IBM APL
|
/// --------- Left over from IBM APL
|
||||||
|
|
||||||
/// SL210000
|
/// SL210000
|
||||||
UP_SHOE_NULL('⍝'),
|
__UP_SHOE_NULL(' '),
|
||||||
/// SL630000
|
/// SL630000
|
||||||
OVERBAR('‾'),
|
OVERBAR('‾'),
|
||||||
/// SL710000
|
/// SL710000
|
||||||
ALPHA('⍺'),
|
__ALPHA(' '),
|
||||||
/// SL750000
|
/// SL750000
|
||||||
OMEGA('⍵'),
|
__OMEGA(' '),
|
||||||
|
|
||||||
|
|
||||||
/// SL040000
|
/// SL040000
|
||||||
DEL_TILDE('⍫'), /// === ⎕LOCK
|
__DEL_TILDE(' '), /// === ⎕LOCK
|
||||||
/// SL130000
|
/// SL130000
|
||||||
QUAD_QUOTE('⍞'), // GNU APL: stdin and debug out
|
QUAD_QUOTE('⍞'), // GNU APL: stdin and debug out
|
||||||
/// SL270000
|
/// SL270000
|
||||||
|
|
@ -69,23 +69,23 @@ public enum FCDotAPL0127DashP7C implements FourCornerDotColleZero33 {
|
||||||
/// SL320000
|
/// SL320000
|
||||||
DIAERESIS_DOT('∵'), // each item
|
DIAERESIS_DOT('∵'), // each item
|
||||||
// SL330000
|
// SL330000
|
||||||
DELTA_UNDERBAR('⍙'), // GNU APL: user var: starts (A-Z) or one of the 3 characters _, ∆ , or ⍙
|
__DELTA_UNDERBAR(' '), // GNU APL: user var: starts (A-Z) or one of the 3 characters _, ∆ , or ⍙
|
||||||
/// SL370000
|
/// SL370000
|
||||||
LESS_GREATER('⋄'), // each stmt
|
LESS_GREATER('⋄'), // each stmt
|
||||||
/// SL480000
|
/// SL480000
|
||||||
CIRCLE_PLUS('⊕'), // group
|
__CIRCLE_PLUS(' '), // group
|
||||||
/// SL490000
|
/// SL490000
|
||||||
CIRCLE_TIMES('⊗'), // index of
|
__CIRCLE_TIMES(' '), // index of
|
||||||
|
|
||||||
OPEN_19('?'),
|
OPEN_19(' '),
|
||||||
OPEN_20('?'),
|
OPEN_20(' '),
|
||||||
OPEN_21('?'),
|
OPEN_21(' '),
|
||||||
OPEN_22('?'),
|
OPEN_22(' '),
|
||||||
OPEN_23('?'),
|
OPEN_23(' '),
|
||||||
OPEN_24('?'),
|
OPEN_24(' '),
|
||||||
OPEN_25('?'),
|
OPEN_25(' '),
|
||||||
OPEN_26('?'),
|
OPEN_26(' '),
|
||||||
OPEN_27('?'),
|
OPEN_27(' '),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,29 +25,22 @@ package org.x4o.fc18.zion7;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.x4o.fc18.cake2.FourCornerDotCake;
|
|
||||||
|
|
||||||
/// Handles the main lexer four corner cake strobes.
|
/// Handles the main lexer four corner cake strobes.
|
||||||
///
|
///
|
||||||
/// @author Willem Cazander
|
/// @author Willem Cazander
|
||||||
/// @version 1.0 Jan 09, 2025
|
/// @version 1.0 Jan 09, 2025
|
||||||
public interface FourCornerZion7Candlelier {
|
public interface FourCornerZion7Candlelier {
|
||||||
|
|
||||||
// TODO: remove dot cake enum and change offsets to full cake points
|
/// Single word cake point.
|
||||||
// (and remove duplicate list objects like;)
|
void strobeWord(int cakePoint);
|
||||||
// maybe remove cakeSliceStart as that is not needed for write support, (is already in fire)
|
|
||||||
//void strobeWords(List<Integer> text, int textStart, int textStop, int cakeSliceStart);
|
|
||||||
|
|
||||||
/// Single word from slice.
|
/// Block of word cake points.
|
||||||
void strobeWord(FourCornerDotCake slice, int offset);
|
void strobeWords(List<Integer> cakePoints);
|
||||||
|
|
||||||
/// Block of relative word slice offsets.
|
|
||||||
void strobeWords(FourCornerDotCake slice, List<Integer> offsets);
|
|
||||||
|
|
||||||
/// 1152 bit fractions of two 576 bit numbers.
|
/// 1152 bit fractions of two 576 bit numbers.
|
||||||
void strobeNCR1632(BigInteger denominator, BigInteger numerator);
|
void strobeNCR1632(BigInteger denominator, BigInteger numerator);
|
||||||
|
|
||||||
/// Allows a 6 bit computer to use the nether,fractions or unicode.
|
/// Allows a 6 bit computer to use the full FC18 space for nether or fractions.
|
||||||
void strobeRecursiveCake(List<Integer> cakePoints);
|
void strobeRecursiveCake(List<Integer> cakePoints);
|
||||||
|
|
||||||
/// Octal sand walker, with an 72 to 576 bit mime-type rhythm header.
|
/// Octal sand walker, with an 72 to 576 bit mime-type rhythm header.
|
||||||
|
|
@ -59,11 +52,11 @@ public interface FourCornerZion7Candlelier {
|
||||||
interface Adapter extends FourCornerZion7Candlelier {
|
interface Adapter extends FourCornerZion7Candlelier {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
default void strobeWords(FourCornerDotCake slice, List<Integer> offsets) {
|
default void strobeWord(int cakePoint) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
default void strobeWord(FourCornerDotCake slice, int offset) {
|
default void strobeWords(List<Integer> cakePoints) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
|
|
@ -24,20 +24,18 @@ package org.x4o.fc18.zion7;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0;
|
|
||||||
|
|
||||||
/// Handles the lexer salah sequence strobes.
|
/// Handles the lexer salah sequence strobes.
|
||||||
///
|
///
|
||||||
/// @author Willem Cazander
|
/// @author Willem Cazander
|
||||||
/// @version 1.0 Jan 11, 2025
|
/// @version 1.0 Jan 11, 2025
|
||||||
public interface FourCornerZion7SalahSequence extends FourCornerZion7Candlelier {
|
public interface FourCornerZion7SalahSequence extends FourCornerZion7Candlelier {
|
||||||
|
|
||||||
void strobeSalahSequence(FCDotDEC2701DashPX0 type, List<List<Integer>> arguments);
|
void strobeSalahSequence(int type, List<List<Integer>> arguments);
|
||||||
|
|
||||||
interface Adapter extends FourCornerZion7SalahSequence, FourCornerZion7Candlelier.Adapter {
|
interface Adapter extends FourCornerZion7SalahSequence, FourCornerZion7Candlelier.Adapter {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
default void strobeSalahSequence(FCDotDEC2701DashPX0 type, List<List<Integer>> arguments) {
|
default void strobeSalahSequence(int type, List<List<Integer>> arguments) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,14 +20,66 @@
|
||||||
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
* 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.
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
package org.x4o.fc18.zion7;
|
package org.x4o.fc18.zion7;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0;
|
||||||
|
|
||||||
/// Write steno for zion.
|
/// Write steno for zion.
|
||||||
///
|
///
|
||||||
/// @author Willem Cazander
|
/// @author Willem Cazander
|
||||||
/// @version 1.0 Jan 11, 2025
|
/// @version 1.0 Jan 11, 2025
|
||||||
public class FourCornerZionStenoGrapher {
|
public class FourCornerZionStenoGrapher {
|
||||||
|
|
||||||
|
private final List<Integer> out;
|
||||||
|
|
||||||
|
public FourCornerZionStenoGrapher(List<Integer> out) {
|
||||||
|
this.out = Objects.requireNonNull(out);
|
||||||
|
}
|
||||||
|
|
||||||
|
class FourCornerWriter implements FourCornerZion7AlphaOmega,FourCornerZion7SalahSequence {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeDocumentAlpha() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeDocumentOmega() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeWord(int cakePoint) {
|
||||||
|
out.add(cakePoint);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeWords(List<Integer> cakePoints) {
|
||||||
|
out.addAll(cakePoints);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeNCR1632(BigInteger denominator, BigInteger numerator) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeRecursiveCake(List<Integer> cakePoints) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeSandWalker(List<Integer> rhythm) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeSandWorm(List<Integer> spice) {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void strobeSalahSequence(int type, List<List<Integer>> arguments) {
|
||||||
|
FCDotDEC2701DashPX0 cdcDECMode = FCDotDEC2701DashPX0.valueOf(type);
|
||||||
|
}
|
||||||
|
|
||||||
public void write() {
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,8 @@ import java.util.Optional;
|
||||||
import java.util.PrimitiveIterator;
|
import java.util.PrimitiveIterator;
|
||||||
|
|
||||||
import org.x4o.fc18.cake2.FourCornerDotCake;
|
import org.x4o.fc18.cake2.FourCornerDotCake;
|
||||||
|
import org.x4o.fc18.cake2.flag4.FCDotF4TTY0001DashNL;
|
||||||
|
import org.x4o.fc18.cake2.flag4.FCDotF4TXT0001DashSP;
|
||||||
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
|
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
|
||||||
import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D;
|
import org.x4o.fc18.cake2.zero33.dec1.FCDotCMD5401Dash2D;
|
||||||
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC0801DashE10;
|
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC0801DashE10;
|
||||||
|
|
@ -303,20 +305,21 @@ public class FourCornerZionStenoLexer {
|
||||||
|
|
||||||
static class StenoScannerWordCakeSlice extends StenoScanner {
|
static class StenoScannerWordCakeSlice extends StenoScanner {
|
||||||
|
|
||||||
private final FourCornerDotCake cakeSlice;
|
//private final FourCornerDotCake cakeSlice;
|
||||||
|
|
||||||
public StenoScannerWordCakeSlice(FourCornerDotCake cakeSlice) {
|
public StenoScannerWordCakeSlice(FourCornerDotCake cakeSlice) {
|
||||||
super(cakeSlice);
|
super(cakeSlice);
|
||||||
this.cakeSlice = Objects.requireNonNull(cakeSlice);
|
//this.cakeSlice = Objects.requireNonNull(cakeSlice);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void process(FourCornerZionStenoLexer lexer, int idxFirst, int idxLast) {
|
public void process(FourCornerZionStenoLexer lexer, int idxFirst, int idxLast) {
|
||||||
List<Integer> offsets = new ArrayList<>();
|
// List<Integer> offsets = new ArrayList<>();
|
||||||
for (int i = idxFirst; i <= idxLast; i++) {
|
// for (int i = idxFirst; i <= idxLast; i++) {
|
||||||
offsets.add(lexer.input.get(i) - blockStart);
|
// offsets.add(lexer.input.get(i) - blockStart);
|
||||||
}
|
// }
|
||||||
lexer.handler.strobeWords(cakeSlice, offsets);
|
// lexer.handler.strobeWords(cakeSlice, offsets);
|
||||||
|
lexer.handler.strobeWords(lexer.input.subList(idxFirst, idxLast + 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -517,11 +520,12 @@ public class FourCornerZionStenoLexer {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
int cdcDECPoint = lexer.input.get(lexer.cdcDECScanIndex);
|
int cdcDECPoint = lexer.input.get(lexer.cdcDECScanIndex);
|
||||||
if (FourCornerDotCake.FC_DEC2701_PX0.contains(cdcDECPoint)) {
|
lexer.handler.strobeWord(cdcDECPoint);
|
||||||
lexer.handler.strobeWord(FourCornerDotCake.FC_DEC2701_PX0, cdcDECPoint - FourCornerDotCake.FC_DEC2701_PX0.getStart());
|
// if (FourCornerDotCake.FC_DEC2701_PX0.contains(cdcDECPoint)) {
|
||||||
} else {
|
// lexer.handler.strobeWord(FourCornerDotCake.FC_DEC2701_PX0, cdcDECPoint - FourCornerDotCake.FC_DEC2701_PX0.getStart());
|
||||||
lexer.handler.strobeWord(FourCornerDotCake.FC_CDC1604_P6, cdcDECPoint);
|
// } else {
|
||||||
}
|
// lexer.handler.strobeWord(FourCornerDotCake.FC_CDC1604_P6, cdcDECPoint);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -603,7 +607,7 @@ public class FourCornerZionStenoLexer {
|
||||||
if (readOK == false) {
|
if (readOK == false) {
|
||||||
return true; // point is eaten
|
return true; // point is eaten
|
||||||
}
|
}
|
||||||
lexer.handlerSalahSequence.strobeSalahSequence(cdcDECMode, args);
|
lexer.handlerSalahSequence.strobeSalahSequence(cdcDECMode.ordinal(), args);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (FCDotDEC2701DashPX0.ESC68_2PIE9C.equals(cdcDECMode)) {
|
if (FCDotDEC2701DashPX0.ESC68_2PIE9C.equals(cdcDECMode)) {
|
||||||
|
|
@ -654,7 +658,8 @@ public class FourCornerZionStenoLexer {
|
||||||
lexer.decModeReset();
|
lexer.decModeReset();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
lexer.handler.strobeWord(displayCake, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
|
//lexer.handler.strobeWord(displayCake, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
|
||||||
|
lexer.handler.strobeWord(displayCake.getStart() + cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -681,7 +686,8 @@ public class FourCornerZionStenoLexer {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (FCDotDEC0801DashE10.E10_CDC1604_P6.equals(lexer.cdcDECModeE10)) {
|
if (FCDotDEC0801DashE10.E10_CDC1604_P6.equals(lexer.cdcDECModeE10)) {
|
||||||
lexer.handler.strobeWord(FourCornerDotCake.FC_CDC1604_P6, cdcPoint); // not A based offset here
|
lexer.handler.strobeWord(cdcPoint); // not A based offset here
|
||||||
|
//lexer.handler.strobeWord(FourCornerDotCake.FC_CDC1604_P6, cdcPoint); // not A based offset here
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
FourCornerDotCake displayCake = lexer.cdcDECModeE10.displayCake();
|
FourCornerDotCake displayCake = lexer.cdcDECModeE10.displayCake();
|
||||||
|
|
@ -689,7 +695,8 @@ public class FourCornerZionStenoLexer {
|
||||||
lexer.decModeReset();
|
lexer.decModeReset();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
lexer.handler.strobeWord(displayCake, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
|
//lexer.handler.strobeWord(displayCake, cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
|
||||||
|
lexer.handler.strobeWord(displayCake.getStart() + cdcPoint - FCDotCDC1604DashP6.NX01_A.ordinal());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -704,7 +711,8 @@ public class FourCornerZionStenoLexer {
|
||||||
FCDotCMD5401Dash2D cmdMode = cmdModeOpt.get();
|
FCDotCMD5401Dash2D cmdMode = cmdModeOpt.get();
|
||||||
if (FCDotCMD5401Dash2D.CMD_F4TXT0001_SP.equals(cmdMode)) {
|
if (FCDotCMD5401Dash2D.CMD_F4TXT0001_SP.equals(cmdMode)) {
|
||||||
lexer.decModeReset();
|
lexer.decModeReset();
|
||||||
lexer.handler.strobeWord(FourCornerDotCake.FC_F4TXT0001_SP, 0); // white space
|
//lexer.handler.strobeWord(FourCornerDotCake.FC_F4TXT0001_SP, 0); // white space
|
||||||
|
lexer.handler.strobeWord(FCDotF4TXT0001DashSP.SPANISH_PEACE.cakePointDotIndex()); // white space
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (FCDotCMD5401Dash2D.CMD_F4TTY0001_NL.equals(cmdMode)) {
|
if (FCDotCMD5401Dash2D.CMD_F4TTY0001_NL.equals(cmdMode)) {
|
||||||
|
|
@ -712,7 +720,8 @@ public class FourCornerZionStenoLexer {
|
||||||
lexer.currLine++;
|
lexer.currLine++;
|
||||||
lexer.currCol = 0;
|
lexer.currCol = 0;
|
||||||
lexer.fireSignals.fireStateLine(lexer.currLine);
|
lexer.fireSignals.fireStateLine(lexer.currLine);
|
||||||
lexer.handler.strobeWord(FourCornerDotCake.FC_F4TTY0001_NL, 0); // new line
|
//lexer.handler.strobeWord(FourCornerDotCake.FC_F4TTY0001_NL, 0); // new line
|
||||||
|
lexer.handler.strobeWord(FCDotF4TTY0001DashNL.NETHER_LINE.cakePointDotIndex()); // new line
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
lexer.decModeReset();
|
lexer.decModeReset();
|
||||||
|
|
@ -758,7 +767,8 @@ public class FourCornerZionStenoLexer {
|
||||||
sliceBase = FourCornerDotCake.FC_PIE9D_01.ordinal();
|
sliceBase = FourCornerDotCake.FC_PIE9D_01.ordinal();
|
||||||
}
|
}
|
||||||
FourCornerDotCake slice = FourCornerDotCake.valueOf(terminatorOffZero + sliceBase);
|
FourCornerDotCake slice = FourCornerDotCake.valueOf(terminatorOffZero + sliceBase);
|
||||||
lexer.handler.strobeWord(slice, numberIdxOffZero);
|
//lexer.handler.strobeWord(slice, numberIdxOffZero);
|
||||||
|
lexer.handler.strobeWord(slice.getStart() + numberIdxOffZero);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,270 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2004-2014, Willem Cazander
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 org.x4o.fc18.cake2.zero33;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enum to convert APL to FC18.
|
||||||
|
*
|
||||||
|
* TODO: finish write when needed..
|
||||||
|
*
|
||||||
|
* @author Willem Cazander
|
||||||
|
* @version 1.0 Jul 30, 2025
|
||||||
|
*/
|
||||||
|
public enum FCDotAPL {
|
||||||
|
|
||||||
|
|
||||||
|
/// SL080000 One is pi
|
||||||
|
CIRCLE('○'),
|
||||||
|
|
||||||
|
// === 2 + 6 boxes
|
||||||
|
|
||||||
|
/// SL360000
|
||||||
|
QUAD('⎕'),
|
||||||
|
/// SL260000
|
||||||
|
SQUISH_QUAD('⌷'),
|
||||||
|
/// SL140000
|
||||||
|
QUAD_DIVIDE('⌹'),
|
||||||
|
/// NEW from Dynlog APL
|
||||||
|
QUAD_DOT2('⍠'),
|
||||||
|
/// NEW from Dynlog APL
|
||||||
|
QUAD_BOX3('⌸'),
|
||||||
|
/// NEW from Dynlog APl
|
||||||
|
QUAD_QUAD('⌺'),
|
||||||
|
|
||||||
|
// === 8 directions T arrows
|
||||||
|
|
||||||
|
/// SL610000
|
||||||
|
UP_ARROW('↑'),
|
||||||
|
/// SL600000
|
||||||
|
RIGHT_ARROW('→'),
|
||||||
|
/// SL620000
|
||||||
|
DOWN_ARROW('↓'),
|
||||||
|
/// SL590000
|
||||||
|
LEFT_ARROW('←'),
|
||||||
|
/// SL220000
|
||||||
|
UP_TACK('⊤'),
|
||||||
|
/// SL350000
|
||||||
|
RIGHT_TACK('⊣'),
|
||||||
|
/// SL230000
|
||||||
|
DOWN_TACK('⊥'),
|
||||||
|
/// SL340000
|
||||||
|
LEFT_TACK('⊢'),
|
||||||
|
|
||||||
|
// === 8 mirrors
|
||||||
|
|
||||||
|
/// SL190000
|
||||||
|
DOWN_TACK_JOT('⍎'),
|
||||||
|
/// SL200000
|
||||||
|
UP_TACK_JOT('⍕'),
|
||||||
|
/// SL150000
|
||||||
|
SLASH_BAR('⌿'),
|
||||||
|
/// SL160000
|
||||||
|
SLOPE_BAR('⍀'),
|
||||||
|
/// SL010000
|
||||||
|
UP_STILE('⌈'),
|
||||||
|
/// SL020000
|
||||||
|
DOWN_STILE('⌊'),
|
||||||
|
/// SL030000 (used in GNU GPL)
|
||||||
|
DEL('∇'),
|
||||||
|
/// SL060000 (used in GNU GPL)
|
||||||
|
DELTA('∆'),
|
||||||
|
|
||||||
|
|
||||||
|
// === 8 Oooohhhs
|
||||||
|
|
||||||
|
/// SL110000
|
||||||
|
CIRCLE_STAR('⍟'),
|
||||||
|
/// SL090000
|
||||||
|
CIRCLE_STILE('⌽'),
|
||||||
|
/// SL120000
|
||||||
|
CIRCLE_BAR('⊖'),
|
||||||
|
/// SL100000
|
||||||
|
CIRCLE_SLOPE('⍉'),
|
||||||
|
|
||||||
|
//--------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
/// NEW from dynlog APL
|
||||||
|
CIRCLE_DOT_XL('⍥'),
|
||||||
|
/// NEW from dynlog APL
|
||||||
|
CIRLCE_DOT('⍤'),
|
||||||
|
/// SL250000
|
||||||
|
JOT('∘'),
|
||||||
|
/// NEW from dynlog APL
|
||||||
|
STAR_DOT('⍣'),
|
||||||
|
|
||||||
|
// === ALGOL_60 <arithmetic operator> ::= + | - | × | / | ÷ | ↑
|
||||||
|
|
||||||
|
// SL790000 = Plus = FCDotCDC1604DashP6._PLUS
|
||||||
|
// SL690000 = Bar = FCDotCDC1604DashP6._MINUS
|
||||||
|
/// SL550000
|
||||||
|
TIMES('×'),
|
||||||
|
// SL760000 = Slash = FCDotCDC1604DashP6.BAR_V_RIGHT
|
||||||
|
/// SL540000
|
||||||
|
DIVIDE('÷'),
|
||||||
|
|
||||||
|
// === ALGOL_60 <relational operator> ::= <, ≤, =, ≥, >, ≠
|
||||||
|
|
||||||
|
// SL520000 = Less than = FCDotCDC1604DashP6.TAG_COMPARE_LEFT
|
||||||
|
/// SL560000
|
||||||
|
NOT_GREATER('≤'),
|
||||||
|
// SL810000 = Equal = FCDotCDC1604DashP6._EQUALS
|
||||||
|
/// SL570000
|
||||||
|
NOT_LESS('≥'),
|
||||||
|
// SL530000 = Greater than = FCDotCDC1604DashP6.TAG_COMPARE_RIGHT
|
||||||
|
/// SL820000
|
||||||
|
NOT_EQUAL('≠'),
|
||||||
|
/// SL050000
|
||||||
|
DEL_STILE('⍒'), // grade down
|
||||||
|
/// SL070000
|
||||||
|
DELTA_STILE('⍋'),
|
||||||
|
|
||||||
|
// === ALGOL_60 <logical operator> ::= ≡ | ⊃ | ∧ | ∨ | ¬
|
||||||
|
|
||||||
|
/// SL300000
|
||||||
|
EQUALS_UNDERBAR('≡'),
|
||||||
|
/// SL430000
|
||||||
|
RIGHT_SHOE('⊃'),
|
||||||
|
/// SL510000
|
||||||
|
UP_CARET('∧'),
|
||||||
|
/// SL500000
|
||||||
|
DOWN_CARET('∨'),
|
||||||
|
/// NEW: This comes from ALGOL_60 chars.
|
||||||
|
ALGOL_NOT('¬'),
|
||||||
|
/// SL170000
|
||||||
|
UP_CARET_TILDE('⍲'), // NAND
|
||||||
|
/// SL180000
|
||||||
|
DOWN_CARET_TILDE('⍱'),
|
||||||
|
/// NEW: from Dynalog_APL
|
||||||
|
EQUALS_UNDERNOT('≢'),
|
||||||
|
|
||||||
|
/// === Left over from modern APL for Zilog Z8000 see https://aplwiki.com/wiki/Dyalog_APL
|
||||||
|
|
||||||
|
/// SL240000
|
||||||
|
IBEAM_TACK('⌶'),
|
||||||
|
/// NEW from DYNA
|
||||||
|
DOTTED_TILDE('⍨'),
|
||||||
|
/// SL450000
|
||||||
|
DIAERESIS('¨'),
|
||||||
|
// SL870000
|
||||||
|
EPSILON_UNDERBAR('⍷'),
|
||||||
|
// SL860000 = Iota Underbar
|
||||||
|
IOTA_UNDERBAR('⍸'),
|
||||||
|
/// SL730000
|
||||||
|
IOTA('⍳'),
|
||||||
|
/// SL410000
|
||||||
|
DOWN_SHOE('∪'),
|
||||||
|
/// SL400000
|
||||||
|
UP_SHOE('∩'),
|
||||||
|
|
||||||
|
// ------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
/// SL720000
|
||||||
|
EPSILON('∊'),
|
||||||
|
/// NEW from dynslog APL
|
||||||
|
LEFT_SHOE_UNDERBAR('⊆'),
|
||||||
|
/// SL420000
|
||||||
|
LEFT_SHOE('⊂'),
|
||||||
|
/// SL740000
|
||||||
|
RHO('⍴'),
|
||||||
|
/// NEW from dynlog APL
|
||||||
|
MINUS_COMMA('⍪'),
|
||||||
|
|
||||||
|
/// --------- Left over from IBM APL
|
||||||
|
|
||||||
|
/// SL210000
|
||||||
|
UP_SHOE_NULL('⍝'),
|
||||||
|
/// SL630000
|
||||||
|
OVERBAR('‾'),
|
||||||
|
/// SL710000
|
||||||
|
ALPHA('⍺'),
|
||||||
|
/// SL750000
|
||||||
|
OMEGA('⍵'),
|
||||||
|
|
||||||
|
|
||||||
|
/// SL040000
|
||||||
|
DEL_TILDE('⍫'), /// === ⎕LOCK
|
||||||
|
/// SL130000
|
||||||
|
QUAD_QUOTE('⍞'), // GNU APL: stdin and debug out
|
||||||
|
/// SL270000
|
||||||
|
QUAD_JOT('⌻'), // file meta info
|
||||||
|
/// SL280000
|
||||||
|
QUAD_SLOPE('⍂'), // was expand
|
||||||
|
/// SL320000
|
||||||
|
DIAERESIS_DOT('∵'), // each item
|
||||||
|
// SL330000
|
||||||
|
DELTA_UNDERBAR('⍙'), // GNU APL: user var: starts (A-Z) or one of the 3 characters _, ∆ , or ⍙
|
||||||
|
/// SL370000
|
||||||
|
LESS_GREATER('⋄'), // each stmt
|
||||||
|
/// SL480000
|
||||||
|
CIRCLE_PLUS('⊕'), // group
|
||||||
|
/// SL490000
|
||||||
|
CIRCLE_TIMES('⊗'), // index of
|
||||||
|
|
||||||
|
OPEN_19('?'),
|
||||||
|
OPEN_20('?'),
|
||||||
|
OPEN_21('?'),
|
||||||
|
OPEN_22('?'),
|
||||||
|
OPEN_23('?'),
|
||||||
|
OPEN_24('?'),
|
||||||
|
OPEN_25('?'),
|
||||||
|
OPEN_26('?'),
|
||||||
|
OPEN_27('?'),
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// SL290000 = Unsupported = Ampersand Underbar
|
||||||
|
// SL310000 = Unsupported = OUT Symbol = Not used by IBM ?
|
||||||
|
// SL380000 = Stile = FCDotCDC1604DashP6.BAR_VERTICAL
|
||||||
|
// SL390000 = undefined
|
||||||
|
// SL440000 = Underbar = FCDotCDC1604DashP6.BAR_UNDER
|
||||||
|
// SL460000 = Tilde = FCDotCDC1604DashP6._TILDE
|
||||||
|
// SL470000 = undefined
|
||||||
|
// SL580000 = Quote Dot = FCDotCDC1604DashP6._EXCLAMATION
|
||||||
|
// SL640000 = Slope = FCDotCDC1604DashP6.BAR_V_LEFT
|
||||||
|
// SL650000 = Star = FCDotCDC1604DashP6._ASTRIKS
|
||||||
|
// SL660000 = Quota = FCDotCDC1604DashP6._APOSTROPHE
|
||||||
|
// SL670000 = Left Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_LEFT
|
||||||
|
// SL680000 = Right Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_RIGHT
|
||||||
|
// SL700000 = Query = FCDotCDC1604DashP6._QUESTION
|
||||||
|
// SL770000 = Left Bracket = FCDotCDC1604DashP6.TAG_SQUARE_LEFT
|
||||||
|
// SL780000 = Right Bracket = FCDotCDC1604DashP6.TAG_SQUARE_RIGHT
|
||||||
|
// SL800000 = Semicolon = FCDotCDC1604DashP6._SEMICOLON
|
||||||
|
// SL830000 = Colon = FCDotCDC1604DashP6._COLON
|
||||||
|
// SL840000 = Dot = FCDotCDC1604DashP6._DOT
|
||||||
|
// SL850000 = Comma = FCDotCDC1604DashP6._COMMA
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;
|
||||||
|
private final int codePoint;
|
||||||
|
|
||||||
|
private FCDotAPL(int codePoint) {
|
||||||
|
this.codePoint = codePoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int codePoint() {
|
||||||
|
return codePoint;
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue