diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwGlobalFunctions.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwGlobalFunctions.java index 170dff3e7..468306631 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwGlobalFunctions.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwGlobalFunctions.java @@ -1402,7 +1402,7 @@ public class XomwGlobalFunctions { * * @see Message::__construct */ - public static XomwMessage wfMessage(Xomw_parser_env env, String key) { + public static XomwMessage wfMessage(XomwParserEnv env, String key) { // function wfMessage( $key /*...*/ ) { // $message = new Message( $key ); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker.java index b18e51c8c..38ba67cbe 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker.java @@ -26,7 +26,7 @@ import gplx.xowa.mediawiki.includes.parsers.lnkis.*; * P7: $html = HtmlArmor::getHtml($text); */ public class XomwLinker { -// private Xomw_parser_env env; +// private XomwParserEnv env; private final Bry_bfr tmp = Bry_bfr_.New(), tmp_2 = Bry_bfr_.New(); private final Linker_rel_splitter splitter = new Linker_rel_splitter(); private final XomwHtml html_utl = new XomwHtml(); @@ -47,11 +47,11 @@ public class XomwLinker { , Img_class__thumbborder = Bry_.new_a7("thumbborder") , Img_class__thumbimage = Bry_.new_a7("thumbimage") ; - private final Xomw_link_renderer link_renderer; - public XomwLinker(Xomw_link_renderer link_renderer) { + private final XomwLinkRenderer link_renderer; + public XomwLinker(XomwLinkRenderer link_renderer) { this.link_renderer = link_renderer; } - public void Init_by_wiki(Xomw_parser_env env, Btrie_slim_mgr trie) { + public void Init_by_wiki(XomwParserEnv env, Btrie_slim_mgr trie) { // this.env = env; this.split_trail_trie = trie; } @@ -331,7 +331,7 @@ public class XomwLinker { // @since 1.20 // @return String HTML for an image, with links, wrappers, etc. // XO.MW:SYNC:1.29; DATE:2017-02-08 - public void makeImageLink(Bry_bfr bfr, Xomw_parser_env env, Xomw_parser_ctx pctx, XomwParserIface parser, XomwTitle title, XomwFile file, Xomw_params_frame frameParams, Xomw_params_handler handlerParams, Object time, byte[] query, int widthOption) { + public void makeImageLink(Bry_bfr bfr, XomwParserEnv env, XomwParserCtx pctx, XomwParserIface parser, XomwTitle title, XomwFile file, Xomw_params_frame frameParams, Xomw_params_handler handlerParams, Object time, byte[] query, int widthOption) { // XO.MW.HOOK:ImageBeforeProduceHTML if (file != null && !file.allowInlineDisplay()) { @@ -534,7 +534,7 @@ public class XomwLinker { * @return String */ // XO.MW:SYNC:1.29; DATE:2017-02-08 - private void makeThumbLink2(Bry_bfr bfr, Xomw_parser_env env, Xomw_parser_ctx pctx, XomwTitle title, XomwFile file, Xomw_params_frame frameParams, Xomw_params_handler handlerParams, Object time, byte[] query) { + private void makeThumbLink2(Bry_bfr bfr, XomwParserEnv env, XomwParserCtx pctx, XomwTitle title, XomwFile file, Xomw_params_frame frameParams, Xomw_params_handler handlerParams, Object time, byte[] query) { boolean exists = file != null && file.exists(); int page = handlerParams.page; diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker_NormalizeSubpageLinkTest.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker_NormalizeSubpageLinkTest.java index 2efb6cc50..55047480f 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker_NormalizeSubpageLinkTest.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker_NormalizeSubpageLinkTest.java @@ -26,7 +26,7 @@ public class XomwLinker_NormalizeSubpageLinkTest { @Test public void Dot2__trailing() {fxt.Test__normalize_subpage_link("A/B/C" , "../../Z/" , "" , "A/Z" , "Z");} } class XomwLinker_NormalizeSubpageLinkFxt { - private final XomwLinker mgr = new XomwLinker(new gplx.xowa.mediawiki.includes.linkers.Xomw_link_renderer(new XomwSanitizer())); + private final XomwLinker mgr = new XomwLinker(new gplx.xowa.mediawiki.includes.linkers.XomwLinkRenderer(new XomwSanitizer())); private final XomwLinker_NormalizeSubpageLink normalize_subpage_link = new XomwLinker_NormalizeSubpageLink(); public void Test__normalize_subpage_link(String page_title_str, String link, String text, String expd_link, String expd_text) { mgr.normalizeSubpageLink(normalize_subpage_link, XomwTitle.newFromText(Bry_.new_u8(page_title_str)), Bry_.new_u8(link), Bry_.new_u8(text)); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker_SplitTrailTest.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker_SplitTrailTest.java index cf0fce4e8..69ebb9c0a 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker_SplitTrailTest.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwLinker_SplitTrailTest.java @@ -21,13 +21,13 @@ public class XomwLinker_SplitTrailTest { @Test public void None() {fxt.Test__split_trail(" abc" , null , " abc");} } class XomwLinker_SplitTrailFxt { - private final XomwLinker linker = new XomwLinker(new gplx.xowa.mediawiki.includes.linkers.Xomw_link_renderer(new XomwSanitizer())); + private final XomwLinker linker = new XomwLinker(new gplx.xowa.mediawiki.includes.linkers.XomwLinkRenderer(new XomwSanitizer())); private final Btrie_slim_mgr trie = Btrie_slim_mgr.cs(); public XomwLinker_SplitTrailFxt() { String[] ary = new String[] {"a", "b", "c", "d", "e", "f"}; for (String itm : ary) trie.Add_str_str(itm, itm); - linker.Init_by_wiki(new Xomw_parser_env(), trie); + linker.Init_by_wiki(new XomwParserEnv(), trie); } public void Test__split_trail(String trail_str, String expd_inside, String expd_trail) { byte[][] split_trail = linker.splitTrail(Bry_.new_u8(trail_str)); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwSanitizer.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwSanitizer.java index 9af46f6cf..cc84f8794 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwSanitizer.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/XomwSanitizer.java @@ -1264,7 +1264,7 @@ public class XomwSanitizer { // * @return String // * @private // */ - public void normalizeCharReferences(Xomw_parser_bfr pbfr) { + public void normalizeCharReferences(XomwParserBfr pbfr) { // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwFile.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwFile.java index a00b31d8d..f8c0e8d7b 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwFile.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwFile.java @@ -21,7 +21,7 @@ public class XomwFile { * P8: normalizeExtension * P8: normalizeTitle */ - private final Xomw_parser_env env; + private final XomwParserEnv env; // // Bitfield values akin to the Revision deletion constants // static final DELETED_FILE = 1; // static final DELETED_COMMENT = 2; @@ -265,7 +265,7 @@ public class XomwFile { // return strcmp(a.getName(), b.getName()); // } - public XomwFile(Xomw_parser_env env, XomwTitle title, XomwFileRepo repo) { + public XomwFile(XomwParserEnv env, XomwTitle title, XomwFileRepo repo) { this.env = env; this.title = title; // change title.getDBKey to normalizeTitle diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwFileFinderMock.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwFileFinderMock.java index 7d05ffa23..66427eeee 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwFileFinderMock.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwFileFinderMock.java @@ -16,8 +16,8 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt package gplx.xowa.mediawiki.includes.filerepo.file; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.filerepo.*; import gplx.xowa.mediawiki.includes.parsers.*; public class XomwFileFinderMock implements XomwFileFinder { - private final Xomw_parser_env env; - public XomwFileFinderMock(Xomw_parser_env env) {this.env = env;} + private final XomwParserEnv env; + public XomwFileFinderMock(XomwParserEnv env) {this.env = env;} private final Hash_adp_bry hash = Hash_adp_bry.cs(); public void Clear() {hash.Clear();} public XomwFile Find_file(XomwTitle ttl) { diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwLocalFile.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwLocalFile.java index 8066c5cc4..1798e9049 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwLocalFile.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/filerepo/file/XomwLocalFile.java @@ -186,7 +186,7 @@ public class XomwLocalFile extends XomwFile {// static final VERSION = 10; // c // ]; // } - public XomwLocalFile(Xomw_parser_env env, XomwTitle title, XomwFileRepo repo, int w, int h, byte[] mime) {super(env, title, repo); + public XomwLocalFile(XomwParserEnv env, XomwTitle title, XomwFileRepo repo, int w, int h, byte[] mime) {super(env, title, repo); this.width = w; this.height = h; this.mime = mime; diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/Xomw_link_renderer.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/XomwLinkRenderer.java similarity index 95% rename from gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/Xomw_link_renderer.java rename to gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/XomwLinkRenderer.java index e40e4dc3d..98d0b17a6 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/Xomw_link_renderer.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/XomwLinkRenderer.java @@ -28,7 +28,7 @@ import gplx.xowa.mediawiki.includes.htmls.*; * @see https://www.mediawiki.org/wiki/Manual:LinkRenderer * @since 1.28 */ -public class Xomw_link_renderer { +public class XomwLinkRenderer { /** * Whether to force the pretty article path * @@ -73,7 +73,7 @@ public class Xomw_link_renderer { // * @param TitleFormatter $titleFormatter // * @param LinkCache $linkCache // */ - public Xomw_link_renderer(XomwSanitizer sanitizer) { // TitleFormatter $titleFormatter, LinkCache $linkCache + public XomwLinkRenderer(XomwSanitizer sanitizer) { // TitleFormatter $titleFormatter, LinkCache $linkCache // this.titleFormatter = $titleFormatter; // this.linkCache = $linkCache; this.sanitizer = sanitizer; diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/Xomw_link_renderer__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/XomwLinkRendererTest.java similarity index 75% rename from gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/Xomw_link_renderer__tst.java rename to gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/XomwLinkRendererTest.java index 9c84bb45a..2f69e0201 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/Xomw_link_renderer__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/linkers/XomwLinkRendererTest.java @@ -15,18 +15,18 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.mediawiki.includes.linkers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; // import org.junit.*; -// public class Xomw_link_renderer__tst { -// private final Xomw_link_renderer__fxt fxt = new Xomw_link_renderer__fxt(); +// public class XomwLinkRendererTest { +// private final XomwLinkRendererFxt fxt = new XomwLinkRendererFxt(); /* Make_broken_link target.Has_fragment() */ // } -// class Xomw_link_renderer__fxt { -// private final Xomw_link_renderer wkr = new Xomw_link_renderer(new Xomw_parser()); +// class XomwLinkRendererFxt { +// private final XomwLinkRenderer wkr = new XomwLinkRenderer(new Xomw_parser()); // public void Test__parse(String src_str, String expd) { // byte[] src_bry = Bry_.new_u8(src_str); -// wkr.Replace_external_links(new Xomw_parser_ctx(), pbfr.Init(src_bry)); +// wkr.Replace_external_links(new XomwParserCtx(), pbfr.Init(src_bry)); // if (apos) expd = gplx.langs.htmls.Gfh_utl.Replace_apos(expd); // Tfds.Eq_str_lines(expd, pbfr.Rslt().To_str_and_clear(), src_str); // } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/media/XomwImageHandlerTest.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/media/XomwImageHandlerTest.java index 9389d7d77..7e27401b5 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/media/XomwImageHandlerTest.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/media/XomwImageHandlerTest.java @@ -30,7 +30,7 @@ public class XomwImageHandlerTest { class XomwImageHandler_fxt { private final XomwImageHandler handler; private final XomwFileRepo repo = new XomwFileRepo(Bry_.new_a7("/orig"), Bry_.new_a7("/thumb")); - private final Xomw_parser_env env = new Xomw_parser_env(); + private final XomwParserEnv env = new XomwParserEnv(); private XomwFile file; public XomwImageHandler_fxt() { handler = new XomwTransformationalImageHandler(Bry_.new_a7("test_handler")); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwLinkHolderArray.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwLinkHolderArray.java index bbba14df5..2d18b0cb7 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwLinkHolderArray.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwLinkHolderArray.java @@ -261,11 +261,11 @@ public class XomwLinkHolderArray { * * @param String $text */ - public boolean replace(Xomw_parser_bfr pbfr) { + public boolean replace(XomwParserBfr pbfr) { return this.replaceInternal(pbfr); // $this->replaceInterwiki( $text ); } - public byte[] replace(Xomw_parser_bfr pbfr, byte[] text) { + public byte[] replace(XomwParserBfr pbfr, byte[] text) { boolean rv = this.replace(pbfr.Init(text)); return rv ? pbfr.Trg().To_bry_and_clear() : pbfr.Src().To_bry_and_clear(); } @@ -274,7 +274,7 @@ public class XomwLinkHolderArray { * Replace @gplx.Internal protected links * @param String $text */ - private boolean replaceInternal(Xomw_parser_bfr pbfr) { + private boolean replaceInternal(XomwParserBfr pbfr) { if (internals.Len() == 0) { return false; } @@ -285,7 +285,7 @@ public class XomwLinkHolderArray { // $colours = []; // $linkCache = LinkCache::singleton(); // $output = this.parent->getOutput(); - Xomw_link_renderer linkRenderer = this.parent.getLinkRenderer(); + XomwLinkRenderer linkRenderer = this.parent.getLinkRenderer(); // // $dbr = wfGetDB( DB_REPLICA ); // diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwLinkHolderArrayTest.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwLinkHolderArrayTest.java index 304d5ff5d..27eb9d671 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwLinkHolderArrayTest.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwLinkHolderArrayTest.java @@ -24,8 +24,8 @@ public class XomwLinkHolderArrayTest { } } class XomwLinkHolderArrayFxt { - private final XomwLinkHolderArray holders = new XomwLinkHolderArray(new Xomw_parser()); - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwLinkHolderArray holders = new XomwLinkHolderArray(new XomwParser()); + private final XomwParserBfr pbfr = new XomwParserBfr(); private boolean apos = true; public XomwLinkHolderArrayFxt() { } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParser.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParser.java index 573990ed6..f64a92ee1 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParser.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParser.java @@ -15,6 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.mediawiki.includes.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.core.btries.*; +import gplx.core.net.*; import gplx.xowa.mediawiki.includes.htmls.*; import gplx.xowa.mediawiki.includes.linkers.*; import gplx.xowa.mediawiki.includes.parsers.tables.*; @@ -252,11 +253,13 @@ public class XomwParser implements XomwParserIface { /** * @var LinkRenderer */ - private Xomw_link_renderer mLinkRenderer; + private XomwLinkRenderer mLinkRenderer; + + private int mMarkerIndex = 0; // XOWA private final Bry_bfr tmp_bfr = Bry_bfr_.New(); - private final Xomw_parser_env env = new Xomw_parser_env(); + private final XomwParserEnv env = new XomwParserEnv(); private final XomwSanitizer sanitizer = new XomwSanitizer(); private final Xomw_table_wkr tableWkr; private final Xomw_hr_wkr hrWkr = new Xomw_hr_wkr(); @@ -274,7 +277,10 @@ public class XomwParser implements XomwParserIface { private static Xomw_regex_boundary regex_boundary; private static Xomw_regex_url regex_url; private final Btrie_rv trv = new Btrie_rv(); -// private int marker_index = 0; + private final Bry_bfr tmp = Bry_bfr_.New(); + + public XomwSanitizer Sanitizer() {return sanitizer;} + public XomwStripState Strip_state() {return mStripState;} // /** // * @param array $conf @@ -302,7 +308,7 @@ public class XomwParser implements XomwParserIface { // wfDebug(__CLASS__ . ": using preprocessor: {this.mPreprocessorClass}\n"); // } private final Btrie_slim_mgr protocols_trie; - public Xomw_parser_env Env() {return env;} + public XomwParserEnv Env() {return env;} public Xomw_lnki_wkr Lnki_wkr() {return lnkiWkr;} public XomwLinker Linker() {return linker;} private final XomwLinker linker; public byte[] Get_external_link_rel; @@ -318,9 +324,9 @@ public class XomwParser implements XomwParserIface { } } - this.mLinkRenderer = new Xomw_link_renderer(sanitizer); + this.mLinkRenderer = new XomwLinkRenderer(sanitizer); this.linker = new XomwLinker(mLinkRenderer); - this.protocols_trie = Xomw_parser.Protocols__dflt(); + this.protocols_trie = XomwParser.Protocols__dflt(); this.mLinkHolders = new XomwLinkHolderArray(this); this.tableWkr = new Xomw_table_wkr(tmp_bfr, sanitizer, mStripState); @@ -458,8 +464,8 @@ public class XomwParser implements XomwParserIface { // $text, Title $title, ParserOptions $options, // $linestart = true, $clearState = true, $revid = null // ) { - public void parse(Xomw_parser_bfr pbfr, Xomw_parser_ctx pctx,byte[] text, XomwTitle title, XomwParserOptions options) {this.parse(pbfr, pctx, text, title, options, true, true, -1);} - public void parse(Xomw_parser_bfr pbfr, Xomw_parser_ctx pctx, + public void parse(XomwParserBfr pbfr, XomwParserCtx pctx,byte[] text, XomwTitle title, XomwParserOptions options) {this.parse(pbfr, pctx, text, title, options, true, true, -1);} + public void parse(XomwParserBfr pbfr, XomwParserCtx pctx, byte[] text, XomwTitle title, XomwParserOptions options, boolean linestart, boolean clearState, int revid ) { @@ -985,14 +991,14 @@ public class XomwParser implements XomwParserIface { * @since 1.28 * @return LinkRenderer */ - public Xomw_link_renderer getLinkRenderer() { + public XomwLinkRenderer getLinkRenderer() { if (this.mLinkRenderer == null) { // this.mLinkRenderer = XomwMediaWikiServices.getInstance() // .getLinkRendererFactory()->create(); // this.mLinkRenderer->setStubThreshold( // this.getOptions()->getStubThreshold() // ); - this.mLinkRenderer = new Xomw_link_renderer(sanitizer); + this.mLinkRenderer = new XomwLinkRenderer(sanitizer); } return this.mLinkRenderer; @@ -1092,23 +1098,23 @@ public class XomwParser implements XomwParserIface { // public function getStripList() { // return this.mStripList; // } -// -// /** -// * Add an item to the strip state -// * Returns the unique tag which must be inserted into the stripped text -// * The tag will be replaced with the original text in unstrip() -// * -// * @param String $text -// * -// * @return String -// */ -// public function insertStripItem($text) { -// $marker = self::MARKER_PREFIX . "-item-{this.mMarkerIndex}-" . self::MARKER_SUFFIX; -// this.mMarkerIndex++; -// this.mStripState->addGeneral($marker, $text); -// return $marker; -// } -// + + /** + * Add an item to the strip state + * Returns the unique tag which must be inserted into the stripped text + * The tag will be replaced with the original text in unstrip() + * + * @param String $text + * + * @return String + */ + public byte[] Insert_strip_item(byte[] text) { + byte[] marker = tmp.Add_bry_many(MARKER_PREFIX, STRIP_ITEM).Add_int_variable(this.mMarkerIndex).Add(MARKER_SUFFIX).To_bry_and_clear(); + this.mMarkerIndex++; + this.mStripState.addGeneral(marker, text); + return marker; + } + /** * parse the wiki syntax used to render tables * @@ -1132,8 +1138,8 @@ public class XomwParser implements XomwParserIface { * @return String */ // isMain=tru - public void internalParse(Xomw_parser_bfr pbfr, Xomw_parser_ctx pctx, byte[] text) {internalParse(pbfr, pctx, text, true, false);} - public void internalParse(Xomw_parser_bfr pbfr, Xomw_parser_ctx pctx, byte[] text, boolean isMain, boolean frame) { + public void internalParse(XomwParserBfr pbfr, XomwParserCtx pctx, byte[] text) {internalParse(pbfr, pctx, text, true, false);} + public void internalParse(XomwParserBfr pbfr, XomwParserCtx pctx, byte[] text, boolean isMain, boolean frame) { pbfr.Init(text); // $origText = text; @@ -1185,7 +1191,7 @@ public class XomwParser implements XomwParserIface { // replaceInternalLinks may sometimes leave behind // absolute URLs, which have to be masked to hide them from replaceExternalLinks - Xomw_parser_bfr_.Replace(pbfr, Bry__marker__noparse, Bry_.Empty); // $text = str_replace(self::MARKER_PREFIX . 'NOPARSE', '', $text); + XomwParserBfr_.Replace(pbfr, Bry__marker__noparse, Bry_.Empty); // $text = str_replace(self::MARKER_PREFIX . 'NOPARSE', '', $text); magiclinksWkr.doMagicLinks(pctx, pbfr); // $text = $this->formatHeadings($text, $origText, $isMain); @@ -1200,7 +1206,7 @@ public class XomwParser implements XomwParserIface { * @param boolean $linestart * @return String */ - public void internalParseHalfParsed(Xomw_parser_bfr pbfr, Xomw_parser_ctx pctx, boolean isMain, boolean lineStart) { + public void internalParseHalfParsed(XomwParserBfr pbfr, XomwParserCtx pctx, boolean isMain, boolean lineStart) { this.mStripState.unstripGeneral(pbfr); // MW.HOOK:ParserAfterUnstrip @@ -4123,11 +4129,11 @@ public class XomwParser implements XomwParserIface { * @param String $text * @param int $options */ - public void replaceLinkHolders(Xomw_parser_bfr pbfr) { + public void replaceLinkHolders(XomwParserBfr pbfr) { // this.mLinkHolders.replace(text); this.mLinkHolders.replace(pbfr); } - private final Xomw_parser_bfr tmp_pbfr = new Xomw_parser_bfr(); + private final XomwParserBfr tmp_pbfr = new XomwParserBfr(); public byte[] replaceLinkHolders(byte[] text) { // this.mLinkHolders.replace(text); this.mLinkHolders.replace(tmp_pbfr.Init(text)); @@ -5325,7 +5331,25 @@ public class XomwParser implements XomwParserIface { // OutputPage::setupOOUI(); // this.mOutput->setEnableOOUI(true); // } - private static final byte[] // Bry__strip_state_item = Bry_.new_a7("-item-") - Bry__noparse = Bry_.new_a7("NOPARSE"); - private static final byte[] Bry__marker__noparse = Bry_.Add(XomwStripState.Bry__marker__bgn, Bry__noparse); + public static final String MARKER_PREFIX_STR = "\u007f'\"`UNIQ-"; + public static final byte[] + MARKER_PREFIX = Bry_.new_a7(MARKER_PREFIX_STR) + , MARKER_SUFFIX = Bry_.new_a7("-QINU`\"'\u007f") + ; + private static final byte[] + STRIP_ITEM = Bry_.new_a7("-item-") + , Bry__noparse = Bry_.new_a7("NOPARSE") + ; + private static final byte[] Bry__marker__noparse = Bry_.Add(MARKER_PREFIX, Bry__noparse); + public static Btrie_slim_mgr Protocols__dflt() { + Btrie_slim_mgr rv = Btrie_slim_mgr.ci_a7(); + Gfo_protocol_itm[] ary = Gfo_protocol_itm.Ary(); + for (Gfo_protocol_itm itm : ary) { + byte[] key = itm.Text_bry(); // EX: "https://" + rv.Add_obj(key, key); + } + byte[] bry__relative = Bry_.new_a7("//"); + rv.Add_obj(bry__relative, bry__relative); // REF.MW: "$this->mUrlProtocols = wfUrlProtocols();"; "wfUrlProtocols( $includeProtocolRelative = true )" + return rv; + } } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_bfr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserBfr.java similarity index 84% rename from gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_bfr.java rename to gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserBfr.java index d3c5c27e7..e468d7ccd 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_bfr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserBfr.java @@ -14,17 +14,17 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.mediawiki.includes.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; -public class Xomw_parser_bfr { // manages 2 bfrs to eliminate multiple calls to new memory allocations ("return bfr.To_bry_and_clear()") +public class XomwParserBfr { // manages 2 bfrs to eliminate multiple calls to new memory allocations ("return bfr.To_bry_and_clear()") private final Bry_bfr bfr_1 = Bry_bfr_.New(), bfr_2 = Bry_bfr_.New(); private Bry_bfr src, trg; - public Xomw_parser_bfr() { + public XomwParserBfr() { this.src = bfr_1; this.trg = bfr_2; } public Bry_bfr Src() {return src;} public Bry_bfr Trg() {return trg;} public Bry_bfr Rslt() {return src;} - public Xomw_parser_bfr Init(byte[] text) { + public XomwParserBfr Init(byte[] text) { // resize each bfr once by guessing that html_len = text_len * 2 int text_len = text.length; int html_len = text_len * 2; diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_bfr_.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserBfr_.java similarity index 92% rename from gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_bfr_.java rename to gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserBfr_.java index a0854f8e9..54f7b0854 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_bfr_.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserBfr_.java @@ -14,8 +14,8 @@ GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.mediawiki.includes.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; -public class Xomw_parser_bfr_ { - public static void Replace(Xomw_parser_bfr pbfr, byte[] find, byte[] repl) { +public class XomwParserBfr_ { + public static void Replace(XomwParserBfr pbfr, byte[] find, byte[] repl) { // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_ctx.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserCtx.java similarity index 96% rename from gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_ctx.java rename to gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserCtx.java index ec4635716..4c43bd7f9 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_ctx.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserCtx.java @@ -15,7 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.mediawiki.includes.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.lnkis.*; -public class Xomw_parser_ctx { +public class XomwParserCtx { public XomwTitle Page_title() {return page_title;} private XomwTitle page_title; public Xomw_image_params Lnki_wkr__make_image__img_params = new Xomw_image_params(); public byte[][] Lnki_wkr__make_image__match_magic_word = new byte[2][]; diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_env.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserEnv.java similarity index 92% rename from gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_env.java rename to gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserEnv.java index d07d4fbdc..1a4341216 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser_env.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserEnv.java @@ -15,7 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.mediawiki.includes.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.filerepo.file.*; import gplx.xowa.mediawiki.includes.media.*; -public class Xomw_parser_env { +public class XomwParserEnv { public byte[] Lang__align_end = Bry_.new_a7("right"); public int User__default__thumbsize = 220; @@ -28,5 +28,5 @@ public class Xomw_parser_env { public XomwFileFinder File_finder() {return file_finder;} private XomwFileFinder file_finder = new XomwFileFinderNoop(); public XomwMediaHandlerFactory MediaHandlerFactory() {return mediaHandlerFactory;} private final XomwMediaHandlerFactory mediaHandlerFactory = new XomwMediaHandlerFactory(); - public Xomw_parser_env File_finder_(XomwFileFinder v) {file_finder = v; return this;} + public XomwParserEnv File_finder_(XomwFileFinder v) {file_finder = v; return this;} } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserIface.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserIface.java index 48c4a6293..7c7e44ba3 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserIface.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserIface.java @@ -19,7 +19,7 @@ import gplx.xowa.mediawiki.includes.linkers.*; public interface XomwParserIface { int nextLinkID(); XomwParserOptions getOptions(); - Xomw_link_renderer getLinkRenderer(); + XomwLinkRenderer getLinkRenderer(); byte[] armorLinks(Bry_bfr trg, byte[] src, int src_bgn, int src_end); Xomw_atr_mgr getExternalLinkAttribs(Xomw_atr_mgr atrs); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserTest.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserTest.java index 7cd87f739..e2814e054 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserTest.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwParserTest.java @@ -59,8 +59,8 @@ public class XomwParserTest { } class XomwParserFxt { private final XomwParser parser = new XomwParser(); - private final Xomw_parser_ctx pctx = new Xomw_parser_ctx(); - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwParserCtx pctx = new XomwParserCtx(); + private final XomwParserBfr pbfr = new XomwParserBfr(); public XomwParserFxt() { Xoae_app app = Xoa_app_fxt.Make__app__edit(); Xowe_wiki wiki = Xoa_app_fxt.Make__wiki__edit(app); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwStripState.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwStripState.java index 7ceecb349..8c27228d9 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwStripState.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/XomwStripState.java @@ -125,10 +125,10 @@ public class XomwStripState { } // XOWA - public void unstripGeneral(Xomw_parser_bfr pbfr) {unstripType(TYPE_GENERAL, pbfr);} - public void unstripNoWiki(Xomw_parser_bfr pbfr) {unstripType(TYPE_NOWIKI , pbfr);} - public void unstripBoth(Xomw_parser_bfr pbfr) {unstripType(TYPE_BOTH , pbfr);} - private boolean unstripType(byte tid, Xomw_parser_bfr pbfr) { + public void unstripGeneral(XomwParserBfr pbfr) {unstripType(TYPE_GENERAL, pbfr);} + public void unstripNoWiki(XomwParserBfr pbfr) {unstripType(TYPE_NOWIKI , pbfr);} + public void unstripBoth(XomwParserBfr pbfr) {unstripType(TYPE_BOTH , pbfr);} + private boolean unstripType(byte tid, XomwParserBfr pbfr) { // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_block_level_pass.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_block_level_pass.java index 10816107f..4175ad0fc 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_block_level_pass.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_block_level_pass.java @@ -23,7 +23,7 @@ public class Xomw_block_level_pass { private int last_section; private byte[] find_colon_no_links__before, find_colon_no_links__after; - public void doBlockLevels(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr, boolean line_start) { + public void doBlockLevels(XomwParserCtx pctx, XomwParserBfr pbfr, boolean line_start) { // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_block_level_pass__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_block_level_pass__tst.java index 1fc9d82c6..89397208f 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_block_level_pass__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_block_level_pass__tst.java @@ -29,8 +29,8 @@ public class Xomw_block_level_pass__tst { } class Xomw_block_level_pass__fxt { private final Xomw_block_level_pass block_level_pass = new Xomw_block_level_pass(); - private final Xomw_parser_ctx pctx = new Xomw_parser_ctx(); - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwParserCtx pctx = new XomwParserCtx(); + private final XomwParserBfr pbfr = new XomwParserBfr(); private boolean apos = true; public void Test__do_block_levels(String src, String expd) { if (apos) expd = gplx.langs.htmls.Gfh_utl.Replace_apos(expd); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser.java deleted file mode 100644 index 985f7a084..000000000 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/Xomw_parser.java +++ /dev/null @@ -1,329 +0,0 @@ -/* -XOWA: the XOWA Offline Wiki Application -Copyright (C) 2012-2017 gnosygnu@gmail.com - -XOWA is licensed under the terms of the General Public License (GPL) Version 3, -or alternatively under the terms of the Apache License Version 2.0. - -You may use XOWA according to either of these licenses as is most appropriate -for your project on a case-by-case basis. - -The terms of each license can be found in the source code repository: - -GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt -Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt -*/ -package gplx.xowa.mediawiki.includes.parsers; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; -import gplx.core.btries.*; import gplx.core.net.*; -import gplx.xowa.mediawiki.includes.parsers.prepros.*; import gplx.xowa.mediawiki.includes.parsers.headings.*; -import gplx.xowa.mediawiki.includes.parsers.quotes.*; import gplx.xowa.mediawiki.includes.parsers.tables.*; import gplx.xowa.mediawiki.includes.parsers.hrs.*; import gplx.xowa.mediawiki.includes.parsers.nbsps.*; -import gplx.xowa.mediawiki.includes.parsers.lnkes.*; import gplx.xowa.mediawiki.includes.parsers.lnkis.*; import gplx.xowa.mediawiki.includes.parsers.magiclinks.*; import gplx.xowa.mediawiki.includes.parsers.doubleunders.*; -import gplx.xowa.mediawiki.includes.linkers.*; -import gplx.xowa.mediawiki.includes.htmls.*; -public class Xomw_parser implements XomwParserIface { - private final Xomw_parser_ctx pctx = new Xomw_parser_ctx(); - private final Xomw_table_wkr table_wkr; - private final Xomw_hr_wkr hr_wkr = new Xomw_hr_wkr(); - private final Xomw_lnke_wkr lnke_wkr; - private final Xomw_nbsp_wkr nbsp_wkr = new Xomw_nbsp_wkr(); - private final Xomw_block_level_pass block_wkr = new Xomw_block_level_pass(); - private final Xomw_heading_wkr heading_wkr = new Xomw_heading_wkr(); - private final Xomw_magiclinks_wkr magiclinks_wkr; - private final Xomw_doubleunder_wkr doubleunder_wkr = new Xomw_doubleunder_wkr(); - private final Xomw_link_renderer link_renderer; - private final XomwLinkHolderArray holders; - private final Xomw_heading_cbk__html heading_wkr_cbk; - private final Btrie_slim_mgr protocols_trie; - private final Xomw_doubleunder_data doubleunder_data = new Xomw_doubleunder_data(); - private static Xomw_regex_space regex_space; - private static Xomw_regex_boundary regex_boundary; - private static Xomw_regex_url regex_url; - private final Btrie_rv trv = new Btrie_rv(); - private int marker_index = 0; - // private final Xomw_prepro_wkr prepro_wkr = new Xomw_prepro_wkr(); - public Xomw_parser_env Env() {return env;} private final Xomw_parser_env env = new Xomw_parser_env(); - public XomwParserOptions getOptions() {return options;} private final XomwParserOptions options = new XomwParserOptions(); - public XomwStripState Strip_state() {return strip_state;} private final XomwStripState strip_state = new XomwStripState(); - public XomwSanitizer Sanitizer() {return sanitizer;} private final XomwSanitizer sanitizer = new XomwSanitizer(); - public XomwLinker Linker() {return linker;} private final XomwLinker linker; - public Bry_bfr Tmp() {return tmp;} private final Bry_bfr tmp = Bry_bfr_.New(); - public Xomw_quote_wkr Quote_wkr() {return quote_wkr;} private final Xomw_quote_wkr quote_wkr; - public Xomw_lnki_wkr Lnki_wkr() {return lnki_wkr;} private final Xomw_lnki_wkr lnki_wkr; - public boolean Output_type__wiki() {return output_type__wiki;} private final boolean output_type__wiki = false; - - private int mLinkID; - /** - * @return int - */ - public int nextLinkID() { - return this.mLinkID++; - } - - - /** - * Get a LinkRenderer instance to make links with - * - * @since 1.28 - * @return LinkRenderer - */ - public Xomw_link_renderer getLinkRenderer() { -// if ( !$this->mLinkRenderer ) { -// $this->mLinkRenderer = MediaWikiServices::getInstance() -// ->getLinkRendererFactory()->create(); -// $this->mLinkRenderer->setStubThreshold( -// $this->getOptions()->getStubThreshold() -// ); -// } - return link_renderer; - } - - public Xomw_parser() { - if (regex_space == null) { - synchronized (Type_adp_.ClassOf_obj(this)) { - regex_space = new Xomw_regex_space(); - regex_boundary = new Xomw_regex_boundary(regex_space); - regex_url = new Xomw_regex_url(regex_space); - Atr__rel = Bry_.new_a7("rel"); - Get_external_link_rel = Bry_.new_a7("nofollow"); - } - } - - this.link_renderer = new Xomw_link_renderer(sanitizer); - this.linker = new XomwLinker(link_renderer); - this.protocols_trie = Xomw_parser.Protocols__dflt(); - this.holders = new XomwLinkHolderArray(this); - this.table_wkr = new Xomw_table_wkr(tmp, sanitizer, strip_state); - this.quote_wkr = new Xomw_quote_wkr(tmp); - this.lnke_wkr = new Xomw_lnke_wkr(this, tmp, linker, sanitizer); - this.lnki_wkr = new Xomw_lnki_wkr(this, holders, link_renderer, protocols_trie, linker, quote_wkr, tmp, strip_state); - this.heading_wkr_cbk = new Xomw_heading_cbk__html(); - this.magiclinks_wkr = new Xomw_magiclinks_wkr(this, sanitizer, linker, regex_boundary, regex_url); - } - public void Init_by_wiki(Xowe_wiki wiki) { - linker.Init_by_wiki(env, wiki.Lang().Lnki_trail_mgr().Trie()); - lnke_wkr.Init_by_wiki(protocols_trie, regex_url, regex_space); - lnki_wkr.Init_by_wiki(env, wiki); - doubleunder_wkr.Init_by_wiki(doubleunder_data, wiki.Lang()); - magiclinks_wkr.Init_by_wiki(); - } - public void Init_by_page(XomwTitle ttl) { - pctx.Init_by_page(ttl); - } - public void Internal_parse(Xomw_parser_bfr pbfr, byte[] text) { - pbfr.Init(text); -// $origText = text; - - // MW.HOOK:ParserBeforeInternalParse - -// if ($frame) { - // use frame depth to infer how include/noinclude tags should be handled - // depth=0 means this is the top-level document; otherwise it's an included document -// boolean for_inclusion = false; -// if (!$frame->depth) { -// $flag = 0; -// } else { -// $flag = Parser::PTD_FOR_INCLUSION; -// } -// text = prepro_wkr.Preprocess_to_xml(text, for_inclusion); - // text = $frame->expand($dom); -// } else { -// // if $frame is not provided, then use old-style replaceVariables -// text = $this->replaceVariables(text); -// } - - // MW.HOOK:InternalParseBeforeSanitize -// text = Sanitizer::removeHTMLtags( -// text, -// [ &$this, 'attributeStripCallback' ], -// false, -// array_keys($this->mTransparentTagHooks), -// [], -// [ &$this, 'addTrackingCategory' ] -// ); - // MW.HOOK:InternalParseBeforeLinks - - // Tables need to come after variable replacement for things to work - // properly; putting them before other transformations should keep - // exciting things like link expansions from showing up in surprising - // places. - table_wkr.doTableStuff(pctx, pbfr); - - hr_wkr.replaceHrs(pctx, pbfr); - - doubleunder_wkr.doDoubleUnderscore(pctx, pbfr); // DONE: DATE:2017-01-27 - - heading_wkr.doHeadings(pctx, pbfr, heading_wkr_cbk); - lnki_wkr.replaceInternalLinks(pbfr, env, pctx); - quote_wkr.doAllQuotes(pctx, pbfr); - lnke_wkr.replaceExternalLinks(pctx, pbfr); - - // replaceInternalLinks may sometimes leave behind - // absolute URLs, which have to be masked to hide them from replaceExternalLinks - Xomw_parser_bfr_.Replace(pbfr, Bry__marker__noparse, Bry_.Empty); - magiclinks_wkr.doMagicLinks(pctx, pbfr); - -// $text = $this->formatHeadings($text, $origText, $isMain); - } - - public void Internal_parse_half_parsed(Xomw_parser_bfr pbfr, boolean is_main, boolean line_start) { - strip_state.unstripGeneral(pbfr); - - // MW.HOOK:ParserAfterUnstrip - - // Clean up special characters, only run once, next-to-last before doBlockLevels - nbsp_wkr.doNbsp(pctx, pbfr); - - block_wkr.doBlockLevels(pctx, pbfr, line_start); - - lnki_wkr.replaceLinkHolders(pbfr); - - // The input doesn't get language converted if - // a) It's disabled - // b) Content isn't converted - // c) It's a conversion table - // d) it is an interface message (which is in the user language) -// if ( !( $this->mOptions->getDisableContentConversion() -// || isset( $this->mDoubleUnderscores['nocontentconvert'] ) ) -// ) { -// if ( !$this->mOptions->getInterfaceMessage() ) { -// // The position of the convert() call should not be changed. it -// // assumes that the links are all replaced and the only thing left -// // is the mark. -// $text = $this->getConverterLanguage()->convert( $text ); -// } -// } - - strip_state.unstripNoWiki(pbfr); - - // MW.HOOK:ParserBeforeTidy - -// $text = $this->replaceTransparentTags( $text ); - strip_state.unstripGeneral(pbfr); - - sanitizer.normalizeCharReferences(pbfr); - -// if ( MWTidy::isEnabled() ) { -// if ( $this->mOptions->getTidy() ) { -// $text = MWTidy::tidy( $text ); -// } -// } -// else { - // attempt to sanitize at least some nesting problems - // (T4702 and quite a few others) -// $tidyregs = [ -// // ''Something [http://www.cool.com cool''] --> -// // Somethingcool> -// '/(<([bi])>)(<([bi])>)?([^<]*)(<\/?a[^<]*>)([^<]*)(<\/\\4>)?(<\/\\2>)/' => -// '\\1\\3\\5\\8\\9\\6\\1\\3\\7\\8\\9', -// // fix up an anchor inside another anchor, only -// // at least for a single single nested link (T5695) -// '/(]+>)([^<]*)(]+>[^<]*)<\/a>(.*)<\/a>/' => -// '\\1\\2\\3\\1\\4', -// // fix div inside inline elements- doBlockLevels won't wrap a line which -// // contains a div, so fix it up here; replace -// // div with escaped text -// '/(<([aib]) [^>]+>)([^<]*)(]*)>)(.*)(<\/div>)([^<]*)(<\/\\2>)/' => -// '\\1\\3<div\\5>\\6</div>\\8\\9', -// // remove empty italic or bold tag pairs, some -// // introduced by rules above -// '/<([bi])><\/\\1>/' => '', -// ]; - -// $text = preg_replace( -// array_keys( $tidyregs ), -// array_values( $tidyregs ), -// $text ); -// } - - // MW.HOOK:ParserAfterTidy - } - public byte[] stripAltText(byte[] caption, XomwLinkHolderArray holders) { - return caption; - } - - public byte[] armorLinks(Bry_bfr trg, byte[] src, int src_bgn, int src_end) { - // PORTED:preg_replace( '/\b((?i)' . $this->mUrlProtocols . ')/', self::MARKER_PREFIX . "NOPARSE$1", $text ) - int cur = src_bgn; - int prv = cur; - boolean dirty = false; - boolean called_by_bry = trg == null; - while (true) { - // exit if EOS - if (cur == src_end) { - // if dirty, add rest of String - if (dirty) - trg.Add_mid(src, prv, src_end); - break; - } - - // check if cur matches protocol - Object protocol_obj = protocols_trie.Match_at(trv, src, cur, src_end); - // no match; continue - if (protocol_obj == null) { - cur++; - } - // match; add to bfr - else { - dirty = true; - byte[] protocol_bry = (byte[])protocol_obj; - if (called_by_bry) trg = Bry_bfr_.New(); - trg.Add_bry_many(XomwStripState.Bry__marker__bgn, Bry__noparse, protocol_bry); - cur += protocol_bry.length; - prv = cur; - } - } - if (called_by_bry) { - if (dirty) - return trg.To_bry_and_clear(); - else { - if (src_bgn == 0 && src_end == src.length) - return src; - else - return Bry_.Mid(src, src_bgn, src_end); - } - } - else { - if (dirty) - return null; - else { - trg.Add_mid(src, src_bgn, src_end); - return null; - } - } - } - public byte[] Insert_strip_item(byte[] text) { - tmp.Add_bry_many(XomwStripState.Bry__marker__bgn, Bry__strip_state_item); - tmp.Add_int_variable(marker_index); - tmp.Add(XomwStripState.Bry__marker__end); - byte[] marker = tmp.To_bry_and_clear(); - marker_index++; - strip_state.addGeneral(marker, text); - return marker; - } - public Xomw_atr_mgr getExternalLinkAttribs(Xomw_atr_mgr atrs) { - atrs.Clear(); - byte[] rel = Get_external_link_rel; - - // XO.MW.UNSUPPORTED: XO will assume target is blank; MW will set target of "_blank", "_self", etc. depending on global opt - // $target = $this->mOptions->getExternalLinkTarget(); - atrs.Add(Atr__rel, rel); - return atrs; - } - // XO.MW.UNSUPPORTED: XO will always assume "nofollow"; MW will return "nofollow" if (a) ns is in ns-exception list or (b) domain is in domain-exception list; - // if ($wgNoFollowLinks && !in_array($ns, $wgNoFollowNsExceptions) && !wfMatchesDomainList($url, $wgNoFollowDomainExceptions) - public byte[] Get_external_link_rel; - private static byte[] Atr__rel; - private static final byte[] Bry__strip_state_item = Bry_.new_a7("-item-"), Bry__noparse = Bry_.new_a7("NOPARSE"); - private static final byte[] Bry__marker__noparse = Bry_.Add(XomwStripState.Bry__marker__bgn, Bry__noparse); - public static Btrie_slim_mgr Protocols__dflt() { - Btrie_slim_mgr rv = Btrie_slim_mgr.ci_a7(); - Gfo_protocol_itm[] ary = Gfo_protocol_itm.Ary(); - for (Gfo_protocol_itm itm : ary) { - byte[] key = itm.Text_bry(); // EX: "https://" - rv.Add_obj(key, key); - } - byte[] bry__relative = Bry_.new_a7("//"); - rv.Add_obj(bry__relative, bry__relative); // REF.MW: "$this->mUrlProtocols = wfUrlProtocols();"; "wfUrlProtocols( $includeProtocolRelative = true )" - return rv; - } -} diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/doubleunders/Xomw_doubleunder_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/doubleunders/Xomw_doubleunder_wkr.java index 83d8b4643..bad64a0c6 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/doubleunders/Xomw_doubleunder_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/doubleunders/Xomw_doubleunder_wkr.java @@ -37,7 +37,7 @@ public class Xomw_doubleunder_wkr { , Xol_kwd_grp_.Id_nocontentconvert ); } - public void doDoubleUnderscore(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) { + public void doDoubleUnderscore(XomwParserCtx pctx, XomwParserBfr pbfr) { // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/doubleunders/Xomw_doubleunder_wkr__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/doubleunders/Xomw_doubleunder_wkr__tst.java index 24a35bd3b..d32cf9e09 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/doubleunders/Xomw_doubleunder_wkr__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/doubleunders/Xomw_doubleunder_wkr__tst.java @@ -25,8 +25,8 @@ public class Xomw_doubleunder_wkr__tst { @Test public void Case_match() {fxt.Test__parse("a __index__ b" , "a __index__ b");} } class Xomw_doubleunder_wkr__fxt { - private final Xomw_parser_ctx pctx = new Xomw_parser_ctx(); - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwParserCtx pctx = new XomwParserCtx(); + private final XomwParserBfr pbfr = new XomwParserBfr(); private final Xomw_doubleunder_wkr wkr = new Xomw_doubleunder_wkr(); public Xomw_doubleunder_data data = new Xomw_doubleunder_data(); public Xomw_doubleunder_wkr__fxt() { diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_cbk.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_cbk.java index 43820614d..e6deae1e9 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_cbk.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_cbk.java @@ -15,6 +15,6 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.mediawiki.includes.parsers.headings; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*; public interface Xomw_heading_cbk { - void On_hdr_seen(Xomw_parser_ctx pctx, Xomw_heading_wkr wkr); - void On_src_done(Xomw_parser_ctx pctx, Xomw_heading_wkr wkr); + void On_hdr_seen(XomwParserCtx pctx, Xomw_heading_wkr wkr); + void On_src_done(XomwParserCtx pctx, Xomw_heading_wkr wkr); } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_cbk__html.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_cbk__html.java index c3071c4d4..6b14719d4 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_cbk__html.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_cbk__html.java @@ -20,7 +20,7 @@ public class Xomw_heading_cbk__html implements Xomw_heading_cbk { this.bfr = bfr; return this; } - public void On_hdr_seen(Xomw_parser_ctx pctx, Xomw_heading_wkr wkr) { + public void On_hdr_seen(XomwParserCtx pctx, Xomw_heading_wkr wkr) { // add from txt_bgn to hdr_bgn; EX: "abc\n==A==\n"; "\n==" seen -> add "abc" byte[] src = wkr.Src(); int hdr_bgn = wkr.Hdr_bgn(), txt_bgn = wkr.Txt_bgn(); @@ -28,7 +28,7 @@ public class Xomw_heading_cbk__html implements Xomw_heading_cbk { bfr.Add_mid(src, txt_bgn, hdr_bgn); // add "\n" unless BOS - if (hdr_bgn != Xomw_parser_ctx.Pos__bos) bfr.Add_byte_nl(); + if (hdr_bgn != XomwParserCtx.Pos__bos) bfr.Add_byte_nl(); // add

...

int hdr_num = wkr.Hdr_num(); @@ -36,7 +36,7 @@ public class Xomw_heading_cbk__html implements Xomw_heading_cbk { bfr.Add_mid(wkr.Src(), wkr.Hdr_lhs_end(), wkr.Hdr_rhs_bgn()); bfr.Add(Tag__rhs).Add_int_digits(1, hdr_num).Add(Byte_ascii.Angle_end_bry); // } - public void On_src_done(Xomw_parser_ctx pctx, Xomw_heading_wkr wkr) { + public void On_src_done(XomwParserCtx pctx, Xomw_heading_wkr wkr) { // add from txt_bgn to EOS; byte[] src = wkr.Src(); int txt_bgn = wkr.Txt_bgn(), src_end = wkr.Src_end(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_wkr.java index 7722cf619..87e29833f 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_wkr.java @@ -16,7 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt package gplx.xowa.mediawiki.includes.parsers.headings; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*; import gplx.core.btries.*; import gplx.xowa.langs.*; public class Xomw_heading_wkr { - private Xomw_parser_ctx pctx; + private XomwParserCtx pctx; private Xomw_heading_cbk cbk; public byte[] Src() {return src;} private byte[] src; public int Src_end() {return src_end;} private int src_end; @@ -28,7 +28,7 @@ public class Xomw_heading_wkr { public int Hdr_lhs_end() {return hdr_lhs_end;} private int hdr_lhs_end; public int Hdr_rhs_bgn() {return hdr_rhs_bgn;} private int hdr_rhs_bgn; public int Hdr_rhs_end() {return hdr_rhs_end;} private int hdr_rhs_end; - public void doHeadings(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr, Xomw_heading_cbk__html cbk) { + public void doHeadings(XomwParserCtx pctx, XomwParserBfr pbfr, Xomw_heading_cbk__html cbk) { Bry_bfr src_bfr = pbfr.Src(); byte[] src_bry = src_bfr.Bfr(); int src_end = src_bfr.Len(); @@ -36,7 +36,7 @@ public class Xomw_heading_wkr { pbfr.Switch(); Parse(pctx, src_bry, 0, src_end, cbk); } - public void Parse(Xomw_parser_ctx pctx, byte[] src, int src_bgn, int src_end, Xomw_heading_cbk cbk) { // REF.MW: /includes/parser/Parser.php|doHeadings + public void Parse(XomwParserCtx pctx, byte[] src, int src_bgn, int src_end, Xomw_heading_cbk cbk) { // REF.MW: /includes/parser/Parser.php|doHeadings // init members this.pctx = pctx; this.src = src; @@ -51,7 +51,7 @@ public class Xomw_heading_wkr { // do loop int pos = src_bgn; - this.txt_bgn = pos == Xomw_parser_ctx.Pos__bos ? 0 : pos; + this.txt_bgn = pos == XomwParserCtx.Pos__bos ? 0 : pos; byte b = Byte_ascii.Nl; while (true) { int nxt = pos + 1; diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_wkr__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_wkr__tst.java index 42fa1a869..21bdb08f7 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_wkr__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/headings/Xomw_heading_wkr__tst.java @@ -29,7 +29,7 @@ public class Xomw_heading_wkr__tst { class Xomw_heading_wkr__fxt { private final Xomw_heading_wkr wkr = new Xomw_heading_wkr(); private final Xomw_heading_cbk__html cbk = new Xomw_heading_cbk__html().Bfr_(Bry_bfr_.New()); - private final Xomw_parser_ctx pctx = new Xomw_parser_ctx(); + private final XomwParserCtx pctx = new XomwParserCtx(); public void Test__parse(String src_str, String expd) { byte[] src_bry = Bry_.new_u8(src_str); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/hrs/Xomw_hr_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/hrs/Xomw_hr_wkr.java index 4c2d5174b..205997a02 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/hrs/Xomw_hr_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/hrs/Xomw_hr_wkr.java @@ -16,7 +16,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt package gplx.xowa.mediawiki.includes.parsers.hrs; import gplx.*; import gplx.xowa.*; import gplx.xowa.mediawiki.*; import gplx.xowa.mediawiki.includes.*; import gplx.xowa.mediawiki.includes.parsers.*; public class Xomw_hr_wkr {// THREAD.UNSAFE: caching for repeated calls private Bry_bfr bfr; - public void replaceHrs(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) { // REF.MW: text = preg_replace('/(^|\n)-----*/', '\\1
', text); + public void replaceHrs(XomwParserCtx pctx, XomwParserBfr pbfr) { // REF.MW: text = preg_replace('/(^|\n)-----*/', '\\1
', text); // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/hrs/Xomw_hr_wkr__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/hrs/Xomw_hr_wkr__tst.java index 643672be8..4db1979cd 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/hrs/Xomw_hr_wkr__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/hrs/Xomw_hr_wkr__tst.java @@ -24,11 +24,11 @@ public class Xomw_hr_wkr__tst { @Test public void Bos_and_mid() {fxt.Test__parse("-----a\n-----b" , "
a\n
b");} } class Xomw_hr_wkr__fxt { - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwParserBfr pbfr = new XomwParserBfr(); private final Xomw_hr_wkr wkr = new Xomw_hr_wkr(); public void Test__parse(String src_str, String expd) { byte[] src_bry = Bry_.new_u8(src_str); - wkr.replaceHrs(new Xomw_parser_ctx(), pbfr.Init(src_bry)); + wkr.replaceHrs(new XomwParserCtx(), pbfr.Init(src_bry)); Tfds.Eq_str_lines(expd, pbfr.Rslt().To_str_and_clear(), src_str); } } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkes/Xomw_lnke_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkes/Xomw_lnke_wkr.java index 64cbb8ee0..a9f010401 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkes/Xomw_lnke_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkes/Xomw_lnke_wkr.java @@ -62,7 +62,7 @@ public class Xomw_lnke_wkr {// THREAD.UNSAFE: caching for repeated calls this.regex_space = regex_space; } // XO.MW:SYNC:1.29; DATE:2017-02-01 - public void replaceExternalLinks(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) { + public void replaceExternalLinks(XomwParserCtx pctx, XomwParserBfr pbfr) { // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkes/Xomw_lnke_wkr__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkes/Xomw_lnke_wkr__tst.java index 58965af45..025464032 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkes/Xomw_lnke_wkr__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkes/Xomw_lnke_wkr__tst.java @@ -54,17 +54,17 @@ public class Xomw_lnke_wkr__tst { } class Xomw_lnke_wkr__fxt { private final Xomw_lnke_wkr wkr; - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwParserBfr pbfr = new XomwParserBfr(); private boolean apos = true; public Xomw_lnke_wkr__fxt() { - Xomw_parser parser = new Xomw_parser(); - this.wkr = new Xomw_lnke_wkr(parser, parser.Tmp(), parser.Linker(), parser.Sanitizer()); + XomwParser parser = new XomwParser(); + this.wkr = new Xomw_lnke_wkr(parser, Bry_bfr_.New(), parser.Linker(), parser.Sanitizer()); Xomw_regex_space regex_space = new Xomw_regex_space(); - wkr.Init_by_wiki(Xomw_parser.Protocols__dflt(), new Xomw_regex_url(regex_space), regex_space); + wkr.Init_by_wiki(XomwParser.Protocols__dflt(), new Xomw_regex_url(regex_space), regex_space); } public void Test__parse(String src_str, String expd) { byte[] src_bry = Bry_.new_u8(src_str); - wkr.replaceExternalLinks(new Xomw_parser_ctx(), pbfr.Init(src_bry)); + wkr.replaceExternalLinks(new XomwParserCtx(), pbfr.Init(src_bry)); if (apos) expd = gplx.langs.htmls.Gfh_utl.Replace_apos(expd); Tfds.Eq_str_lines(expd, pbfr.Rslt().To_str_and_clear(), src_str); } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkis/Xomw_lnki_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkis/Xomw_lnki_wkr.java index 216a9ec66..e660b8a14 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkis/Xomw_lnki_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkis/Xomw_lnki_wkr.java @@ -36,11 +36,11 @@ import gplx.xowa.parsers.uniqs.*; public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls private final XomwLinkHolderArray holders; private final XomwLinker linker; - private final Xomw_link_renderer link_renderer; + private final XomwLinkRenderer link_renderer; // private final Btrie_slim_mgr protocols_trie; private final Xomw_quote_wkr quote_wkr; private final XomwStripState strip_state; - private Xomw_parser_env env; + private XomwParserEnv env; private Xow_wiki wiki; private XomwTitle mPageTitle; // private final XomwLinker_NormalizeSubpageLink normalize_subpage_link = new XomwLinker_NormalizeSubpageLink(); @@ -52,7 +52,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls private final List_adp tmp_list = List_adp_.New(); private final Hash_adp mImageParams = Hash_adp_bry.cs(); private final Hash_adp mImageParamsMagicArray = Hash_adp_bry.cs(); - public Xomw_lnki_wkr(XomwParserIface parser, XomwLinkHolderArray holders, Xomw_link_renderer link_renderer, Btrie_slim_mgr protocols_trie + public Xomw_lnki_wkr(XomwParserIface parser, XomwLinkHolderArray holders, XomwLinkRenderer link_renderer, Btrie_slim_mgr protocols_trie , XomwLinker linker, Xomw_quote_wkr quote_wkr, Bry_bfr tmp, XomwStripState strip_state ) { this.parser = parser; @@ -65,7 +65,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls this.tmp = tmp; this.strip_state = strip_state; } - public void Init_by_wiki(Xomw_parser_env env, Xow_wiki wiki) { + public void Init_by_wiki(XomwParserEnv env, Xow_wiki wiki) { this.env = env; this.wiki = wiki; if (title_chars_for_lnki == null) { @@ -78,7 +78,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls public void Clear_state() { holders.clear(); } - public void replaceInternalLinks(Xomw_parser_bfr pbfr, Xomw_parser_env env, Xomw_parser_ctx pctx) { + public void replaceInternalLinks(XomwParserBfr pbfr, XomwParserEnv env, XomwParserCtx pctx) { // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); @@ -92,7 +92,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls replaceInternalLinks(env, pctx, bfr, src, src_bgn, src_end); } // XO.MW:SYNC:1.29; DATE:2017-02-02 - public void replaceInternalLinks(Xomw_parser_env env, Xomw_parser_ctx pctx, Bry_bfr bfr, byte[] src, int src_bgn, int src_end) { + public void replaceInternalLinks(XomwParserEnv env, XomwParserCtx pctx, Bry_bfr bfr, byte[] src, int src_bgn, int src_end) { // XO.MW: regex for tc move to header; e1 and e1_img moved to code // the % is needed to support urlencoded titles as well @@ -443,7 +443,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls } } } - public void makeImage(Xomw_parser_env env, Xomw_parser_ctx pctx, Bry_bfr bfr, XomwTitle title, byte[] options_at_link, XomwLinkHolderArray holders) { + public void makeImage(XomwParserEnv env, XomwParserCtx pctx, Bry_bfr bfr, XomwTitle title, byte[] options_at_link, XomwLinkHolderArray holders) { // Check if the options text is of the form "options|alt text" // Options are: // * thumbnail make a thumbnail with enlarge-icon and caption, alignment depends on lang @@ -796,7 +796,7 @@ public class Xomw_lnki_wkr {// THREAD.UNSAFE: caching for repeated calls public void Maybe_do_subpage_link(XomwLinker_NormalizeSubpageLink rv, byte[] target, byte[] text) { linker.normalizeSubpageLink(rv, mPageTitle, target, text); } - public void replaceLinkHolders(Xomw_parser_bfr pbfr) { + public void replaceLinkHolders(XomwParserBfr pbfr) { holders.replace(pbfr); } public void Make_known_link_holder(Bry_bfr bfr, XomwTitle nt, byte[] text, byte[] trail, byte[] prefix) { diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkis/Xomw_lnki_wkr__file__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkis/Xomw_lnki_wkr__file__tst.java index 23f663c2a..d16282288 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkis/Xomw_lnki_wkr__file__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/lnkis/Xomw_lnki_wkr__file__tst.java @@ -72,9 +72,9 @@ public class Xomw_lnki_wkr__file__tst { } class Xomw_lnki_wkr__fxt { private final Xomw_lnki_wkr wkr; - private final Xomw_parser_ctx pctx; - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); - private final Xomw_parser_env env; + private final XomwParserCtx pctx; + private final XomwParserBfr pbfr = new XomwParserBfr(); + private final XomwParserEnv env; private final XomwFileFinderMock file_finder; private final XomwFileRepo repo = new XomwFileRepo(Bry_.new_a7("/orig"), Bry_.new_a7("/thumb")); private boolean apos = true; @@ -94,7 +94,7 @@ class Xomw_lnki_wkr__fxt { parser.Init_by_wiki(wiki); // ctx - pctx = new Xomw_parser_ctx(); + pctx = new XomwParserCtx(); pctx.Init_by_page(XomwTitle.newFromText(Bry_.new_a7("Page_1"))); } public void Clear() { diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/magiclinks/Xomw_magiclinks_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/magiclinks/Xomw_magiclinks_wkr.java index 55eb67c58..741b5d7be 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/magiclinks/Xomw_magiclinks_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/magiclinks/Xomw_magiclinks_wkr.java @@ -66,7 +66,7 @@ public class Xomw_magiclinks_wkr { // Replace special strings like "ISBN xxx" and "RFC xxx" with // magic external links. - public void doMagicLinks(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) { + public void doMagicLinks(XomwParserCtx pctx, XomwParserBfr pbfr) { // XO.PBFR Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/magiclinks/Xomw_magiclinks_wkr__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/magiclinks/Xomw_magiclinks_wkr__tst.java index bad507edf..c84048261 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/magiclinks/Xomw_magiclinks_wkr__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/magiclinks/Xomw_magiclinks_wkr__tst.java @@ -66,12 +66,12 @@ public class Xomw_magiclinks_wkr__tst { } class Xomw_magiclinks_wkr__fxt { private final Xomw_magiclinks_wkr wkr; - private final Xomw_parser_ctx pctx = new Xomw_parser_ctx(); - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwParserCtx pctx = new XomwParserCtx(); + private final XomwParserBfr pbfr = new XomwParserBfr(); public Xomw_magiclinks_wkr__fxt() { Xomw_regex_space regex_space = new Xomw_regex_space(); pctx.Init_by_page(XomwTitle.newFromText(Bry_.new_a7("Page_1"))); - Xomw_parser parser = new Xomw_parser(); + XomwParser parser = new XomwParser(); this.wkr = new Xomw_magiclinks_wkr(parser, parser.Sanitizer(), parser.Linker(), new Xomw_regex_boundary(regex_space), new Xomw_regex_url(regex_space)); wkr.Init_by_wiki(); } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/nbsps/Xomw_nbsp_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/nbsps/Xomw_nbsp_wkr.java index 58d7bf66d..94b146d62 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/nbsps/Xomw_nbsp_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/nbsps/Xomw_nbsp_wkr.java @@ -17,7 +17,7 @@ package gplx.xowa.mediawiki.includes.parsers.nbsps; import gplx.*; import gplx.x import gplx.core.btries.*; public class Xomw_nbsp_wkr { private final Btrie_rv trv = new Btrie_rv(); - public void doNbsp(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) { + public void doNbsp(XomwParserCtx pctx, XomwParserBfr pbfr) { // PORTED: // Clean up special characters, only run once, next-to-last before doBlockLevels // $fixtags = [ diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/nbsps/Xomw_nbsp_wkr__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/nbsps/Xomw_nbsp_wkr__tst.java index fc4449e2a..f59b6d6ff 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/nbsps/Xomw_nbsp_wkr__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/nbsps/Xomw_nbsp_wkr__tst.java @@ -25,8 +25,8 @@ public class Xomw_nbsp_wkr__tst { } class Xomw_nbsp_wkr__fxt { private final Xomw_nbsp_wkr wkr = new Xomw_nbsp_wkr(); - private final Xomw_parser_ctx pctx = new Xomw_parser_ctx(); - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwParserCtx pctx = new XomwParserCtx(); + private final XomwParserBfr pbfr = new XomwParserBfr(); private boolean apos = true; public void Test__parse(String src_str, String expd) { byte[] src_bry = Bry_.new_u8(src_str); diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/quotes/Xomw_quote_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/quotes/Xomw_quote_wkr.java index 4709b6764..adc95d582 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/quotes/Xomw_quote_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/quotes/Xomw_quote_wkr.java @@ -22,7 +22,7 @@ public class Xomw_quote_wkr {// THREAD.UNSAFE: caching for repeated calls public Xomw_quote_wkr(Bry_bfr tmp) { this.tmp = tmp; } - public void doAllQuotes(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) { + public void doAllQuotes(XomwParserCtx pctx, XomwParserBfr pbfr) { Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); int src_bgn = 0; diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/quotes/Xomw_quote_wkr__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/quotes/Xomw_quote_wkr__tst.java index a36843e13..0c18898b9 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/quotes/Xomw_quote_wkr__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/quotes/Xomw_quote_wkr__tst.java @@ -34,10 +34,10 @@ public class Xomw_quote_wkr__tst { } class Xomw_quote_wkr__fxt { private final Xomw_quote_wkr wkr = new Xomw_quote_wkr(Bry_bfr_.New()); - private final Xomw_parser_bfr pbfr = new Xomw_parser_bfr(); + private final XomwParserBfr pbfr = new XomwParserBfr(); public void Test__parse(String src_str, String expd) { byte[] src_bry = Bry_.new_u8(src_str); - wkr.doAllQuotes(new Xomw_parser_ctx(), pbfr.Init(src_bry)); + wkr.doAllQuotes(new XomwParserCtx(), pbfr.Init(src_bry)); Tfds.Eq_str_lines(expd, pbfr.Rslt().To_str_and_clear(), src_str); } } diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/tables/Xomw_table_wkr.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/tables/Xomw_table_wkr.java index 58bd816b5..4e897ac32 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/tables/Xomw_table_wkr.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/tables/Xomw_table_wkr.java @@ -34,7 +34,7 @@ public class Xomw_table_wkr implements gplx.core.brys.Bry_split_wkr {// THREAD.U this.sanitizer = sanitizer; this.strip_state = stripState; } - public void doTableStuff(Xomw_parser_ctx pctx, Xomw_parser_bfr pbfr) { + public void doTableStuff(XomwParserCtx pctx, XomwParserBfr pbfr) { Bry_bfr src_bfr = pbfr.Src(); byte[] src = src_bfr.Bfr(); int src_bgn = 0; diff --git a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/tables/Xomw_table_wkr__tst.java b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/tables/Xomw_table_wkr__tst.java index d40bc6e44..51954096c 100644 --- a/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/tables/Xomw_table_wkr__tst.java +++ b/gplx.xowa.mediawiki/src/gplx/xowa/mediawiki/includes/parsers/tables/Xomw_table_wkr__tst.java @@ -115,12 +115,12 @@ public class Xomw_table_wkr__tst { } } class Xomw_table_wkr__fxt { - private final Xomw_parser_bfr parser_bfr = new Xomw_parser_bfr(); - private final Xomw_parser_ctx pctx = new Xomw_parser_ctx(); + private final XomwParserBfr parser_bfr = new XomwParserBfr(); + private final XomwParserCtx pctx = new XomwParserCtx(); private final Xomw_table_wkr wkr; public Xomw_table_wkr__fxt() { - Xomw_parser parser = new Xomw_parser(); - this.wkr = new Xomw_table_wkr(parser.Tmp(), parser.Sanitizer(), parser.Strip_state()); + XomwParser parser = new XomwParser(); + this.wkr = new Xomw_table_wkr(Bry_bfr_.New(), parser.Sanitizer(), parser.Strip_state()); } public void Test__parse(String src_str, String expd) {