mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v2.7.3.1
This commit is contained in:
@@ -161,7 +161,7 @@ public class Scrib_core {
|
||||
Scrib_lua_mod mod = Mods_get_or_new(mod_name, mod_text);
|
||||
KeyVal[] func_args = Scrib_kv_utl_.base1_many_(mod.Init_chunk_func(), String_.new_u8(fnc_name));
|
||||
KeyVal[] func_rslt = engine.CallFunction(lib_mw.Mod().Fncs_get_id("executeModule"), func_args); // call init_chunk to get proc dynamically; DATE:2014-07-12
|
||||
if (func_rslt == null || func_rslt.length < 2) throw Exc_.new_("lua.error:function did not return a value", "fnc_name", String_.new_u8(fnc_name)); // must return at least 2 items for func_rslt[1] below; DATE:2014-09-22
|
||||
if (func_rslt == null || func_rslt.length < 2) throw Err_.new_wo_type("lua.error:function did not return a value", "fnc_name", String_.new_u8(fnc_name)); // must return at least 2 items for func_rslt[1] below; DATE:2014-09-22
|
||||
Scrib_lua_proc proc = (Scrib_lua_proc)func_rslt[1].Val(); // note that init_chunk should have: [0]:true/false result; [1]:proc
|
||||
func_args = Scrib_kv_utl_.base1_many_(proc);
|
||||
func_rslt = engine.CallFunction(lib_mw.Mod().Fncs_get_id("executeFunction"), func_args); // call function now
|
||||
@@ -199,8 +199,8 @@ public class Scrib_core {
|
||||
Xot_invk src_frame = frame_current;
|
||||
if (src_frame != null)
|
||||
excerpt = String_.new_u8(cur_src, src_frame.Src_bgn(), src_frame.Src_end());
|
||||
} catch (Exception e) {Exc_.Noop(e);}
|
||||
throw Exc_.new_(err, "ttl", page.Ttl().Page_db_as_str(), "excerpt", excerpt, "traceback", traceback);
|
||||
} catch (Exception e) {Err_.Noop(e);}
|
||||
throw Err_.new_wo_type(err, "ttl", page.Ttl().Page_db_as_str(), "excerpt", excerpt, "traceback", traceback);
|
||||
}
|
||||
public static void Core_invalidate_when_page_changes() {core_invalidate_when_page_changes = true;} private static boolean core_invalidate_when_page_changes;
|
||||
public static void Core_page_changed(Xoae_page page) {
|
||||
|
||||
@@ -59,10 +59,10 @@ public class Scrib_invoke_func extends Pf_func_base {
|
||||
catch (Exception e) {
|
||||
String invoke_error = Err_msg_make(e);
|
||||
Error(bfr, wiki.Msg_mgr(), invoke_error);
|
||||
bfr.Add(Html_tag_.Comm_bgn).Add_str(Err_.Message_gplx_brief(e)).Add(Html_tag_.Comm_end);
|
||||
bfr.Add(Html_tag_.Comm_bgn).Add_str(Err_.Message_gplx_full(e)).Add(Html_tag_.Comm_end);
|
||||
Scrib_err_filter_mgr err_filter_mgr = invoke_wkr == null ? null : invoke_wkr.Err_filter_mgr();
|
||||
if (err_filter_mgr == null || (err_filter_mgr.Count_gt_0() && err_filter_mgr.Match(String_.new_u8(mod_name), String_.new_u8(fnc_name), invoke_error)))
|
||||
ctx.App().Usr_dlg().Warn_many("", "", "invoke failed: ~{0} ~{1} ~{2}", String_.new_u8(ctx.Cur_page().Ttl().Raw()), String_.new_u8(src, self.Src_bgn(), self.Src_end()), Err_.Message_gplx_brief(e));
|
||||
ctx.App().Usr_dlg().Warn_many("", "", "invoke failed: ~{0} ~{1} ~{2}", ctx.Cur_page().Ttl().Raw(), String_.new_u8(src, self.Src_bgn(), self.Src_end()), Err_.Message_gplx_log(e));
|
||||
Scrib_core.Core_invalidate_when_page_changes(); // NOTE: invalidate core when page changes, not for rest of page, else page with many errors will be very slow due to multiple invalidations; PAGE:th.d:all; DATE:2014-10-03
|
||||
}
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ class Scrib_lua_rsp_bldr {
|
||||
else if (Object_.Eq(v_type, Double_.Cls_ref_type)) Bld_double(bfr, Double_.cast_(v));
|
||||
else if (Object_.Eq(v_type, KeyVal[].class)) Bld_kv_ary(bfr, (KeyVal[])v);
|
||||
else if (Object_.Eq(v_type, Scrib_lua_proc.class)) Bld_fnc(bfr, (Scrib_lua_proc)v);
|
||||
else throw Exc_.new_unhandled(ClassAdp_.NameOf_obj(v));
|
||||
else throw Err_.new_unhandled(ClassAdp_.NameOf_obj(v));
|
||||
}
|
||||
private void Bld_bool(Bry_bfr bfr, boolean v) {bfr.Add_str_a7("b:").Add_int_fixed(v ? 1 : 0, 1).Add_byte(Byte_ascii.Semic);}
|
||||
private void Bld_int(Bry_bfr bfr, int v) {bfr.Add_str_a7("i:").Add_int_variable(v).Add_byte(Byte_ascii.Semic);}
|
||||
|
||||
@@ -48,17 +48,17 @@ public class Scrib_kv_utl_ {
|
||||
return rv;
|
||||
}
|
||||
public static String Val_to_str(KeyVal[] ary, int idx) {
|
||||
if (ary == null) throw Exc_.new_("ary is null");
|
||||
if (ary == null) throw Err_.new_wo_type("ary is null");
|
||||
int ary_len = ary.length;
|
||||
if (ary_len == 0 && idx == 0) return ""; // NOTE: Modules can throw exceptions in which return value is nothing; do not fail; return ""; EX: -logy; DATE:2013-10-14
|
||||
if (idx >= ary_len) throw Exc_.new_("idx is not in bounds", "idx", idx, "len", KeyVal_.Ary_x_to_str(ary));
|
||||
if (idx >= ary_len) throw Err_.new_wo_type("idx is not in bounds", "idx", idx, "len", KeyVal_.Ary_x_to_str(ary));
|
||||
Object o = ary[idx].Val();
|
||||
try {return (String)o;}
|
||||
catch (Exception e) {throw Exc_.new_cast(e, String.class, o);}
|
||||
catch (Exception e) {throw Err_.new_cast(e, String.class, o);}
|
||||
}
|
||||
public static KeyVal[] Val_to_KeyVal_ary(KeyVal[] ary, int idx) {
|
||||
if (ary == null) throw Exc_.new_("ary is null"); if (idx >= ary.length) throw Exc_.new_("idx is not in bounds", "idx", idx, "len", KeyVal_.Ary_x_to_str(ary));
|
||||
if (ary == null) throw Err_.new_wo_type("ary is null"); if (idx >= ary.length) throw Err_.new_wo_type("idx is not in bounds", "idx", idx, "len", KeyVal_.Ary_x_to_str(ary));
|
||||
try {return (KeyVal[])ary[idx].Val();}
|
||||
catch (Exception e) {throw Exc_.new_exc(e, "scrib", "cast as KeyVal[] failed", "ary", KeyVal_.Ary_x_to_str(ary));}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "scrib", "cast as KeyVal[] failed", "ary", KeyVal_.Ary_x_to_str(ary));}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class Scrib_lua_mod {
|
||||
public Scrib_lua_proc Fncs_get_by_key(String key) {return (Scrib_lua_proc)hash.Get_by(key);}
|
||||
public void Fncs_add(Scrib_lua_proc prc) {hash.Add(prc.Key(), prc);}
|
||||
public int Fncs_get_id(String key) {
|
||||
Scrib_lua_proc fnc = Fncs_get_by_key(key); if (fnc == null) throw Exc_.new_("Scrb_fnc does not exist", "module", name, "func", key);
|
||||
Scrib_lua_proc fnc = Fncs_get_by_key(key); if (fnc == null) throw Err_.new_wo_type("Scrb_fnc does not exist", "module", name, "func", key);
|
||||
return fnc.Id();
|
||||
}
|
||||
public Scrib_lua_proc LoadString(String text) {
|
||||
@@ -44,7 +44,7 @@ public class Scrib_lua_mod {
|
||||
hash.Clear(); // NOTE: questionable. should probably be removed, as it forces all modules to be "loadString"'d again; DATE:2013-10-16
|
||||
this.LoadString(name); // assert lua_id;
|
||||
KeyVal[] rslt = core.Interpreter().ExecuteModule(lua_id);
|
||||
if (rslt.length == 0) throw Exc_.new_("module missing", "name", name, "lua_id", lua_id);
|
||||
if (rslt.length == 0) throw Err_.new_wo_type("module missing", "name", name, "lua_id", lua_id);
|
||||
KeyVal[] prcs_ary = (KeyVal[])rslt[0].Val();
|
||||
int prcs_len = prcs_ary.length;
|
||||
for (int i = 0; i < prcs_len; i++) {
|
||||
|
||||
@@ -27,19 +27,19 @@ public class Scrib_proc_args {
|
||||
public int Pull_int(int i) {Object rv = Get_or_fail(i);
|
||||
try {return Int_.coerce_(rv);} // coerce to handle "1" and 1; will still fail if "abc" is passed
|
||||
catch (Exception e) {
|
||||
Exc_.Noop(e);
|
||||
throw Exc_.new_("bad argument; int expected", "idx", i, "len", ary_len);
|
||||
Err_.Noop(e);
|
||||
throw Err_.new_wo_type("bad argument; int expected", "idx", i, "len", ary_len);
|
||||
}
|
||||
}
|
||||
public long Pull_long(int i) {return (long)Pull_double(i);}
|
||||
public double Pull_double(int i) {Object rv = Get_or_fail(i);
|
||||
try {return Int_.coerce_(rv);} // coerce to handle "1" and 1; will still fail if "abc" is passed
|
||||
catch (Exception e) {
|
||||
Exc_.Noop(e);
|
||||
Err_.Noop(e);
|
||||
try {return Double_.coerce_(rv);} // coerce to handle "1" and 1; will still fail if "abc" is passed
|
||||
catch (Exception e2) {
|
||||
Exc_.Noop(e2);
|
||||
throw Exc_.new_("bad argument; int expected", "idx", i, "len", ary_len);
|
||||
Err_.Noop(e2);
|
||||
throw Err_.new_wo_type("bad argument; int expected", "idx", i, "len", ary_len);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -137,10 +137,10 @@ public class Scrib_proc_args {
|
||||
return kv == null ? null : kv.Val();
|
||||
}
|
||||
private Object Get_or_fail(int i) {
|
||||
if (i < 0 || i >= ary_len) throw Exc_.new_("bad argument: nil", "idx", i, "len", ary_len);
|
||||
if (i < 0 || i >= ary_len) throw Err_.new_wo_type("bad argument: nil", "idx", i, "len", ary_len);
|
||||
KeyVal kv = ary[i];
|
||||
Object rv = kv == null ? null : kv.Val();
|
||||
if (rv == null) throw Exc_.new_("scrib arg is null", "idx", i, "len", ary_len);
|
||||
if (rv == null) throw Err_.new_wo_type("scrib arg is null", "idx", i, "len", ary_len);
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,8 +73,8 @@ public class Scrib_xtn_mgr extends Xox_mgr_base {
|
||||
if (invoke_wkr == null) invoke_wkr = app.Log_mgr().Make_wkr_invoke();
|
||||
return invoke_wkr;
|
||||
}
|
||||
public static Exc err_(String fmt, Object... args) {return Exc_.new_(fmt, args).Stack_erase_1_();}
|
||||
public static Exc err_(Exception e, String fmt, Object... args) {return Exc_.new_exc(e, "xo", fmt, args).Stack_erase_1_();}
|
||||
public static Err err_(String fmt, Object... args) {return Err_.new_wo_type(fmt, args).Trace_ignore_add_1_();}
|
||||
public static Err err_(Exception e, String msg, Object... args) {return Err_.new_exc(e, "xo", msg, args).Trace_ignore_add_1_();}
|
||||
public static final int Ns_id_module = 828, Ns_id_module_talk = 829;
|
||||
public static final String Ns_name_module = "Module", Ns_name_module_talk = "Module talk";
|
||||
}
|
||||
|
||||
@@ -21,13 +21,13 @@ public class Scrib_engine_type {
|
||||
switch (v) {
|
||||
case Type_lua: return "lua";
|
||||
case Type_luaj: return "luaj";
|
||||
default: throw Exc_.new_unimplemented();
|
||||
default: throw Err_.new_unimplemented();
|
||||
}
|
||||
}
|
||||
public static byte Xto_byte(String s) {
|
||||
if (String_.Eq(s, "lua")) return Type_lua;
|
||||
else if (String_.Eq(s, "luaj")) return Type_luaj;
|
||||
else throw Exc_.new_unimplemented();
|
||||
else throw Err_.new_unimplemented();
|
||||
}
|
||||
public static final byte Type_lua = 0, Type_luaj = 1;
|
||||
public static KeyVal[] Options__list = KeyVal_.Ary(KeyVal_.new_("luaj"), KeyVal_.new_("lua"));
|
||||
|
||||
@@ -25,7 +25,7 @@ public class Luaj_server_func_recv extends OneArgFunction {
|
||||
public LuaValue call(LuaValue tbl_val) {
|
||||
LuaTable tbl = (LuaTable)tbl_val;
|
||||
String op = Luaj_value_.Get_val_as_str(tbl, "op");
|
||||
if (!String_.Eq(op, "call")) throw Exc_.new_("luaj_recvr only processes op calls");
|
||||
if (!String_.Eq(op, "call")) throw Err_.new_wo_type("luaj_recvr only processes op calls");
|
||||
return engine.Server_recv_call(tbl);
|
||||
}
|
||||
public static Luaj_server_func_recv _ = new Luaj_server_func_recv();
|
||||
|
||||
@@ -57,7 +57,7 @@ class Luaj_value_ {
|
||||
kv = KeyVal_.new_(((LuaString)itm_key).tojstring(), itm_val_obj);
|
||||
break;
|
||||
default:
|
||||
throw Exc_.new_unhandled(itm_key.type());
|
||||
throw Err_.new_unhandled(itm_key.type());
|
||||
}
|
||||
}
|
||||
temp.Add(kv);
|
||||
@@ -80,7 +80,7 @@ class Luaj_value_ {
|
||||
return v_num.todouble();
|
||||
case LuaValue.TTABLE: return X_tbl_to_kv_ary(server, (LuaTable)v);
|
||||
case LuaValue.TFUNCTION: return server.Get_id_by_closure(v);
|
||||
default: throw Exc_.new_unhandled(v.type());
|
||||
default: throw Err_.new_unhandled(v.type());
|
||||
}
|
||||
}
|
||||
public static LuaValue X_obj_to_val(Luaj_server server, Object o) {
|
||||
|
||||
@@ -87,7 +87,7 @@ public class Process_engine implements Scrib_engine {
|
||||
}
|
||||
} private static final byte[] Dispatch_hdr = Bry_.new_a7("0000000000000000"); // itm_len + itm_chk in 8-len HexDec
|
||||
private void Dispatch_bld_send(Bry_bfr bfr, Object[] ary) {
|
||||
int len = ary.length; if (len % 2 != 0) throw Exc_.new_("arguments must be factor of 2", "len", len);
|
||||
int len = ary.length; if (len % 2 != 0) throw Err_.new_wo_type("arguments must be factor of 2", "len", len);
|
||||
bfr.Add(Dispatch_hdr);
|
||||
bfr.Add_byte(Byte_ascii.Curly_bgn);
|
||||
for (int i = 0; i < len; i++) {
|
||||
|
||||
@@ -53,7 +53,7 @@ public class Process_recv_msg {
|
||||
return op;
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw Scrib_xtn_mgr.err_(e, "failed to extract data: {0} {1}", Err_.Message_gplx_brief(e), String_.new_u8(rsp));
|
||||
throw Scrib_xtn_mgr.err_(e, "failed to extract data", "rsp", rsp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Process_send_wtr {
|
||||
case Byte_ascii.Quote: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(b); break;
|
||||
case Byte_ascii.Nl: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_n); break;
|
||||
case Byte_ascii.Cr: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Ltr_r); break;
|
||||
case Byte_ascii.Nil: bfr.Add(CONST_escape_000); break;
|
||||
case Byte_ascii.Null: bfr.Add(CONST_escape_000); break;
|
||||
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash).Add_byte(Byte_ascii.Backslash); break;
|
||||
default: bfr.Add_byte(b); break;
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Process_server implements Scrib_server {
|
||||
ProcessBuilder pb = new ProcessBuilder(process_args);
|
||||
pb.redirectErrorStream(false);
|
||||
try {process = pb.start();}
|
||||
catch (Exception e) {throw Exc_.new_exc(e, "core", "process init failed", "args", String_.AryXtoStr(process_args));}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "core", "process init failed", "args", String_.AryXtoStr(process_args));}
|
||||
stream_write = process.getOutputStream();
|
||||
error_reader = new Process_server_gobbler_error(process.getErrorStream(), bry_error);
|
||||
error_reader.Start();
|
||||
@@ -45,7 +45,7 @@ public class Process_server implements Scrib_server {
|
||||
return Server_recv();
|
||||
}
|
||||
public void Server_send(byte[] cmd, Object[] cmd_objs) {
|
||||
if (process == null) throw Exc_.new_("process not started");
|
||||
if (process == null) throw Err_.new_wo_type("process not started");
|
||||
cmd_last = cmd;
|
||||
// stream_read.Data_reset();
|
||||
stream_read = new Process_server_gobbler_recv(process.getInputStream(), process_rdr).Start();
|
||||
@@ -53,7 +53,7 @@ public class Process_server implements Scrib_server {
|
||||
stream_write.write(cmd);
|
||||
stream_write.flush();
|
||||
}
|
||||
catch (Exception e) {throw Exc_.new_exc(e, "core", "failed to write to output");}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "core", "failed to write to output");}
|
||||
} private byte[] cmd_last;
|
||||
public byte[] Server_recv() {
|
||||
long time_bgn = System.currentTimeMillis();
|
||||
@@ -96,7 +96,7 @@ class Process_server_gobbler_error extends Thread {
|
||||
if (terminating)
|
||||
return;
|
||||
else
|
||||
throw Exc_.new_exc(e, "core", "failed to write to output");
|
||||
throw Err_.new_exc(e, "core", "failed to write to output");
|
||||
}
|
||||
}
|
||||
public void Term() {
|
||||
|
||||
@@ -67,7 +67,7 @@ class Process_server_mock_rcvd_val implements Process_server_mock_rcvd {
|
||||
KeyVal kv = ary[i];
|
||||
Object kv_val = kv.Val();
|
||||
if (kv_val == null) {
|
||||
bfr.Add(gplx.json.Json_itm_.Const_null);
|
||||
bfr.Add(gplx.core.json.Json_itm_.Const_null);
|
||||
continue;
|
||||
}
|
||||
Class<?> kv_val_type = kv_val.getClass();
|
||||
@@ -75,7 +75,7 @@ class Process_server_mock_rcvd_val implements Process_server_mock_rcvd {
|
||||
if (print_key && !kv_val_is_array)
|
||||
bfr.Add_str(kv.Key()).Add_byte(Byte_ascii.Colon);
|
||||
if (ClassAdp_.Eq(kv_val_type, Bool_.Cls_ref_type))
|
||||
bfr.Add(Bool_.cast_(kv_val) ? gplx.json.Json_itm_.Const_true : gplx.json.Json_itm_.Const_false);
|
||||
bfr.Add(Bool_.cast_(kv_val) ? gplx.core.json.Json_itm_.Const_true : gplx.core.json.Json_itm_.Const_false);
|
||||
else if (kv_val_is_array) {
|
||||
KeyVal[] sub = (KeyVal[])kv_val;
|
||||
if (sub.length == 0) {bfr.Add_byte(Byte_ascii.Curly_bgn).Add_byte(Byte_ascii.Curly_end);}
|
||||
|
||||
@@ -24,10 +24,10 @@ public class Process_stream_rdr {
|
||||
int bytes_read = rdr.Read(bry_header, 0, 16);
|
||||
if (bytes_read < 16) {
|
||||
if (bytes_read == -1) return null; // stream closed; should only occur when shutting down
|
||||
else throw Exc_.new_("failed to read header");
|
||||
else throw Err_.new_wo_type("failed to read header");
|
||||
}
|
||||
int body_len = HexDecUtl.parse_or_(bry_header, 0,8, -1); if (body_len == -1) throw Exc_.new_("failed to read body_len");
|
||||
int chk_len= HexDecUtl.parse_or_(bry_header, 9, 16, -1); if (chk_len == -1 || chk_len != (body_len * 2) - 1) throw Exc_.new_("failed to read chk_len");
|
||||
int body_len = HexDecUtl.parse_or_(bry_header, 0,8, -1); if (body_len == -1) throw Err_.new_wo_type("failed to read body_len");
|
||||
int chk_len= HexDecUtl.parse_or_(bry_header, 9, 16, -1); if (chk_len == -1 || chk_len != (body_len * 2) - 1) throw Err_.new_wo_type("failed to read chk_len");
|
||||
byte[] trg_bry = (body_len > bry_body.length) ? new byte[body_len] : bry_body;
|
||||
return Read_body(trg_bry, body_len, rdr);
|
||||
}
|
||||
@@ -46,7 +46,7 @@ public class Process_stream_rdr {
|
||||
case Byte_ascii.Ltr_n: b = Byte_ascii.Nl; break;
|
||||
case Byte_ascii.Ltr_r: b = Byte_ascii.Cr; break;
|
||||
case Byte_ascii.Backslash: b = Byte_ascii.Backslash; break;
|
||||
default: throw Exc_.new_unhandled(b);
|
||||
default: throw Err_.new_unhandled(b);
|
||||
}
|
||||
}
|
||||
else { // regular mode
|
||||
|
||||
@@ -57,7 +57,7 @@ class Process_stream_rdr_fxt {
|
||||
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash); break;
|
||||
case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.Nl); break;
|
||||
case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.Cr); break;
|
||||
default: throw Exc_.new_unhandled(b);
|
||||
default: throw Err_.new_unhandled(b);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -57,8 +57,8 @@ class Gfo_fld_crt implements Criteria {
|
||||
Object comp = owner.Fld_val_as_obj(fld_idx);
|
||||
return crt.Matches(comp);
|
||||
}
|
||||
public void Val_from_args(Hash_adp args) {throw Exc_.new_unimplemented();}
|
||||
public void Val_as_obj_(Object v) {throw Exc_.new_unimplemented();}
|
||||
public void Val_from_args(Hash_adp args) {throw Err_.new_unimplemented();}
|
||||
public void Val_as_obj_(Object v) {throw Err_.new_unimplemented();}
|
||||
public String XtoStr() {return String_.Concat(Byte_.Xto_str(fld_idx), " ", crt.XtoStr());}
|
||||
public static Gfo_fld_crt new_(byte fld_idx, Criteria crt) {
|
||||
Gfo_fld_crt rv = new Gfo_fld_crt();
|
||||
|
||||
@@ -27,6 +27,6 @@ public class Scrib_lib_html implements Scrib_lib {
|
||||
}
|
||||
public Scrib_proc_mgr Procs() {return procs;} private Scrib_proc_mgr procs = new Scrib_proc_mgr();
|
||||
public boolean Procs_exec(int key, Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
throw Exc_.new_unhandled(key);
|
||||
throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,7 +53,7 @@ public class Scrib_lib_language implements Scrib_lib {
|
||||
case Proc_convertGrammar: return ConvertGrammar(args, rslt);
|
||||
case Proc_gender: return gender(args, rslt);
|
||||
case Proc_isRTL: return IsRTL(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int
|
||||
@@ -99,7 +99,7 @@ public class Scrib_lib_language implements Scrib_lib {
|
||||
for (int i = 0; i < len; i++) {
|
||||
byte b = lang_code[i];
|
||||
switch (b) { // NOTE: snippet from MW follows; also \000 assumed to be Nil --> :/\\\000&<>'\"
|
||||
case Byte_ascii.Colon: case Byte_ascii.Slash: case Byte_ascii.Backslash: case Byte_ascii.Nil: case Byte_ascii.Amp: case Byte_ascii.Lt: case Byte_ascii.Gt: case Byte_ascii.Apos: case Byte_ascii.Quote:
|
||||
case Byte_ascii.Colon: case Byte_ascii.Slash: case Byte_ascii.Backslash: case Byte_ascii.Null: case Byte_ascii.Amp: case Byte_ascii.Lt: case Byte_ascii.Gt: case Byte_ascii.Apos: case Byte_ascii.Quote:
|
||||
valid = false;
|
||||
i = len;
|
||||
break;
|
||||
@@ -231,7 +231,7 @@ public class Scrib_lib_language implements Scrib_lib {
|
||||
lang.Grammar().Grammar_eval(bfr, lang, word, type);
|
||||
return rslt.Init_obj(bfr.To_str_and_rls());
|
||||
}
|
||||
public boolean gender(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Exc_.new_unimplemented();}
|
||||
public boolean gender(Scrib_proc_args args, Scrib_proc_rslt rslt) {throw Err_.new_unimplemented();}
|
||||
public boolean IsRTL(Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
Xol_lang lang = lang_(args);
|
||||
return rslt.Init_obj(!lang.Dir_ltr());
|
||||
@@ -239,7 +239,7 @@ public class Scrib_lib_language implements Scrib_lib {
|
||||
private Xol_lang lang_(Scrib_proc_args args) {
|
||||
byte[] lang_code = args.Cast_bry_or_null(0);
|
||||
Xol_lang lang = lang_code == null ? null : core.App().Lang_mgr().Get_by_key_or_load(lang_code);
|
||||
if (lang == null) throw Exc_.new_("lang_code is not valid", "lang_code", String_.new_u8(lang_code));
|
||||
if (lang == null) throw Err_.new_wo_type("lang_code is not valid", "lang_code", String_.new_u8(lang_code));
|
||||
return lang;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class Scrib_lib_message implements Scrib_lib {
|
||||
case Proc_plain: return Plain(args, rslt);
|
||||
case Proc_check: return Check(args, rslt);
|
||||
case Proc_init_message_for_lang: return Init_message_for_lang(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_plain = 0, Proc_check = 1, Proc_init_message_for_lang = 2;
|
||||
@@ -67,7 +67,7 @@ class Scrib_lib_message_data {
|
||||
for (int i = 0; i < len; i++) {
|
||||
KeyVal kv = ary[i];
|
||||
byte[] kv_key = Bry_.new_a7(kv.Key());
|
||||
Object key_obj = key_hash.Get_by(kv_key); if (key_obj == null) throw Exc_.new_("msg_key is invalid", "key", kv_key);
|
||||
Object key_obj = key_hash.Get_by(kv_key); if (key_obj == null) throw Err_.new_wo_type("msg_key is invalid", "key", kv_key);
|
||||
byte key_tid = ((Byte_obj_val)key_obj).Val();
|
||||
switch (key_tid) {
|
||||
case Key_tid_keys:
|
||||
@@ -85,7 +85,7 @@ class Scrib_lib_message_data {
|
||||
for (int j = 0; j < args_ary_len; j++)
|
||||
args[j] = args_ary[j].Val_to_str_or_empty();
|
||||
break;
|
||||
default: throw Exc_.new_unhandled(key_tid);
|
||||
default: throw Err_.new_unhandled(key_tid);
|
||||
}
|
||||
}
|
||||
return this;
|
||||
@@ -123,7 +123,7 @@ class Scrib_lib_message_data {
|
||||
case Check_tid_exists : return Bry_.Len_gt_0(msg_val);
|
||||
case Check_tid_isBlank : return Bry_.Len_eq_0(msg_val); // REF.MW: $message === false || $message === ''
|
||||
case Check_tid_isDisabled : return Bry_.Len_eq_0(msg_val) || msg_val.length == 1 && msg_val[0] == Byte_ascii.Dash; // REF.MW: $message === false || $message === '' || $message === '-'
|
||||
default : throw Exc_.new_unhandled(chk_tid);
|
||||
default : throw Err_.new_unhandled(chk_tid);
|
||||
}
|
||||
}
|
||||
public byte[] Make_msg(byte[] cur_lang, Xowe_wiki wiki, Xop_ctx ctx, boolean exec_params, byte fmt_tid) {
|
||||
@@ -161,7 +161,7 @@ class Scrib_lib_message_data {
|
||||
public static byte parse_chk_(byte[] key) {return parse_or_fail(check_hash, key, "invalid check arg: {0}");}
|
||||
public static byte parse_or_fail(Hash_adp_bry hash, byte[] key, String fmt) {
|
||||
Object o = hash.Get_by_bry(key);
|
||||
if (o == null) throw Exc_.new_(fmt, "key", String_.new_u8(key)).Stack_erase_1_();
|
||||
if (o == null) throw Err_.new_wo_type(fmt, "key", String_.new_u8(key)).Trace_ignore_add_1_();
|
||||
return ((Byte_obj_val)o).Val();
|
||||
}
|
||||
public static final byte Fmt_tid_parse = 1, Fmt_tid_text = 2, Fmt_tid_plain = 3, Fmt_tid_escaped = 4, Fmt_tid_parseAsBlock = 5;
|
||||
|
||||
@@ -59,7 +59,7 @@ public class Scrib_lib_mw implements Scrib_lib {
|
||||
case Proc_newChildFrame: return NewChildFrame(args, rslt);
|
||||
case Proc_getFrameTitle: return GetFrameTitle(args, rslt);
|
||||
case Proc_setTTL: return SetTTL(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
public static final int
|
||||
@@ -250,7 +250,7 @@ public class Scrib_lib_mw implements Scrib_lib {
|
||||
Xot_invk_mock frame = Xot_invk_mock.new_(parent_frame.Defn_tid(), 0, fnc_name, parser_func_args); // pass something as frame_ttl; choosng fnc_name; DATE:2014-09-21
|
||||
Xol_func_name_itm finder = cur_wiki.Lang().Func_regy().Find_defn(fnc_name, 0, fnc_name_len);
|
||||
Xot_defn defn = finder.Func();
|
||||
if (defn == Xot_defn_.Null) throw Exc_.new_("callParserFunction: function was not found", "function", String_.new_u8(fnc_name));
|
||||
if (defn == Xot_defn_.Null) throw Err_.new_wo_type("callParserFunction: function was not found", "function", String_.new_u8(fnc_name));
|
||||
Bry_bfr bfr = cur_wiki.Utl__bfr_mkr().Get_k004();
|
||||
Xop_ctx fnc_ctx = Xop_ctx.new_sub_(cur_wiki);
|
||||
fnc_ctx.Parse_tid_(Xop_parser_.Parse_tid_page_tmpl); // default xnde names to template; needed for test, but should be in place; DATE:2014-06-27
|
||||
@@ -340,7 +340,7 @@ public class Scrib_lib_mw implements Scrib_lib {
|
||||
public boolean NewChildFrame(Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||
Ordered_hash frame_list = core.Frame_created_list();
|
||||
int frame_list_len = frame_list.Count();
|
||||
if (frame_list_len > 100) throw Exc_.new_("newChild: too many frames");
|
||||
if (frame_list_len > 100) throw Err_.new_wo_type("newChild: too many frames");
|
||||
String frame_id = args.Pull_str(0);
|
||||
Xot_invk frame = Scrib_frame_.Get_frame(core, frame_id);
|
||||
Object ttl_obj = args.Cast_obj_or_null(1); // NOTE: callers must pass named title else title will be false; EX: frame:newChild{'current', 'title0'} -> false; frame:newChild{'current', title='title0'} -> 'title0'; DATE:2014-05-20
|
||||
@@ -351,7 +351,7 @@ public class Scrib_lib_mw implements Scrib_lib {
|
||||
}
|
||||
else {
|
||||
ttl = Xoa_ttl.parse_(cur_wiki, Bry_.new_u8((String)ttl_obj));
|
||||
if (ttl == null) throw Exc_.new_("newChild: invalid title", "title", (String)ttl_obj);
|
||||
if (ttl == null) throw Err_.new_wo_type("newChild: invalid title", "title", (String)ttl_obj);
|
||||
}
|
||||
KeyVal[] args_ary = args.Pull_kv_ary(2);
|
||||
Xot_invk_mock new_frame = Xot_invk_mock.new_(core.Frame_current().Defn_tid(), 0, ttl.Full_txt(), args_ary); // NOTE: use spaces, not unders; REF.MW:$frame->getTitle()->getPrefixedText(); DATE:2014-08-14
|
||||
|
||||
@@ -36,7 +36,7 @@ public class Scrib_lib_site implements Scrib_lib {
|
||||
case Proc_usersInGroup: return UsersInGroup(args, rslt);
|
||||
case Proc_interwikiMap: return InterwikiMap(args, rslt);
|
||||
case Proc_init_site_for_wiki: return Init_site_for_wiki(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_getNsIndex = 0, Proc_pagesInCategory = 1, Proc_pagesInNs = 2, Proc_usersInGroup = 3, Proc_interwikiMap = 4, Proc_init_site_for_wiki = 5;
|
||||
@@ -71,7 +71,7 @@ public class Scrib_lib_site implements Scrib_lib {
|
||||
else if (String_.Eq(filter, "!local"))
|
||||
local = 0;
|
||||
else if (filter != null)
|
||||
throw Exc_.new_("bad argument #1 to 'interwikiMap' (unknown filter '$filter')", "filter", filter);
|
||||
throw Err_.new_wo_type("bad argument #1 to 'interwikiMap' (unknown filter '$filter')", "filter", filter);
|
||||
// TODO: cache interwikimap results
|
||||
Xow_xwiki_mgr xwiki_mgr = core.Wiki().Xwiki_mgr();
|
||||
int xwiki_len = xwiki_mgr.Len();
|
||||
|
||||
@@ -35,7 +35,7 @@ public class Scrib_lib_text implements Scrib_lib {
|
||||
case Proc_killMarkers: return KillMarkers(args, rslt);
|
||||
case Proc_getEntityTable: return GetEntityTable(args, rslt);
|
||||
case Proc_init_text_for_wiki: return Init_text_for_wiki(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_unstrip = 0, Proc_unstripNoWiki = 1, Proc_killMarkers = 2, Proc_getEntityTable = 3, Proc_init_text_for_wiki = 4;
|
||||
|
||||
@@ -45,7 +45,7 @@ public class Scrib_lib_title implements Scrib_lib {
|
||||
case Proc_getCurrentTitle: return GetCurrentTitle(args, rslt);
|
||||
case Proc_protectionLevels: return ProtectionLevels(args, rslt);
|
||||
case Proc_cascadingProtection: return CascadingProtection(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_newTitle = 0, Proc_makeTitle = 1, Proc_getExpensiveData = 2, Proc_getUrl = 3, Proc_getContent = 4, Proc_getFileInfo = 5, Proc_getCurrentTitle = 6, Proc_protectionLevels = 7, Proc_cascadingProtection = 8;
|
||||
@@ -62,7 +62,7 @@ public class Scrib_lib_title implements Scrib_lib {
|
||||
Xowe_wiki wiki = core.Wiki();
|
||||
byte[] ns_bry = null;
|
||||
if (ns_obj != null) {
|
||||
ns_bry = Parse_ns(wiki, ns_obj); if (ns_bry == null) throw Exc_.new_("unknown ns", "ns", Object_.Xto_str_strict_or_empty(ns_bry));
|
||||
ns_bry = Parse_ns(wiki, ns_obj); if (ns_bry == null) throw Err_.new_wo_type("unknown ns", "ns", Object_.Xto_str_strict_or_empty(ns_bry));
|
||||
}
|
||||
if (ns_bry != null) {
|
||||
Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512();
|
||||
@@ -78,7 +78,7 @@ public class Scrib_lib_title implements Scrib_lib {
|
||||
byte[] ttl_bry = args.Pull_bry(0);
|
||||
byte[] url_func_bry = args.Pull_bry(1);
|
||||
Object url_func_obj = url_func_hash.Get_by(url_func_bry);
|
||||
if (url_func_obj == null) throw Exc_.new_("url_function is not valid", "url_func", String_.new_u8(url_func_bry));
|
||||
if (url_func_obj == null) throw Err_.new_wo_type("url_function is not valid", "url_func", String_.new_u8(url_func_bry));
|
||||
byte url_func_tid = ((Byte_obj_val)url_func_obj).Val();
|
||||
byte[] qry_bry = args.Extract_qry_args(wiki, 2);
|
||||
// byte[] proto = Scrib_kv_utl_.Val_to_bry_or(values, 3, null); // NOTE: Scribunto has more conditional logic around argument 2 and setting protocols; DATE:2014-07-07
|
||||
|
||||
@@ -36,7 +36,7 @@ public class Scrib_lib_uri implements Scrib_lib {
|
||||
case Proc_fullUrl: return Url_func(args, rslt, Pfunc_urlfunc.Tid_full);
|
||||
case Proc_canonicalUrl: return Url_func(args, rslt, Pfunc_urlfunc.Tid_canonical);
|
||||
case Proc_init_uri_for_page: return Init_uri_for_page(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_anchorEncode = 0, Proc_localUrl = 1, Proc_fullUrl = 2, Proc_canonicalUrl = 3, Proc_init_uri_for_page = 4;
|
||||
|
||||
@@ -41,7 +41,7 @@ public class Scrib_lib_ustring implements Scrib_lib {
|
||||
case Proc_gmatch_init: return Gmatch_init(args, rslt);
|
||||
case Proc_gmatch_callback: return Gmatch_callback(args, rslt);
|
||||
case Proc_gsub: return Gsub(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_find = 0, Proc_match = 1, Proc_gmatch_init = 2, Proc_gmatch_callback = 3, Proc_gsub = 4;
|
||||
@@ -209,7 +209,7 @@ class Scrib_lib_ustring_gsub_mgr {
|
||||
tmp_repl_tid = Repl_tid_luacbk;
|
||||
repl_func = (Scrib_lua_proc)repl_obj;
|
||||
}
|
||||
else throw Exc_.new_unhandled(ClassAdp_.NameOf_type(repl_type));
|
||||
else throw Err_.new_unhandled(ClassAdp_.NameOf_type(repl_type));
|
||||
}
|
||||
private String Exec_repl(byte repl_tid, byte[] repl_bry, String text, String regx, int limit) {
|
||||
RegxAdp regx_mgr = Scrib_lib_ustring.RegxAdp_new_(core.Ctx(), regx);
|
||||
@@ -316,7 +316,7 @@ class Scrib_lib_ustring_gsub_mgr {
|
||||
tmp_bfr.Add_str(Scrib_kv_utl_.Val_to_str(rslts, 0));
|
||||
break;
|
||||
}
|
||||
default: throw Exc_.new_unhandled(repl_tid);
|
||||
default: throw Err_.new_unhandled(repl_tid);
|
||||
}
|
||||
}
|
||||
static final byte Repl_tid_null = 0, Repl_tid_string = 1, Repl_tid_table = 2, Repl_tid_luacbk = 3;
|
||||
|
||||
@@ -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.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
public class Scrib_lib_wikibase implements Scrib_lib {
|
||||
public Scrib_lib_wikibase(Scrib_core core) {this.core = core;} private Scrib_core core;
|
||||
public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod;
|
||||
@@ -33,7 +33,7 @@ public class Scrib_lib_wikibase implements Scrib_lib {
|
||||
case Proc_getEntity: return GetEntity(args, rslt);
|
||||
case Proc_getEntityId: return GetEntityId(args, rslt);
|
||||
case Proc_getGlobalSiteId: return GetGlobalSiteId(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_getEntity = 0, Proc_getEntityId = 1, Proc_getGlobalSiteId = 2;
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
|
||||
import gplx.xowa.xtns.wdatas.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.core.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.core.*;
|
||||
public class Scrib_lib_wikibase_entity implements Scrib_lib {
|
||||
public Scrib_lib_wikibase_entity(Scrib_core core) {this.core = core;} private Scrib_core core;
|
||||
public Scrib_lua_mod Mod() {return mod;} private Scrib_lua_mod mod;
|
||||
@@ -32,7 +32,7 @@ public class Scrib_lib_wikibase_entity implements Scrib_lib {
|
||||
switch (key) {
|
||||
case Proc_getGlobalSiteId: return GetGlobalSiteId(args, rslt);
|
||||
case Proc_formatPropertyValues: return FormatPropertyValues(args, rslt);
|
||||
default: throw Exc_.new_unhandled(key);
|
||||
default: throw Err_.new_unhandled(key);
|
||||
}
|
||||
}
|
||||
private static final int Proc_getGlobalSiteId = 0, Proc_formatPropertyValues = 1;
|
||||
|
||||
@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.xtns.scribunto.libs; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.scribunto.*;
|
||||
import org.junit.*;
|
||||
import gplx.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
import gplx.core.json.*; import gplx.xowa.xtns.wdatas.*; import gplx.xowa.xtns.wdatas.core.*; import gplx.xowa.xtns.wdatas.parsers.*;
|
||||
public class Scrib_lib_wikibase_srl_tst {
|
||||
@Before public void init() {fxt.Clear();} private Scrib_lib_wikibase_srl_fxt fxt = new Scrib_lib_wikibase_srl_fxt();
|
||||
@Test public void Label() {
|
||||
|
||||
@@ -43,7 +43,7 @@ public class Scrib_regx_converter {
|
||||
bfr.Add(q_flag ? Bry_dollar_escaped : Bry_dollar_literal);
|
||||
break;
|
||||
case Byte_ascii.Paren_bgn: {
|
||||
if (i + 1 >= len) throw Exc_.new_("Unmatched open-paren at pattern character " + Int_.Xto_str(i));
|
||||
if (i + 1 >= len) throw Err_.new_wo_type("Unmatched open-paren at pattern character " + Int_.Xto_str(i));
|
||||
boolean capt_itm = src[i + 1] == Byte_ascii.Paren_end; // current is "()"
|
||||
++grps_len;
|
||||
capt_list.Add(KeyVal_.int_(grps_len, capt_itm));
|
||||
@@ -54,13 +54,13 @@ public class Scrib_regx_converter {
|
||||
}
|
||||
case Byte_ascii.Paren_end:
|
||||
if (grps_open.Count() == 0)
|
||||
throw Exc_.new_("Unmatched close-paren at pattern character " + Int_.Xto_str(i));
|
||||
throw Err_.new_wo_type("Unmatched close-paren at pattern character " + Int_.Xto_str(i));
|
||||
List_adp_.DelAt_last(grps_open);
|
||||
bfr.Add_byte(Byte_ascii.Paren_end);
|
||||
break;
|
||||
case Byte_ascii.Percent:
|
||||
++i;
|
||||
if (i >= len) throw Exc_.new_("malformed pattern (ends with '%')");
|
||||
if (i >= len) throw Err_.new_wo_type("malformed pattern (ends with '%')");
|
||||
Object percent_obj = percent_hash.Get_by_mid(src, i, i + 1);
|
||||
if (percent_obj != null) {
|
||||
bfr.Add((byte[])percent_obj);
|
||||
@@ -71,7 +71,7 @@ public class Scrib_regx_converter {
|
||||
switch (nxt) {
|
||||
case Byte_ascii.Ltr_b: // EX: "%b()"
|
||||
i += 2;
|
||||
if (i >= len) throw Exc_.new_("malformed pattern (missing arguments to \'%b\')");
|
||||
if (i >= len) throw Err_.new_wo_type("malformed pattern (missing arguments to \'%b\')");
|
||||
byte char_0 = src[i - 1];
|
||||
byte char_1 = src[i];
|
||||
if (char_0 == char_1) { // same char: easier regex; REF.MW: $bfr .= "{$d1}[^$d1]*$d1";
|
||||
@@ -98,7 +98,7 @@ public class Scrib_regx_converter {
|
||||
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
|
||||
grps_len = nxt - Byte_ascii.Num_0;
|
||||
if (grps_len == 0 || grps_len > capt_list.Count() || grps_open_Has(grps_open, grps_len))
|
||||
throw Exc_.new_("invalid capture index %" + grps_len + " at pattern character " + Int_.Xto_str(i));
|
||||
throw Err_.new_wo_type("invalid capture index %" + grps_len + " at pattern character " + Int_.Xto_str(i));
|
||||
bfr.Add(Bry_bf2_seg_0).Add_int_variable(grps_len);//.Add(Bry_bf2_seg_1); // $bfr .= "\\g{m$grps_len}";
|
||||
break;
|
||||
default:
|
||||
@@ -153,11 +153,11 @@ public class Scrib_regx_converter {
|
||||
}
|
||||
if (stop) break;
|
||||
}
|
||||
if (i >= len) throw Exc_.new_("Missing close-bracket for character set beginning at pattern character $nxt_pos");
|
||||
if (i >= len) throw Err_.new_wo_type("Missing close-bracket for character set beginning at pattern character $nxt_pos");
|
||||
bfr.Add_byte(Byte_ascii.Brack_end);
|
||||
q_flag = true;
|
||||
break;
|
||||
case Byte_ascii.Brack_end: throw Exc_.new_("Unmatched close-bracket at pattern character " + Int_.Xto_str(i));
|
||||
case Byte_ascii.Brack_end: throw Err_.new_wo_type("Unmatched close-bracket at pattern character " + Int_.Xto_str(i));
|
||||
case Byte_ascii.Dot:
|
||||
q_flag = true;
|
||||
bfr.Add_byte(Byte_ascii.Dot);
|
||||
@@ -183,7 +183,7 @@ public class Scrib_regx_converter {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (grps_open.Count() > 0) throw Exc_.new_("Unclosed capture beginning at pattern character " + Int_.cast_(grps_open.Get_at(0)));
|
||||
if (grps_open.Count() > 0) throw Err_.new_wo_type("Unclosed capture beginning at pattern character " + Int_.cast_(grps_open.Get_at(0)));
|
||||
// bfr.Add(Bry_regx_end); // NOTE: do not add PHP /us at end; u=PCRE_UTF8 which is not needed for Java; s=PCRE_DOTALL which will be specified elsewhere
|
||||
regx = bfr.Xto_str_and_clear();
|
||||
return regx;
|
||||
|
||||
Reference in New Issue
Block a user