mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
'v3.6.3.1'
This commit is contained in:
@@ -17,11 +17,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.langs.numbers; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
|
||||
import gplx.core.primitives.*; import gplx.core.btries.*;
|
||||
public class Xol_num_fmtr_base implements GfoInvkAble {
|
||||
public class Xol_num_fmtr_base implements Gfo_invk {
|
||||
private Btrie_fast_mgr dlm_trie = Btrie_fast_mgr.cs();
|
||||
private Xol_num_grp[] grp_ary = Xol_num_grp.Ary_empty; int grp_ary_len;
|
||||
private Gfo_num_fmt_wkr[] cache; int cache_len = 16;
|
||||
private Bry_bfr tmp = Bry_bfr.new_();
|
||||
private Bry_bfr tmp = Bry_bfr_.New();
|
||||
public boolean Standard() {return standard;} private boolean standard = true;
|
||||
public byte[] Dec_dlm() {return dec_dlm;} public Xol_num_fmtr_base Dec_dlm_(byte[] v) {this.dec_dlm = v; dlm_trie.Add_bry_byte(v, Raw_tid_dec); return this;} private byte[] dec_dlm = Dec_dlm_default;
|
||||
private byte[] grp_dlm;
|
||||
@@ -136,13 +136,13 @@ public class Xol_num_fmtr_base implements GfoInvkAble {
|
||||
if (ctx.Match(k, Invk_dec_dlm_)) this.Dec_dlm_(m.ReadBry("v")); // NOTE: must call mutator
|
||||
else if (ctx.Match(k, Invk_clear)) this.Clear();
|
||||
else if (ctx.Match(k, Invk_grps_add)) this.Grps_add(new Xol_num_grp(m.ReadBry("dlm"), m.ReadInt("digits"), m.ReadYn("repeat")));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Invk_dec_dlm_ = "dec_dlm_", Invk_clear = "clear", Invk_grps_add = "grps_add";
|
||||
private static final byte Raw_tid_dec = 0, Raw_tid_grp = 1;
|
||||
private static final byte[] Dec_dlm_default = new byte[] {Byte_ascii.Dot};
|
||||
public static final byte[] Grp_dlm_default = new byte[] {Byte_ascii.Comma};
|
||||
private static final byte[] Dec_dlm_default = new byte[] {Byte_ascii.Dot};
|
||||
public static final byte[] Grp_dlm_default = new byte[] {Byte_ascii.Comma};
|
||||
public static final byte Tid_format = 0, Tid_raw = 1, Tid_nosep = 2;
|
||||
}
|
||||
class Gfo_num_fmt_wkr {
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Xol_num_grp_fmtr_tst {
|
||||
}
|
||||
class Xol_num_grp_fmtr_fxt {
|
||||
private Xol_num_grp_fmtr grouper = new Xol_num_grp_fmtr();
|
||||
private Bry_bfr bfr = Bry_bfr.new_();
|
||||
private Bry_bfr bfr = Bry_bfr_.New();
|
||||
public void Reset() {}
|
||||
public void Test_fmt_regx(String raw, String expd) {
|
||||
byte[] actl = grouper.Fmt_regx(bfr, Bry_.new_a7(raw));
|
||||
|
||||
@@ -16,10 +16,10 @@ You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.langs.numbers; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
|
||||
public class Xol_num_mgr implements GfoInvkAble {
|
||||
public class Xol_num_mgr implements Gfo_invk {
|
||||
private boolean digits_translate;
|
||||
protected Bry_bfr tmp_bfr = Bry_bfr.reset_(32);
|
||||
private static final byte[] Comma_bry = Bry_.new_a7(",");
|
||||
protected Bry_bfr tmp_bfr = Bry_bfr_.Reset(32);
|
||||
private static final byte[] Comma_bry = Bry_.new_a7(",");
|
||||
public Xol_num_grp_fmtr Num_grp_fmtr() {return num_grp_fmtr;} private Xol_num_grp_fmtr num_grp_fmtr = new Xol_num_grp_fmtr();
|
||||
public Xol_transform_mgr Separators_mgr() {return separators_mgr;} private Xol_transform_mgr separators_mgr = new Xol_transform_mgr();
|
||||
public Xol_transform_mgr Digits_mgr() {return digits_mgr;} private Xol_transform_mgr digits_mgr = new Xol_transform_mgr();
|
||||
@@ -62,12 +62,12 @@ public class Xol_num_mgr implements GfoInvkAble {
|
||||
else if (ctx.Match(k, Invk_digits)) {digits_translate = true; return digits_mgr;} // NOTE: only langes with a digit_transform_table will call digits; DATE:2014-05-28
|
||||
else if (ctx.Match(k, Invk_digit_grouping_pattern)) return String_.new_u8(num_grp_fmtr.Digit_grouping_pattern());
|
||||
else if (ctx.Match(k, Invk_digit_grouping_pattern_)) num_grp_fmtr.Digit_grouping_pattern_(m.ReadBry("v"));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Invk_clear = "clear", Invk_separators = "separators"
|
||||
, Invk_digits = "digits", Invk_digit_grouping_pattern = "digit_grouping_pattern", Invk_digit_grouping_pattern_ = "digit_grouping_pattern_";
|
||||
public static final byte[]
|
||||
public static final byte[]
|
||||
Separators_key__grp = new byte[]{Byte_ascii.Comma}
|
||||
, Separators_key__dec = new byte[]{Byte_ascii.Dot}
|
||||
;
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.langs.numbers; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
|
||||
import gplx.core.btries.*;
|
||||
public class Xol_transform_mgr implements GfoInvkAble {
|
||||
public class Xol_transform_mgr implements Gfo_invk {
|
||||
private Btrie_fast_mgr trie_k_to_v = Btrie_fast_mgr.cs();
|
||||
private Btrie_fast_mgr trie_v_to_k = Btrie_fast_mgr.cs();
|
||||
private Ordered_hash hash = Ordered_hash_.New_bry();
|
||||
@@ -47,7 +47,7 @@ public class Xol_transform_mgr implements GfoInvkAble {
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_set)) Set(m.ReadBry("k"), m.ReadBry("v"));
|
||||
else if (ctx.Match(k, Invk_clear)) Clear();
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
else return Gfo_invk_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Invk_set = "set", Invk_clear = "clear";
|
||||
|
||||
Reference in New Issue
Block a user