From 7813e41e34ba87bb1b9c34eaef308342d29425d8 Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Tue, 10 Jan 2017 19:24:57 -0500 Subject: [PATCH] Mw_parse: Support comment --- .../gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr.java | 8 +++++--- .../xowa/parsers/mws/prepros/Xomw_prepro_wkr__tst.java | 3 +++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/400_xowa/src/gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr.java b/400_xowa/src/gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr.java index b0b4a3b13..509eb481c 100644 --- a/400_xowa/src/gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr.java +++ b/400_xowa/src/gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr.java @@ -24,6 +24,7 @@ public class Xomw_prepro_wkr { // TS.UNSAFE:caching for repeated calls private final Hash_adp_bry xmlish_allow_missing_end_tag = Hash_adp_bry.cs().Add_many_str("includeonly", "noinclude", "onlyinclude"); private final Hash_adp_bry no_more_closing_tag = Hash_adp_bry.cs(); // private final Btrie_slim_mgr search_dflt_trie = Btrie_slim_mgr.cs().Add_many_int(0, "[", "{", "<", "\n"); // $searchBase = "[{<\n"; + private final Btrie_slim_mgr elements_trie = Btrie_slim_mgr.ci_a7(); private final Xomw_prepro_stack stack = new Xomw_prepro_stack(); private Bry_bfr accum = Bry_bfr_.New(); @@ -105,7 +106,8 @@ public class Xomw_prepro_wkr { // TS.UNSAFE:caching for repeated calls int src_len = src.length; int found = -1; - Btrie_slim_mgr elements_trie = Btrie_slim_mgr.ci_a7(); + elements_trie.Clear(); + elements_trie.Add_obj("!--", new Xomw_prepro_elem(Xomw_prepro_elem.Type__comment, Bry_.new_a7("comment"))); Btrie_slim_mgr elements_end_trie = Btrie_slim_mgr.ci_a7(); byte[] cur_char = Bry_.Empty; @@ -270,11 +272,11 @@ public class Xomw_prepro_wkr { // TS.UNSAFE:caching for repeated calls } else { // Search backwards for leading whitespace - int ws_bgn = i > 0 ? i - Bry_find_.Find_bwd__while_space_or_tab(src, i, 0) : 0; + int ws_bgn = i > 0 ? Bry_find_.Find_bwd__while_space_or_tab(src, i, 0) : 0; // Search forwards for trailing whitespace // $wsEnd will be the position of the last space (or the '>' if there's none) - int ws_end = comment_end_pos + 2 + Bry_find_.Find_fwd_while_space_or_tab(src, comment_end_pos + 3, src_len); + int ws_end = Bry_find_.Find_fwd_while_space_or_tab(src, comment_end_pos + 3, src_len); // Keep looking forward as long as we're finding more comments. comments_list.Clear(); diff --git a/400_xowa/src/gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr__tst.java b/400_xowa/src/gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr__tst.java index a68640b53..7cb827f2f 100644 --- a/400_xowa/src/gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr__tst.java +++ b/400_xowa/src/gplx/xowa/parsers/mws/prepros/Xomw_prepro_wkr__tst.java @@ -31,6 +31,9 @@ public class Xomw_prepro_wkr__tst { @Test public void Tplarg() { fxt.Test__parse("a{{{b}}}c", "abc"); } + @Test public void Comment() { + fxt.Test__parse("ac", "ac"); + } } class Xomw_prepro_wkr__fxt { private final Xomw_prepro_wkr wkr = new Xomw_prepro_wkr();