1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2016-01-03 21:27:38 -05:00
parent 9509363f46
commit 096045614c
647 changed files with 11693 additions and 7648 deletions

View File

@@ -22,7 +22,7 @@ public class Pfunc_count extends Pf_func_base {
@Override public int Id() {return Xol_kwd_grp_.Id_strx_count;}
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_count().Name_(name);}
@Override public boolean Func_require_colon_arg() {return true;}
@Override public void Func_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, Bry_bfr bfr) {
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] str = Eval_argx(ctx, src, caller, self);
int self_args_len = self.Args_len();
byte[] find = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 0, null); if (find == null) find = Byte_ascii.Space_bry;

View File

@@ -22,7 +22,7 @@ public class Pfunc_explode extends Pf_func_base {
@Override public int Id() {return Xol_kwd_grp_.Id_strx_explode;}
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_explode().Name_(name);}
@Override public boolean Func_require_colon_arg() {return true;}
@Override public void Func_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, Bry_bfr bfr) {
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
// * {{#explode:String | delimiter | position | limit}}
byte[] s = Eval_argx(ctx, src, caller, self);
int args_len = self.Args_len();

View File

@@ -22,9 +22,9 @@ public class Pfunc_len extends Pf_func_base {
@Override public int Id() {return Xol_kwd_grp_.Id_strx_len;}
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_len().Name_(name);}
@Override public boolean Func_require_colon_arg() {return true;}
@Override public void Func_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, Bry_bfr trg) {
byte[] str = Eval_argx(ctx, src, caller, self);
int char_count = gplx.core.intls.Utf8_.Len_of_bry(str);
trg.Add_int_variable(char_count);
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] argx = Eval_argx(ctx, src, caller, self);
int char_count = gplx.core.intls.Utf8_.Len_of_bry(argx);
bfr.Add_int_variable(char_count);
}
}

View File

@@ -22,14 +22,14 @@ public class Pfunc_pos extends Pf_func_base {
@Override public int Id() {return Xol_kwd_grp_.Id_strx_pos;}
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_pos().Name_(name);}
@Override public boolean Func_require_colon_arg() {return true;}
@Override public void Func_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, Bry_bfr trg) {
byte[] str = Eval_argx(ctx, src, caller, self);
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] argx = Eval_argx(ctx, src, caller, self);
int self_args_len = self.Args_len();
byte[] find = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 0, Byte_ascii.Space_bry); // MW: use " " if find is missing
byte[] offset_bry = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 1, null);
int offset = offset_bry == null ? 0 : Bry_.To_int_or_neg1(offset_bry);
int pos = Bry_find_.Find_fwd(str, find, offset);
int pos = Bry_find_.Find_fwd(argx, find, offset);
if (pos != Bry_find_.Not_found)
trg.Add_int_variable(pos);
bfr.Add_int_variable(pos);
}
}

View File

@@ -22,8 +22,8 @@ public class Pfunc_replace extends Pf_func_base {
@Override public int Id() {return Xol_kwd_grp_.Id_strx_replace;}
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_replace().Name_(name);}
@Override public boolean Func_require_colon_arg() {return true;}
@Override public void Func_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, Bry_bfr trg) {
byte[] str = Eval_argx(ctx, src, caller, self);
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] argx = Eval_argx(ctx, src, caller, self);
int self_args_len = self.Args_len();
byte[] find = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 0, null);
if (Bry_.Len_eq_0(find)) find = Byte_ascii.Space_bry; // NOTE: MW defaults empty finds to space (" "); note that leaving it as "" would cause Replace to loop infinitely
@@ -31,8 +31,8 @@ public class Pfunc_replace extends Pf_func_base {
byte[] limit_bry = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 2, null);
int limit = limit_bry == null ? Int_.Max_value : Bry_.To_int_or_neg1(limit_bry);
Bry_bfr tmp_bfr = Xoa_app_.Utl__bfr_mkr().Get_b128();
byte[] rv = Bry_.Replace(tmp_bfr, str, find, repl, 0, str.length, limit);
byte[] rv = Bry_.Replace(tmp_bfr, argx, find, repl, 0, argx.length, limit);
tmp_bfr.Mkr_rls();
trg.Add(rv);
bfr.Add(rv);
}
}

View File

@@ -22,14 +22,13 @@ public class Pfunc_rpos extends Pf_func_base {
@Override public int Id() {return Xol_kwd_grp_.Id_strx_rpos;}
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_rpos().Name_(name);}
@Override public boolean Func_require_colon_arg() {return true;}
@Override public void Func_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, Bry_bfr trg) {
byte[] str = Eval_argx(ctx, src, caller, self);
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] argx = Eval_argx(ctx, src, caller, self);
int self_args_len = self.Args_len();
byte[] find = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 0, Byte_ascii.Space_bry); // MW: use " " if find is missing
byte[] offset_bry = Pf_func_.Eval_arg_or(ctx, src, caller, self, self_args_len, 1, null);
int offset = offset_bry == null ? str.length : Bry_.To_int_or_neg1(offset_bry);
int pos = Bry_find_.Find_bwd(str, find, offset);
if (pos == Bry_find_.Not_found) pos = -1;
trg.Add_int_variable(pos);
int offset = offset_bry == null ? argx.length : Bry_.To_int_or_neg1(offset_bry);
int pos = Bry_find_.Find_bwd(argx, find, offset); if (pos == Bry_find_.Not_found) pos = -1;
bfr.Add_int_variable(pos);
}
}

View File

@@ -22,7 +22,7 @@ public class Pfunc_sub extends Pf_func_base {
@Override public int Id() {return Xol_kwd_grp_.Id_strx_sub;}
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_sub().Name_(name);}
@Override public boolean Func_require_colon_arg() {return true;}
@Override public void Func_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, Bry_bfr bfr) {
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] s = Eval_argx(ctx, src, caller, self);
int self_args_len = self.Args_len();
int bgn = 0, len = Int_.Min_value;

View File

@@ -22,7 +22,7 @@ public class Pfunc_urldecode extends Pf_func_base {
@Override public int Id() {return Xol_kwd_grp_.Id_strx_urldecode;}
@Override public Pf_func New(int id, byte[] name) {return new Pfunc_urldecode().Name_(name);}
@Override public boolean Func_require_colon_arg() {return true;}
@Override public void Func_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Xot_invk self, Bry_bfr bfr) {
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {
byte[] encoded = Eval_argx(ctx, src, caller, self);
byte[] decoded = gplx.langs.htmls.encoders.Gfo_url_encoder_.Http_url.Decode(encoded);
bfr.Add(decoded);