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

v2.10.3.1

This commit is contained in:
gnosygnu
2015-10-18 22:17:57 -04:00
parent 8e18af05b6
commit 4f43f51b18
1935 changed files with 12500 additions and 12889 deletions

View File

@@ -190,7 +190,7 @@ public class Arg_bldr {
// itm.Dat_ary_(dat_end == dat_bgn ? Bry_.Empty : Bry_.Mid(src, dat_bgn, dat_end));
itm.Itm_static_(itm_is_static);
}
public static final Arg_bldr _ = new Arg_bldr(); Arg_bldr() {}
public static final Arg_bldr Instance = new Arg_bldr(); Arg_bldr() {}
}
/*
NOTE_1:mark tkn ignore unless wkr is prm;

View File

@@ -20,12 +20,12 @@ import gplx.core.btries.*; import gplx.xowa.langs.*;
public class Xop_brack_bgn_lxr implements Xop_lxr {
public int Lxr_tid() {return Xop_lxr_.Tid_brack_bgn;}
public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_bgn, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public void Init_by_lang(Xol_lang_itm lang, Btrie_fast_mgr core_trie) {}
public void Term(Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
Xop_tkn_itm tkn = tkn_mkr.Brack_bgn(bgn_pos, cur_pos);
ctx.Subs_add_and_stack(root, tkn);
return cur_pos;
}
public static final Xop_brack_bgn_lxr _ = new Xop_brack_bgn_lxr(); Xop_brack_bgn_lxr() {}
public static final Xop_brack_bgn_lxr Instance = new Xop_brack_bgn_lxr(); Xop_brack_bgn_lxr() {}
}

View File

@@ -20,7 +20,7 @@ import gplx.core.btries.*; import gplx.xowa.langs.*;
public class Xop_brack_end_lxr implements Xop_lxr {
public int Lxr_tid() {return Xop_lxr_.Tid_brack_end;}
public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Xop_tkn_.Lnki_end, this);}
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public void Init_by_lang(Xol_lang_itm lang, Btrie_fast_mgr core_trie) {}
public void Term(Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {
int acs_pos = ctx.Stack_idx_typ(Xop_tkn_itm_.Tid_brack_bgn);
@@ -30,5 +30,5 @@ public class Xop_brack_end_lxr implements Xop_lxr {
ctx.Subs_add(root, tkn);
return cur_pos;
}
public static final Xop_brack_end_lxr _ = new Xop_brack_end_lxr(); Xop_brack_end_lxr() {}
public static final Xop_brack_end_lxr Instance = new Xop_brack_end_lxr(); Xop_brack_end_lxr() {}
}

View File

@@ -21,10 +21,10 @@ import gplx.xowa.parsers.tblws.*;
public class Xop_curly_bgn_lxr implements Xop_lxr {
public int Lxr_tid() {return Xop_lxr_.Tid_curly_bgn;}
public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook, this);} public static final byte[] Hook = new byte[] {Byte_ascii.Curly_bgn, Byte_ascii.Curly_bgn};
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public void Init_by_lang(Xol_lang_itm lang, Btrie_fast_mgr core_trie) {}
public void Term(Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {return ctx.Curly().MakeTkn_bgn(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos);}
public static final Xop_curly_bgn_lxr _ = new Xop_curly_bgn_lxr(); Xop_curly_bgn_lxr() {}
public static final Xop_curly_bgn_lxr Instance = new Xop_curly_bgn_lxr(); Xop_curly_bgn_lxr() {}
public static Btrie_fast_mgr tmpl_bgn_trie_() { // hook sequences for adding new_line to tmpl return; "{|" "|-" ":" ";" "#" "*"; EX: "{{a}}" returns "*"; convert to "\n*"
Btrie_fast_mgr rv = Btrie_fast_mgr.cs();
rv.Add(Xop_tblw_lxr_ws.Hook_tb, Bry_.Empty);

View File

@@ -20,8 +20,8 @@ import gplx.core.btries.*; import gplx.xowa.langs.*;
public class Xop_curly_end_lxr implements Xop_lxr {
public int Lxr_tid() {return Xop_lxr_.Tid_curly_end;}
public void Init_by_wiki(Xowe_wiki wiki, Btrie_fast_mgr core_trie) {core_trie.Add(Hook, this);} public static final byte[] Hook = new byte[] {Byte_ascii.Curly_end, Byte_ascii.Curly_end};
public void Init_by_lang(Xol_lang lang, Btrie_fast_mgr core_trie) {}
public void Init_by_lang(Xol_lang_itm lang, Btrie_fast_mgr core_trie) {}
public void Term(Btrie_fast_mgr core_trie) {}
public int Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int bgn_pos, int cur_pos) {return ctx.Curly().MakeTkn_end(ctx, tkn_mkr, root, src, src_len, bgn_pos, cur_pos);}
public static final Xop_curly_end_lxr _ = new Xop_curly_end_lxr(); Xop_curly_end_lxr() {}
public static final Xop_curly_end_lxr Instance = new Xop_curly_end_lxr(); Xop_curly_end_lxr() {}
}

View File

@@ -147,7 +147,7 @@ public class Xop_curly_wkr implements Xop_ctx_wkr {
}
return lxr_end_pos;
}
private Xot_prm_wkr prm_wkr = Xot_prm_wkr._;
private Xot_prm_wkr prm_wkr = Xot_prm_wkr.Instance;
public static final byte[] Hook_prm_bgn = new byte[] {Byte_ascii.Curly_bgn, Byte_ascii.Curly_bgn, Byte_ascii.Curly_bgn}, Hook_prm_end = new byte[] {Byte_ascii.Curly_end, Byte_ascii.Curly_end, Byte_ascii.Curly_end};
}
/*

View File

@@ -35,6 +35,6 @@ public class Xop_tkn_print_tst {
Xot_fmtr_prm raw_fmtr = new Xot_fmtr_prm();
defn.Root().Tmpl_fmt(ctx, raw_bry, raw_fmtr);
raw_fmtr.Print(tst_Print_bb);
Tfds.Eq(raw, tst_Print_bb.Xto_str_and_clear());
Tfds.Eq(raw, tst_Print_bb.To_str_and_clear());
} private Bry_bfr tst_Print_bb = Bry_bfr.new_();
}

View File

@@ -30,5 +30,5 @@ class Xot_defn_null implements Xot_defn {
public Xot_defn Clone(int id, byte[] name) {return this;}
public int Cache_size() {return 0;}
public void Rls() {}
public static final Xot_defn_null _ = new Xot_defn_null(); Xot_defn_null() {}
public static final Xot_defn_null Instance = new Xot_defn_null(); Xot_defn_null() {}
}

View File

@@ -16,9 +16,9 @@ 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.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import gplx.xowa.langs.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.kwds.*;
public class Xot_defn_ {
public static final Xot_defn Null = Xot_defn_null._;
public static final Xot_defn Null = Xot_defn_null.Instance;
public static final byte
Tid_null = 0
, Tid_func = 1

View File

@@ -16,7 +16,7 @@ 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.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import gplx.xowa.nss.*;
import gplx.xowa.wikis.nss.*;
public class Xot_defn_tmpl implements Xot_defn {
public byte Defn_tid() {return Xot_defn_.Tid_tmpl;}
public boolean Defn_require_colon_arg() {return false;}

View File

@@ -49,7 +49,7 @@ public class Xot_defn_tmpl_ {
for (int i = 0; i < subs_len; i++)
orig.Subs_get(i).Tmpl_evaluate(ctx, src, caller, arg_bfr);
Arg_itm_tkn rv = tkn_mkr.ArgItm(-1, -1); // NOTE: was -1, 0; DATE:2013-04-10
byte[] rv_ary = orig_arg.KeyTkn_exists() && val_tkn ? arg_bfr.Xto_bry_and_clear_and_trim() : arg_bfr.Xto_bry_and_clear(); // // NOTE: must trim if key_exists; DUPE:TRIM_IF_KEY; PAGE:en.w:Coord in Chernobyl disaster, Sahara
byte[] rv_ary = orig_arg.KeyTkn_exists() && val_tkn ? arg_bfr.To_bry_and_clear_and_trim() : arg_bfr.To_bry_and_clear(); // // NOTE: must trim if key_exists; DUPE:TRIM_IF_KEY; PAGE:en.w:Coord in Chernobyl disaster, Sahara
rv.Dat_ary_(rv_ary);
return rv;
}

View File

@@ -37,7 +37,7 @@ class Xot_defn_trace_brief implements Xot_defn_trace {
else
itm = (Xot_defn_trace_itm_brief)o;
itm.Count_add();
} private Ordered_hash hash = Ordered_hash_.new_();
} private Ordered_hash hash = Ordered_hash_.New();
public void Trace_end(int trg_bgn, Bry_bfr trg) {}
public void Print(byte[] src, Bry_bfr bb) {
int count = hash.Count(); if (count == 0) return;

View File

@@ -42,7 +42,7 @@ class Xot_defn_trace_fxt {
Xop_root_tkn root = ctx.Tkn_mkr().Root(src);
fxt.Parser().Parse_page_all_clear(root, ctx, ctx.Tkn_mkr(), src);
ctx.Defn_trace().Print(src, tmp);
String[] actl_ary = String_.Split(tmp.Xto_str_and_clear(), (char)Byte_ascii.Nl);
String[] actl_ary = String_.Split(tmp.To_str_and_clear(), (char)Byte_ascii.Nl);
Tfds.Eq_ary(expd_ary, actl_ary);
} private Bry_bfr tmp = Bry_bfr.new_();
String[] To_str(Xot_defn_trace_itm_brief[] ary) {
@@ -50,7 +50,7 @@ class Xot_defn_trace_fxt {
for (int i = 0; i < rv.length; i++) {
Xot_defn_trace_itm_brief itm = ary[i];
sb.Add(String_.new_u8(itm.Name())).Add("|").Add(itm.Count());
rv[i] = sb.Xto_str_and_clear();
rv[i] = sb.To_str_and_clear();
}
return rv;
}

View File

@@ -41,7 +41,7 @@ public class Xot_defn_trace_dbg implements Xot_defn_trace {
// bfr.Add_mid(src, val_tkn.Dat_bgn(), val_tkn.Dat_end());
// }
// else {
// Xot_fmtr_prm raw_fmtr = Xot_fmtr_prm._;
// Xot_fmtr_prm raw_fmtr = Xot_fmtr_prm.Instance;
// nde.ValTkn().Tmpl_fmt(ctx, src, raw_fmtr);
// raw_fmtr.Print(bfr);
// }
@@ -133,7 +133,7 @@ public class Xot_defn_trace_dbg implements Xot_defn_trace {
}
public void Clear() {bfr.Clear(); indent = 0; count = 0;}
int indent = 0, count = 0;
public static final Xot_defn_trace_dbg _ = new Xot_defn_trace_dbg(); Xot_defn_trace_dbg() {}
public static final Xot_defn_trace_dbg Instance = new Xot_defn_trace_dbg(); Xot_defn_trace_dbg() {}
private static final byte[] Ary_invk_lbl = Bry_.new_a7("*invk\n"), Ary_lnk_lbl = Bry_.new_a7("*lnk: "), Ary_args_lbl = Bry_.new_a7("*args\n")
, Ary_result_lbl = Bry_.new_a7("*result\n")
, Ary_eval_lbl = Bry_.new_a7("*eval\n")

View File

@@ -25,7 +25,7 @@ public class Xot_defn_trace_dbg_tst {
fx.Init_defn_add("concat", "{{{1}}}{{{2}}}");
fx.Init_defn_add("bool_str", "{{#ifeq:{{{1}}}|1|y|n}}");
fx.Init_defn_add("mid_1", "{{print|[ {{concat|{{{1}}}|{{{2}}}}} ]}}");
fx.Ctx().Defn_trace_(Xot_defn_trace_dbg._);
fx.Ctx().Defn_trace_(Xot_defn_trace_dbg.Instance);
}
@Test public void Tmpl() {
fx.tst_

View File

@@ -21,5 +21,5 @@ public class Xot_defn_trace_null implements Xot_defn_trace {
public void Trace_bgn(Xop_ctx ctx, byte[] src, byte[] name, Xot_invk caller, Xot_invk self, Xot_defn defn) {}
public void Trace_end(int trg_bgn, Bry_bfr trg) {}
public void Print(byte[] src, Bry_bfr bb) {}
public static final Xot_defn_trace_null _ = new Xot_defn_trace_null(); Xot_defn_trace_null() {}
public static final Xot_defn_trace_null Instance = new Xot_defn_trace_null(); Xot_defn_trace_null() {}
}

View File

@@ -20,7 +20,7 @@ import org.junit.*;
public class Xot_examples_tst {
private Xop_fxt fxt = new Xop_fxt();
@Before public void init() {
Io_mgr.I.InitEngine_mem();
Io_mgr.Instance.InitEngine_mem();
fxt.Reset();
}
@Test public void Arg_0() {Init_tmpl_for(); fxt.Test_parse_tmpl_str("{{For}}" , "For other uses, see [[Test page (disambiguation)]].");}

View File

@@ -71,5 +71,5 @@ class Xot_fmtr_prm implements Xot_fmtr {
}
public void Print(Bry_bfr bb) {bb.Add_bfr_and_preserve(trg); trg.Clear(); depth = 0;}
Bry_bfr trg = Bry_bfr.new_(); int depth = 0;
public static final Xot_fmtr_prm _ = new Xot_fmtr_prm();
public static final Xot_fmtr_prm Instance = new Xot_fmtr_prm();
}

View File

@@ -30,7 +30,7 @@ public class Xot_invk_mock implements Xot_invk {
public int Frame_lifetime() {return frame_lifetime;} public void Frame_lifetime_(int v) {frame_lifetime = v;} private int frame_lifetime;
public boolean Rslt_is_redirect() {return rslt_is_redirect;} public void Rslt_is_redirect_(boolean v) {rslt_is_redirect = v;} private boolean rslt_is_redirect;
public Arg_nde_tkn Name_tkn() {return Arg_nde_tkn.Null;}
public int Args_len() {return args.Count() + idx_adj;} private Ordered_hash args = Ordered_hash_.new_bry_();
public int Args_len() {return args.Count() + idx_adj;} private Ordered_hash args = Ordered_hash_.New_bry();
public Arg_nde_tkn Args_get_by_idx(int i) {return (Arg_nde_tkn)args.Get_at(i - idx_adj);}
public Arg_nde_tkn Args_eval_by_idx(byte[] src, int idx) {// DUPE:MW_ARG_RETRIEVE
int cur = 0, list_len = args.Count();

View File

@@ -16,9 +16,9 @@ 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.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.vnts.*; import gplx.xowa.langs.vnts.converts.*;
import gplx.xowa.nss.*;
import gplx.xowa.wikis.caches.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.pfuncs.*; import gplx.xowa.xtns.pfuncs.ttls.*; import gplx.xowa.pages.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.kwds.*; import gplx.xowa.langs.vnts.*; import gplx.xowa.langs.vnts.converts.*; import gplx.xowa.langs.funcs.*;
import gplx.xowa.wikis.nss.*;
import gplx.xowa.wikis.caches.*; import gplx.xowa.xtns.scribunto.*; import gplx.xowa.xtns.pfuncs.*; import gplx.xowa.xtns.pfuncs.ttls.*; import gplx.xowa.wikis.pages.*;
import gplx.xowa.wikis.data.tbls.*;
import gplx.xowa.parsers.miscs.*;
public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
@@ -49,7 +49,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
}
@Override public boolean Tmpl_evaluate(Xop_ctx ctx, byte[] src, Xot_invk caller, Bry_bfr bfr) { // this="{{t|{{{0}}}}}" caller="{{t|1}}"
boolean rv = false;
Xot_defn defn = tmpl_defn; Xowe_wiki wiki = ctx.Wiki(); Xol_lang lang = wiki.Lang();
Xot_defn defn = tmpl_defn; Xowe_wiki wiki = ctx.Wiki(); Xol_lang_itm lang = wiki.Lang();
byte[] name_ary = defn.Name(), argx_ary = Bry_.Empty; Arg_itm_tkn name_key_tkn = name_tkn.Key_tkn();
byte[] name_ary_orig = Bry_.Empty;
int name_bgn = 0, name_ary_len = 0;
@@ -61,7 +61,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
if (defn_tid == Xot_defn_.Tid_subst)
name_tkn_bfr.Add(Get_first_subst_itm(lang.Kwd_mgr()));
name_tkn.Tmpl_evaluate(ctx, src, caller, name_tkn_bfr);
name_ary = name_tkn_bfr.Xto_bry_and_clear();
name_ary = name_tkn_bfr.To_bry_and_clear();
}
else // tmpl is static; note that dat_ary is still valid but rest of name may not be; EX: {{subst:name{{{1}}}}}
name_ary = Bry_.Mid(src, name_key_tkn.Dat_bgn(), name_key_tkn.Dat_end());
@@ -99,7 +99,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
if (ns_eval != null && !template_prefix_found) // do not transclude ns if Template prefix seen earlier; EX: {{Template:Wikipedia:A}} should not transclude "Wikipedia:A"; DATE:2013-04-03
return SubEval(ctx, wiki, bfr, name_ary, caller, src);
Xol_func_name_itm finder = lang.Func_regy().Find_defn(name_ary, name_bgn, name_ary_len);
Xol_func_itm finder = lang.Func_regy().Find_defn(name_ary, name_bgn, name_ary_len);
defn = finder.Func();
int colon_pos = -1;
switch (finder.Tid()) {
@@ -110,7 +110,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
bfr.Add_byte(Byte_ascii.Pipe); // add |
bfr.Add_mid(src, nde.Src_bgn(), nde.Src_end()); // add entire arg; "k=v"; note that src must be added, not evaluated, else <nowiki> may be dropped and cause stack overflow; PAGE:ru.w:Близкиерузья_(Сезон_2) DATE:2014-10-21
}
Xot_fmtr_prm._.Print(bfr);
Xot_fmtr_prm.Instance.Print(bfr);
bfr.Add(Xop_curly_end_lxr.Hook);
return true; // NOTE: nothing else to do; return
case Xot_defn_.Tid_safesubst:
@@ -253,7 +253,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
Bry_bfr rslt_bfr = wiki.Utl__bfr_mkr().Get_k004();
try {
Bld_key(invk_tmpl, name_ary, rslt_bfr);
byte[] rslt_key = rslt_bfr.Xto_bry_and_clear();
byte[] rslt_key = rslt_bfr.To_bry_and_clear();
Object o = wiki.Cache_mgr().Tmpl_result_cache().Get_by(rslt_key);
Xopg_tmpl_prepend_mgr prepend_mgr = ctx.Cur_page().Tmpl_prepend_mgr().Bgn(bfr);
if (o != null) {
@@ -265,11 +265,11 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
rv = defn_tmpl.Tmpl_evaluate(ctx, invk_tmpl, rslt_bfr);
prepend_mgr.End(ctx, bfr, rslt_bfr.Bfr(), rslt_bfr.Len(), Bool_.Y);
if (name_had_subst) { // current invk had "subst:"; parse incoming invk again to remove effects of subst; PAGE:pt.w:Argentina DATE:2014-09-24
byte[] tmp_src = rslt_bfr.Xto_bry_and_clear();
byte[] tmp_src = rslt_bfr.To_bry_and_clear();
rslt_bfr.Add(wiki.Parser_mgr().Main().Parse_text_to_wtxt(tmp_src)); // this could be cleaner / more optimized
}
if (Cache_enabled) {
byte[] rslt_val = rslt_bfr.Xto_bry_and_clear();
byte[] rslt_val = rslt_bfr.To_bry_and_clear();
bfr.Add(rslt_val);
Hash_adp cache = wiki.Cache_mgr().Tmpl_result_cache();
cache.Del(rslt_key);
@@ -288,7 +288,7 @@ public class Xot_invk_tkn extends Xop_tkn_itm_base implements Xot_invk {
boolean skip = false;
skip = this.Src_end() - this.Src_bgn() > ctx.Tmpl_tkn_max();
if (!skip) {
gplx.xowa.html.modules.popups.keeplists.Xop_keeplist_wiki tmpl_keeplist = ctx.Tmpl_keeplist();
gplx.xowa.htmls.modules.popups.keeplists.Xop_keeplist_wiki tmpl_keeplist = ctx.Tmpl_keeplist();
if (tmpl_keeplist != null && tmpl_keeplist.Enabled()) {
byte[] ttl_lower = Xoa_ttl.Replace_spaces(ctx.Wiki().Lang().Case_mgr().Case_build_lower(ttl));
skip = !tmpl_keeplist.Match(ttl_lower);

View File

@@ -16,13 +16,13 @@ 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.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import gplx.xowa.langs.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.funcs.*;
public class Xot_invk_wkr implements Xop_ctx_wkr, Xop_arg_wkr {
public void Ctor_ctx(Xop_ctx ctx) {}
public void Page_bgn(Xop_ctx ctx, Xop_root_tkn root) {this.tkn_mkr = ctx.Tkn_mkr();} private Xop_tkn_mkr tkn_mkr;
public void Page_end(Xop_ctx ctx, Xop_root_tkn root, byte[] src, int src_len) {}
public void AutoClose(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int lxr_bgn_pos, int lxr_cur_pos, Xop_tkn_itm tkn) {}
private static Arg_bldr arg_bldr = Arg_bldr._;
private static Arg_bldr arg_bldr = Arg_bldr.Instance;
public int Make_tkn(Xop_ctx ctx, Xop_root_tkn root, byte[] src, int lxr_cur_pos, int lxr_end_pos, Xop_curly_bgn_tkn bgn_tkn, int keep_curly_bgn) {
Xot_invk_tkn invk = tkn_mkr.Tmpl_invk(bgn_tkn.Src_bgn(), lxr_end_pos);
int loop_bgn = bgn_tkn.Tkn_sub_idx() + 1, loop_end = root.Subs_len();
@@ -60,7 +60,7 @@ public class Xot_invk_wkr implements Xop_ctx_wkr, Xop_arg_wkr {
if (key_tkn.Itm_static() != Bool_.Y_byte) return; // dynamic tkn; can't identify func/name
int colon_pos = -1, txt_bgn = key_tkn.Dat_bgn(), txt_end = key_tkn.Dat_end();
Xol_func_name_itm finder = ctx.Wiki().Lang().Func_regy().Find_defn(src, txt_bgn, txt_end);
Xol_func_itm finder = ctx.Wiki().Lang().Func_regy().Find_defn(src, txt_bgn, txt_end);
Xot_defn finder_func = finder.Func();
byte finder_typeId = finder.Tid();
switch (finder_typeId) {

View File

@@ -16,7 +16,7 @@ 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.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
import org.junit.*; import gplx.xowa.wikis.ttls.*; import gplx.xowa.nss.*;
import org.junit.*; import gplx.xowa.wikis.ttls.*; import gplx.xowa.wikis.nss.*;
public class Xot_invk_wkr_basic_tst {
private Xop_fxt fxt = new Xop_fxt();
@Before public void init() {fxt.Reset();}
@@ -214,10 +214,10 @@ public class Xot_invk_wkr_basic_tst {
fxt.Test_parse_tmpl_str("{{Missing}}", "[[:Template_foreign:Missing]]");
ns.Name_bry_(old_ns);
}
@Test public void Xnde_xtn_preserved() { // PURPOSE: tmpl was dropping .Xtn ndes; EX: below was just ab
@Test public void Xnde_xtn_preserved() { // PURPOSE: tmpl was dropping .Xtn ndes;
fxt.Init_defn_clear();
fxt.Init_defn_add("test_template", "{{{1}}}");
fxt.Test_parse_page_all_str("{{test_template|a<source>1</source>b}}", "a<pre>1</pre>b");
fxt.Test_parse_page_all_str("{{test_template|a<source>1</source>b}}", "a<div class=\"mw-highlight\"><pre style=\"overflow:auto\">1</pre></div>b"); // was just ab
fxt.Init_defn_clear();
}
@Test public void Recurse() {

View File

@@ -49,7 +49,7 @@ public class Xot_prm_tkn extends Xop_tkn_itm_base {
find_tkn.Subs_get(i).Tmpl_evaluate(ctx, src, caller, find_bfr);
prm_idx = Bry_.To_int_or__trim_ws(find_bfr.Bfr(), 0, find_bfr.Len(), -1); // parse as number first; NOTE: trim needed to transform "{{{ 1 }}}" to "1"; it.w:Portale:Giochi_da_tavolo; DATE:2014-02-09
if (prm_idx == -1)
prm_key = find_bfr.Xto_bry_and_clear_and_trim(); // not a number; parse as key; NOTE: must trim; PAGE:en.w:William Shakespeare; {{Relatebardtree}}
prm_key = find_bfr.To_bry_and_clear_and_trim(); // not a number; parse as key; NOTE: must trim; PAGE:en.w:William Shakespeare; {{Relatebardtree}}
}
Arg_nde_tkn arg_nde = null;
if (prm_idx == -1) { // prm is key; EX: "{{{key1}}}"

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.parsers.tmpls; import gplx.*; import gplx.xowa.*; import gplx.xowa.parsers.*;
class Xot_prm_wkr implements Xop_arg_wkr {
private static Arg_bldr arg_bldr = Arg_bldr._;
private static Arg_bldr arg_bldr = Arg_bldr.Instance;
public boolean Make_tkn(Xop_ctx ctx, Xop_tkn_mkr tkn_mkr, Xop_root_tkn root, byte[] src, int src_len, int lxr_bgn_pos, int lxr_cur_pos, Xop_curly_bgn_tkn bgn, int keep_curly_bgn) {
int loop_bgn = bgn.Tkn_sub_idx() + 1; // +1 to ignore curly_bgn
int loop_end = root.Subs_len();
@@ -28,7 +28,7 @@ class Xot_prm_wkr implements Xop_arg_wkr {
return false;
}
Xot_prm_tkn prm_tkn = tkn_mkr.Tmpl_prm(bgn.Src_bgn(), lxr_cur_pos);
arg_bldr.Bld(ctx, tkn_mkr, Xot_prm_wkr._, Xop_arg_wkr_.Typ_prm, root, prm_tkn, lxr_bgn_pos, lxr_cur_pos, loop_bgn, loop_end, src);
arg_bldr.Bld(ctx, tkn_mkr, Xot_prm_wkr.Instance, Xop_arg_wkr_.Typ_prm, root, prm_tkn, lxr_bgn_pos, lxr_cur_pos, loop_bgn, loop_end, src);
root.Subs_del_after(bgn.Tkn_sub_idx() + keep_curly_bgn); // NOTE: keep_curly_bgn determines whether or not to delete opening {{{
root.Subs_add(prm_tkn);
return true;
@@ -42,5 +42,5 @@ class Xot_prm_wkr implements Xop_arg_wkr {
}
return true;
}
public static final Xot_prm_wkr _ = new Xot_prm_wkr(); Xot_prm_wkr() {}
public static final Xot_prm_wkr Instance = new Xot_prm_wkr(); Xot_prm_wkr() {}
}

View File

@@ -109,5 +109,5 @@ public class Xot_tmpl_wtr {
}
}
public static String Err_string = "";
public static final Xot_tmpl_wtr _ = new Xot_tmpl_wtr(); Xot_tmpl_wtr() {}
public static final Xot_tmpl_wtr Instance = new Xot_tmpl_wtr(); Xot_tmpl_wtr() {}
}