1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

v1.10.1.1

This commit is contained in:
gnosygnu
2014-10-05 21:38:11 -04:00
parent 81c8e2554c
commit cd5a440404
111 changed files with 3365 additions and 1298 deletions

View File

@@ -142,6 +142,14 @@ public class Bry_ {
}
return rv;
}
public static boolean Ary_eq(byte[][] lhs, byte[][] rhs) {
int lhs_len = lhs.length;
int rhs_len = rhs.length;
if (lhs_len != rhs_len) return false;
for (int i = 0; i < lhs_len; ++i)
if (!Bry_.Eq(lhs[i], rhs[i])) return false;
return true;
}
public static byte[] Repeat_space(int len) {return Repeat(Byte_ascii.Space, len);}
public static byte[] Repeat(byte b, int len) {
byte[] rv = new byte[len];
@@ -689,6 +697,7 @@ public class Bry_ {
return Xto_int_or(ary, bgn, end_num, or);
}
public static float XtoFloatByPos(byte[] ary, int bgn, int end) {return Float_.parse_(String_.new_utf8_(ary, bgn, end));}
public static double Xto_double(byte[] bry) {return Double_.parse_(String_.new_utf8_(bry, 0, bry.length));}
public static double XtoDoubleByPosOr(byte[] ary, int bgn, int end, double or) {return Double_.parseOr_(String_.new_utf8_(ary, bgn, end), or);}
public static double XtoDoubleByPos(byte[] ary, int bgn, int end) {return Double_.parse_(String_.new_utf8_(ary, bgn, end));}
public static DecimalAdp XtoDecimalByPos(byte[] ary, int bgn, int end) {return DecimalAdp_.parse_(String_.new_utf8_(ary, bgn, end));}
@@ -1003,5 +1012,5 @@ public class Bry_ {
public static byte Get_at_end(byte[] v) {
int v_len = v.length;
return v_len == 0 ? Byte_ascii.Nil : v[v_len - 1];
}
}
}

View File

@@ -232,6 +232,7 @@ public class Bry_fmtr {
public static final Bry_fmtr Null = new Bry_fmtr().Fmt_("");
public static Bry_fmtr tmp_() {return new Bry_fmtr().Fmt_("").Keys_();}
public static Bry_fmtr new_(String fmt, String... keys) {return new Bry_fmtr().Fmt_(fmt).Keys_(keys);} // NOTE: keys may seem redundant, but are needed to align ordinals with proc; EX: fmt may be "~{A} ~{B}" or "~{B} ~{A}"; call will always be Bld(a, b); passing in "A", "B" guarantees A is 0 and B is 1;
public static Bry_fmtr new_(byte[] fmt, String... keys) {return new Bry_fmtr().Fmt_(fmt).Keys_(keys);} // NOTE: keys may seem redundant, but are needed to align ordinals with proc; EX: fmt may be "~{A} ~{B}" or "~{B} ~{A}"; call will always be Bld(a, b); passing in "A", "B" guarantees A is 0 and B is 1;
public static Bry_fmtr new_() {return new Bry_fmtr();}
public static Bry_fmtr keys_(String... keys) {return new Bry_fmtr().Keys_(keys);}
public static Bry_fmtr new_bry_(byte[] fmt, String... keys) {return new Bry_fmtr().Fmt_(fmt).Keys_(keys);}

View File

@@ -64,6 +64,7 @@ public interface GfoMsg {
Object ReadObjOr(String k, ParseAble parseAble, Object or);
String[]ReadStrAry(String k, String spr);
String[]ReadStrAryIgnore(String k, String spr, String ignore);
byte[][]ReadBryAry(String k, byte spr);
Object ReadValAt(int i);
Object CastObj(String k);
Object CastObjOr(String k, Object or);

View File

@@ -169,6 +169,7 @@ class GfoMsg_base implements GfoMsg {
public Object ReadObj(String k, ParseAble parseAble) {Object rv = ReadOr(k, null); if (rv == Nil) ThrowNotFound(k); return parse ? parseAble.ParseAsObj((String)rv) : rv;}
public Object ReadObjOr(String k, ParseAble parseAble, Object or) {Object rv = ReadOr(k, or) ; if (rv == Nil) return or ; return parse ? parseAble.ParseAsObj((String)rv) : rv;}
public String[] ReadStrAry(String k, String spr) {return String_.Split(ReadStr(k), spr);}
public byte[][] ReadBryAry(String k, byte spr) {return Bry_.Split(ReadBry(k), spr);}
public String[] ReadStrAryIgnore(String k, String spr, String ignore) {return String_.Split(String_.Replace(ReadStr(k), ignore, ""), spr);}
public Object ReadValAt(int i) {return Args_getAt(i).Val();}
@gplx.Virtual protected Object ReadOr(String k, Object defaultOr) {