Skip to content

Instantly share code, notes, and snippets.

@smdn
Created February 12, 2024 08:30
Show Gist options
  • Save smdn/bee6442b42c6e6e7218758f325921962 to your computer and use it in GitHub Desktop.
Save smdn/bee6442b42c6e6e7218758f325921962 to your computer and use it in GitHub Desktop.
Smdn.Text.Ondulish 4.1.0 Release Notes
diff --git a/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-net6.0.apilist.cs b/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-net6.0.apilist.cs
index f70fbf7..259680f 100644
--- a/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-net6.0.apilist.cs
+++ b/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-net6.0.apilist.cs
@@ -1,234 +1,234 @@
-// Smdn.Text.Ondulish.dll (Smdn.Text.Ondulish-4.0.2)
+// Smdn.Text.Ondulish.dll (Smdn.Text.Ondulish-4.1.0)
// Name: Smdn.Text.Ondulish
-// AssemblyVersion: 4.0.2.0
-// InformationalVersion: 4.0.2+7eedf34a0e35f2209f6384d70422e3e8bc328dc1
+// AssemblyVersion: 4.1.0.0
+// InformationalVersion: 4.1.0+20aa8508b133445efe9312740710d77962b09559
// TargetFramework: .NETCoreApp,Version=v6.0
// Configuration: Release
// Referenced assemblies:
// Smdn.Fundamental.Csv, Version=3.1.0.0, Culture=neutral
// Smdn.Fundamental.String.Replacement, Version=3.0.2.0, Culture=neutral
// Smdn.Text.Ondulish.Dictionaries, Version=4.0.0.0, Culture=neutral
// System.Collections, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Linq, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Runtime.InteropServices, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System.Threading, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
#nullable enable annotations
using System;
using System.Collections.Generic;
using System.IO;
using MeCab;
namespace MeCab {
public class DictionaryInfo : IDisposable {
protected bool swigCMemOwn;
public DictionaryInfo() {}
public string charset { get; }
public string filename { get; }
public uint lsize { get; }
public DictionaryInfo next { get; }
public uint rsize { get; }
public uint size { get; }
public int type { get; }
public ushort version { get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~DictionaryInfo() {}
}
public class Lattice : IDisposable {
protected bool swigCMemOwn;
public Lattice() {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Lattice() {}
public virtual double Z() {}
public virtual void add_request_type(int request_type) {}
public virtual Node begin_nodes(uint pos) {}
public virtual Node bos_node() {}
public virtual int boundary_constraint(uint pos) {}
public virtual void clear() {}
public virtual Node end_nodes(uint pos) {}
public virtual string enumNBestAsString(uint N) {}
public virtual Node eos_node() {}
public virtual string feature_constraint(uint pos) {}
public virtual bool has_constraint() {}
public virtual bool has_request_type(int request_type) {}
public virtual bool is_available() {}
public virtual Node newNode() {}
public virtual bool next() {}
public virtual void remove_request_type(int request_type) {}
public virtual int request_type() {}
public virtual string sentence() {}
public virtual void set_Z(double Z) {}
public virtual void set_boundary_constraint(uint pos, int boundary_constraint_type) {}
public virtual void set_feature_constraint(uint begin_pos, uint end_pos, string feature) {}
public virtual void set_request_type(int request_type) {}
public virtual void set_result(string result) {}
public void set_sentence(string sentence) {}
public virtual void set_theta(float theta) {}
public virtual void set_what(string str) {}
public virtual uint size() {}
public virtual float theta() {}
public virtual string toString() {}
public virtual string toString(Node node) {}
public virtual string what() {}
}
public class MeCab {
public static readonly int MECAB_ALLOCATE_SENTENCE = 64;
public static readonly int MECAB_ALL_MORPHS = 32;
public static readonly int MECAB_ALTERNATIVE = 16;
public static readonly int MECAB_ANY_BOUNDARY = 0;
public static readonly int MECAB_BOS_NODE = 2;
public static readonly int MECAB_EON_NODE = 4;
public static readonly int MECAB_EOS_NODE = 3;
public static readonly int MECAB_INSIDE_TOKEN = 2;
public static readonly int MECAB_MARGINAL_PROB = 8;
public static readonly int MECAB_NBEST = 2;
public static readonly int MECAB_NOR_NODE = 0;
public static readonly int MECAB_ONE_BEST = 1;
public static readonly int MECAB_PARTIAL = 4;
public static readonly int MECAB_SYS_DIC = 0;
public static readonly int MECAB_TOKEN_BOUNDARY = 1;
public static readonly int MECAB_UNK_DIC = 2;
public static readonly int MECAB_UNK_NODE = 1;
public static readonly int MECAB_USR_DIC = 1;
public static readonly string VERSION = "0.996";
public MeCab() {}
}
public class Model : IDisposable {
public static string version() {}
protected bool swigCMemOwn;
public Model() {}
public Model(string argc) {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Model() {}
public virtual Lattice createLattice() {}
public virtual Tagger createTagger() {}
public virtual DictionaryInfo dictionary_info() {}
public virtual Node lookup(string begin, string end, Lattice lattice) {}
public virtual bool swap(Model model) {}
public virtual int transition_cost(ushort rcAttr, ushort lcAttr) {}
}
public class Node : IDisposable {
protected bool swigCMemOwn;
public float alpha { get; }
public float beta { get; }
public Node bnext { get; }
public byte char_type { get; }
public int cost { get; }
public Node enext { get; }
public string feature { get; }
public uint id { get; }
public byte isbest { get; }
public ushort lcAttr { get; }
public ushort length { get; }
public Path lpath { get; }
public Node next { get; }
public ushort posid { get; }
public Node prev { get; }
public float prob { get; set; }
public ushort rcAttr { get; }
public ushort rlength { get; }
public Path rpath { get; }
public byte stat { get; }
public string surface { get; }
public short wcost { get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Node() {}
}
public class Path : IDisposable {
protected bool swigCMemOwn;
public int cost { get; }
public Path lnext { get; }
public Node lnode { get; }
public float prob { get; set; }
public Path rnext { get; }
public Node rnode { get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Path() {}
}
public class Tagger : IDisposable {
public static bool parse(Model model, Lattice lattice) {}
public static string version() {}
protected bool swigCMemOwn;
public Tagger() {}
public Tagger(string argc) {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Tagger() {}
public virtual bool all_morphs() {}
public virtual DictionaryInfo dictionary_info() {}
public virtual string formatNode(Node node) {}
public virtual int lattice_level() {}
public virtual string next() {}
public virtual Node nextNode() {}
public virtual bool parse(Lattice lattice) {}
public virtual string parse(string str) {}
public virtual string parseNBest(uint N, string str) {}
public virtual bool parseNBestInit(string str) {}
public virtual Node parseToNode(string str) {}
public string parseToString(string str) {}
public string parseToString(string str, uint length) {}
public virtual bool partial() {}
public virtual int request_type() {}
public virtual void set_all_morphs(bool all_morphs) {}
public virtual void set_lattice_level(int level) {}
public virtual void set_partial(bool @partial) {}
public virtual void set_request_type(int request_type) {}
public virtual void set_theta(float theta) {}
public virtual float theta() {}
public virtual string what() {}
}
}
namespace Smdn.Text.Ondulish {
public static class KanaUtils {
public static string ConvertWideHiraganaToKatakana(string input) {}
public static string ConvertWideKatakanaToHiragana(string input) {}
public static string ConvertWideKatakanaToNarrowKatakana(string input) {}
}
public class Translator : IDisposable {
public static Tagger CreateTaggerForBundledDictionary() {}
public Translator() {}
public Translator(Tagger tagger, bool shouldDisposeTagger) {}
public IReadOnlyDictionary<string, string> PhraseDictionary { get; }
public IReadOnlyDictionary<string, string> WordDictionary { get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
public string Translate(string input, bool convertKatakanaToNarrow = true) {}
public void Translate(TextReader input, TextWriter output, bool convertKatakanaToNarrow = true) {}
public void Translate(string input, TextWriter output, bool convertKatakanaToNarrow = true) {}
}
}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.1.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.0.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-net8.0.apilist.cs b/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-net8.0.apilist.cs
new file mode 100644
index 0000000..f46cb72
--- /dev/null
+++ b/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-net8.0.apilist.cs
@@ -0,0 +1,234 @@
+// Smdn.Text.Ondulish.dll (Smdn.Text.Ondulish-4.1.0)
+// Name: Smdn.Text.Ondulish
+// AssemblyVersion: 4.1.0.0
+// InformationalVersion: 4.1.0+20aa8508b133445efe9312740710d77962b09559
+// TargetFramework: .NETCoreApp,Version=v8.0
+// Configuration: Release
+// Referenced assemblies:
+// Smdn.Fundamental.Csv, Version=3.1.0.0, Culture=neutral
+// Smdn.Fundamental.String.Replacement, Version=3.0.2.0, Culture=neutral
+// Smdn.Text.Ondulish.Dictionaries, Version=4.0.0.0, Culture=neutral
+// System.Collections, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Linq, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Runtime.InteropServices, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+// System.Threading, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+#nullable enable annotations
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using MeCab;
+
+namespace MeCab {
+ public class DictionaryInfo : IDisposable {
+ protected bool swigCMemOwn;
+
+ public DictionaryInfo() {}
+
+ public string charset { get; }
+ public string filename { get; }
+ public uint lsize { get; }
+ public DictionaryInfo next { get; }
+ public uint rsize { get; }
+ public uint size { get; }
+ public int type { get; }
+ public ushort version { get; }
+
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ ~DictionaryInfo() {}
+ }
+
+ public class Lattice : IDisposable {
+ protected bool swigCMemOwn;
+
+ public Lattice() {}
+
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ ~Lattice() {}
+ public virtual double Z() {}
+ public virtual void add_request_type(int request_type) {}
+ public virtual Node begin_nodes(uint pos) {}
+ public virtual Node bos_node() {}
+ public virtual int boundary_constraint(uint pos) {}
+ public virtual void clear() {}
+ public virtual Node end_nodes(uint pos) {}
+ public virtual string enumNBestAsString(uint N) {}
+ public virtual Node eos_node() {}
+ public virtual string feature_constraint(uint pos) {}
+ public virtual bool has_constraint() {}
+ public virtual bool has_request_type(int request_type) {}
+ public virtual bool is_available() {}
+ public virtual Node newNode() {}
+ public virtual bool next() {}
+ public virtual void remove_request_type(int request_type) {}
+ public virtual int request_type() {}
+ public virtual string sentence() {}
+ public virtual void set_Z(double Z) {}
+ public virtual void set_boundary_constraint(uint pos, int boundary_constraint_type) {}
+ public virtual void set_feature_constraint(uint begin_pos, uint end_pos, string feature) {}
+ public virtual void set_request_type(int request_type) {}
+ public virtual void set_result(string result) {}
+ public void set_sentence(string sentence) {}
+ public virtual void set_theta(float theta) {}
+ public virtual void set_what(string str) {}
+ public virtual uint size() {}
+ public virtual float theta() {}
+ public virtual string toString() {}
+ public virtual string toString(Node node) {}
+ public virtual string what() {}
+ }
+
+ public class MeCab {
+ public static readonly int MECAB_ALLOCATE_SENTENCE = 64;
+ public static readonly int MECAB_ALL_MORPHS = 32;
+ public static readonly int MECAB_ALTERNATIVE = 16;
+ public static readonly int MECAB_ANY_BOUNDARY = 0;
+ public static readonly int MECAB_BOS_NODE = 2;
+ public static readonly int MECAB_EON_NODE = 4;
+ public static readonly int MECAB_EOS_NODE = 3;
+ public static readonly int MECAB_INSIDE_TOKEN = 2;
+ public static readonly int MECAB_MARGINAL_PROB = 8;
+ public static readonly int MECAB_NBEST = 2;
+ public static readonly int MECAB_NOR_NODE = 0;
+ public static readonly int MECAB_ONE_BEST = 1;
+ public static readonly int MECAB_PARTIAL = 4;
+ public static readonly int MECAB_SYS_DIC = 0;
+ public static readonly int MECAB_TOKEN_BOUNDARY = 1;
+ public static readonly int MECAB_UNK_DIC = 2;
+ public static readonly int MECAB_UNK_NODE = 1;
+ public static readonly int MECAB_USR_DIC = 1;
+ public static readonly string VERSION = "0.996";
+
+ public MeCab() {}
+ }
+
+ public class Model : IDisposable {
+ public static string version() {}
+
+ protected bool swigCMemOwn;
+
+ public Model() {}
+ public Model(string argc) {}
+
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ ~Model() {}
+ public virtual Lattice createLattice() {}
+ public virtual Tagger createTagger() {}
+ public virtual DictionaryInfo dictionary_info() {}
+ public virtual Node lookup(string begin, string end, Lattice lattice) {}
+ public virtual bool swap(Model model) {}
+ public virtual int transition_cost(ushort rcAttr, ushort lcAttr) {}
+ }
+
+ public class Node : IDisposable {
+ protected bool swigCMemOwn;
+
+ public float alpha { get; }
+ public float beta { get; }
+ public Node bnext { get; }
+ public byte char_type { get; }
+ public int cost { get; }
+ public Node enext { get; }
+ public string feature { get; }
+ public uint id { get; }
+ public byte isbest { get; }
+ public ushort lcAttr { get; }
+ public ushort length { get; }
+ public Path lpath { get; }
+ public Node next { get; }
+ public ushort posid { get; }
+ public Node prev { get; }
+ public float prob { get; set; }
+ public ushort rcAttr { get; }
+ public ushort rlength { get; }
+ public Path rpath { get; }
+ public byte stat { get; }
+ public string surface { get; }
+ public short wcost { get; }
+
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ ~Node() {}
+ }
+
+ public class Path : IDisposable {
+ protected bool swigCMemOwn;
+
+ public int cost { get; }
+ public Path lnext { get; }
+ public Node lnode { get; }
+ public float prob { get; set; }
+ public Path rnext { get; }
+ public Node rnode { get; }
+
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ ~Path() {}
+ }
+
+ public class Tagger : IDisposable {
+ public static bool parse(Model model, Lattice lattice) {}
+ public static string version() {}
+
+ protected bool swigCMemOwn;
+
+ public Tagger() {}
+ public Tagger(string argc) {}
+
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ ~Tagger() {}
+ public virtual bool all_morphs() {}
+ public virtual DictionaryInfo dictionary_info() {}
+ public virtual string formatNode(Node node) {}
+ public virtual int lattice_level() {}
+ public virtual string next() {}
+ public virtual Node nextNode() {}
+ public virtual bool parse(Lattice lattice) {}
+ public virtual string parse(string str) {}
+ public virtual string parseNBest(uint N, string str) {}
+ public virtual bool parseNBestInit(string str) {}
+ public virtual Node parseToNode(string str) {}
+ public string parseToString(string str) {}
+ public string parseToString(string str, uint length) {}
+ public virtual bool partial() {}
+ public virtual int request_type() {}
+ public virtual void set_all_morphs(bool all_morphs) {}
+ public virtual void set_lattice_level(int level) {}
+ public virtual void set_partial(bool @partial) {}
+ public virtual void set_request_type(int request_type) {}
+ public virtual void set_theta(float theta) {}
+ public virtual float theta() {}
+ public virtual string what() {}
+ }
+}
+
+namespace Smdn.Text.Ondulish {
+ public static class KanaUtils {
+ public static string ConvertWideHiraganaToKatakana(string input) {}
+ public static string ConvertWideKatakanaToHiragana(string input) {}
+ public static string ConvertWideKatakanaToNarrowKatakana(string input) {}
+ }
+
+ public class Translator : IDisposable {
+ public static Tagger CreateTaggerForBundledDictionary() {}
+
+ public Translator() {}
+ public Translator(Tagger tagger, bool shouldDisposeTagger) {}
+
+ public IReadOnlyDictionary<string, string> PhraseDictionary { get; }
+ public IReadOnlyDictionary<string, string> WordDictionary { get; }
+
+ protected virtual void Dispose(bool disposing) {}
+ public void Dispose() {}
+ public string Translate(string input, bool convertKatakanaToNarrow = true) {}
+ public void Translate(TextReader input, TextWriter output, bool convertKatakanaToNarrow = true) {}
+ public void Translate(string input, TextWriter output, bool convertKatakanaToNarrow = true) {}
+ }
+}
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.0.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
diff --git a/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-netstandard2.1.apilist.cs b/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-netstandard2.1.apilist.cs
index 54385e1..37bee07 100644
--- a/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-netstandard2.1.apilist.cs
+++ b/doc/api-list/Smdn.Text.Ondulish/Smdn.Text.Ondulish-netstandard2.1.apilist.cs
@@ -1,230 +1,230 @@
-// Smdn.Text.Ondulish.dll (Smdn.Text.Ondulish-4.0.2)
+// Smdn.Text.Ondulish.dll (Smdn.Text.Ondulish-4.1.0)
// Name: Smdn.Text.Ondulish
-// AssemblyVersion: 4.0.2.0
-// InformationalVersion: 4.0.2+7eedf34a0e35f2209f6384d70422e3e8bc328dc1
+// AssemblyVersion: 4.1.0.0
+// InformationalVersion: 4.1.0+20aa8508b133445efe9312740710d77962b09559
// TargetFramework: .NETStandard,Version=v2.1
// Configuration: Release
// Referenced assemblies:
// Smdn.Fundamental.Csv, Version=3.1.0.0, Culture=neutral
// Smdn.Fundamental.String.Replacement, Version=3.0.2.0, Culture=neutral
// Smdn.Text.Ondulish.Dictionaries, Version=4.0.0.0, Culture=neutral
// netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51
#nullable enable annotations
using System;
using System.Collections.Generic;
using System.IO;
using MeCab;
namespace MeCab {
public class DictionaryInfo : IDisposable {
protected bool swigCMemOwn;
public DictionaryInfo() {}
public string charset { get; }
public string filename { get; }
public uint lsize { get; }
public DictionaryInfo next { get; }
public uint rsize { get; }
public uint size { get; }
public int type { get; }
public ushort version { get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~DictionaryInfo() {}
}
public class Lattice : IDisposable {
protected bool swigCMemOwn;
public Lattice() {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Lattice() {}
public virtual double Z() {}
public virtual void add_request_type(int request_type) {}
public virtual Node begin_nodes(uint pos) {}
public virtual Node bos_node() {}
public virtual int boundary_constraint(uint pos) {}
public virtual void clear() {}
public virtual Node end_nodes(uint pos) {}
public virtual string enumNBestAsString(uint N) {}
public virtual Node eos_node() {}
public virtual string feature_constraint(uint pos) {}
public virtual bool has_constraint() {}
public virtual bool has_request_type(int request_type) {}
public virtual bool is_available() {}
public virtual Node newNode() {}
public virtual bool next() {}
public virtual void remove_request_type(int request_type) {}
public virtual int request_type() {}
public virtual string sentence() {}
public virtual void set_Z(double Z) {}
public virtual void set_boundary_constraint(uint pos, int boundary_constraint_type) {}
public virtual void set_feature_constraint(uint begin_pos, uint end_pos, string feature) {}
public virtual void set_request_type(int request_type) {}
public virtual void set_result(string result) {}
public void set_sentence(string sentence) {}
public virtual void set_theta(float theta) {}
public virtual void set_what(string str) {}
public virtual uint size() {}
public virtual float theta() {}
public virtual string toString() {}
public virtual string toString(Node node) {}
public virtual string what() {}
}
public class MeCab {
public static readonly int MECAB_ALLOCATE_SENTENCE = 64;
public static readonly int MECAB_ALL_MORPHS = 32;
public static readonly int MECAB_ALTERNATIVE = 16;
public static readonly int MECAB_ANY_BOUNDARY = 0;
public static readonly int MECAB_BOS_NODE = 2;
public static readonly int MECAB_EON_NODE = 4;
public static readonly int MECAB_EOS_NODE = 3;
public static readonly int MECAB_INSIDE_TOKEN = 2;
public static readonly int MECAB_MARGINAL_PROB = 8;
public static readonly int MECAB_NBEST = 2;
public static readonly int MECAB_NOR_NODE = 0;
public static readonly int MECAB_ONE_BEST = 1;
public static readonly int MECAB_PARTIAL = 4;
public static readonly int MECAB_SYS_DIC = 0;
public static readonly int MECAB_TOKEN_BOUNDARY = 1;
public static readonly int MECAB_UNK_DIC = 2;
public static readonly int MECAB_UNK_NODE = 1;
public static readonly int MECAB_USR_DIC = 1;
public static readonly string VERSION = "0.996";
public MeCab() {}
}
public class Model : IDisposable {
public static string version() {}
protected bool swigCMemOwn;
public Model() {}
public Model(string argc) {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Model() {}
public virtual Lattice createLattice() {}
public virtual Tagger createTagger() {}
public virtual DictionaryInfo dictionary_info() {}
public virtual Node lookup(string begin, string end, Lattice lattice) {}
public virtual bool swap(Model model) {}
public virtual int transition_cost(ushort rcAttr, ushort lcAttr) {}
}
public class Node : IDisposable {
protected bool swigCMemOwn;
public float alpha { get; }
public float beta { get; }
public Node bnext { get; }
public byte char_type { get; }
public int cost { get; }
public Node enext { get; }
public string feature { get; }
public uint id { get; }
public byte isbest { get; }
public ushort lcAttr { get; }
public ushort length { get; }
public Path lpath { get; }
public Node next { get; }
public ushort posid { get; }
public Node prev { get; }
public float prob { get; set; }
public ushort rcAttr { get; }
public ushort rlength { get; }
public Path rpath { get; }
public byte stat { get; }
public string surface { get; }
public short wcost { get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Node() {}
}
public class Path : IDisposable {
protected bool swigCMemOwn;
public int cost { get; }
public Path lnext { get; }
public Node lnode { get; }
public float prob { get; set; }
public Path rnext { get; }
public Node rnode { get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Path() {}
}
public class Tagger : IDisposable {
public static bool parse(Model model, Lattice lattice) {}
public static string version() {}
protected bool swigCMemOwn;
public Tagger() {}
public Tagger(string argc) {}
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
~Tagger() {}
public virtual bool all_morphs() {}
public virtual DictionaryInfo dictionary_info() {}
public virtual string formatNode(Node node) {}
public virtual int lattice_level() {}
public virtual string next() {}
public virtual Node nextNode() {}
public virtual bool parse(Lattice lattice) {}
public virtual string parse(string str) {}
public virtual string parseNBest(uint N, string str) {}
public virtual bool parseNBestInit(string str) {}
public virtual Node parseToNode(string str) {}
public string parseToString(string str) {}
public string parseToString(string str, uint length) {}
public virtual bool partial() {}
public virtual int request_type() {}
public virtual void set_all_morphs(bool all_morphs) {}
public virtual void set_lattice_level(int level) {}
public virtual void set_partial(bool @partial) {}
public virtual void set_request_type(int request_type) {}
public virtual void set_theta(float theta) {}
public virtual float theta() {}
public virtual string what() {}
}
}
namespace Smdn.Text.Ondulish {
public static class KanaUtils {
public static string ConvertWideHiraganaToKatakana(string input) {}
public static string ConvertWideKatakanaToHiragana(string input) {}
public static string ConvertWideKatakanaToNarrowKatakana(string input) {}
}
public class Translator : IDisposable {
public static Tagger CreateTaggerForBundledDictionary() {}
public Translator() {}
public Translator(Tagger tagger, bool shouldDisposeTagger) {}
public IReadOnlyDictionary<string, string> PhraseDictionary { get; }
public IReadOnlyDictionary<string, string> WordDictionary { get; }
protected virtual void Dispose(bool disposing) {}
public void Dispose() {}
public string Translate(string input, bool convertKatakanaToNarrow = true) {}
public void Translate(TextReader input, TextWriter output, bool convertKatakanaToNarrow = true) {}
public void Translate(string input, TextWriter output, bool convertKatakanaToNarrow = true) {}
}
}
-// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.2.1.0.
-// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.2.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
+// API list generated by Smdn.Reflection.ReverseGenerating.ListApi.MSBuild.Tasks v1.4.0.0.
+// Smdn.Reflection.ReverseGenerating.ListApi.Core v1.3.0.0 (https://github.com/smdn/Smdn.Reflection.ReverseGenerating)
--- Smdn.Text.Ondulish.latest.nuspec
+++ Smdn.Text.Ondulish.4.1.0.nuspec
@@ -1,42 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
-<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
+<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
<id>Smdn.Text.Ondulish</id>
- <version>4.0.2</version>
+ <version>4.1.0</version>
<title>Smdn.Text.Ondulish</title>
<authors>smdn</authors>
<license type="expression">MIT</license>
<licenseUrl>https://licenses.nuget.org/MIT</licenseUrl>
<icon>Smdn.Text.Ondulish.png</icon>
<readme>README.md</readme>
<projectUrl>https://smdn.jp/works/libs/Smdn.Text.Ondulish/</projectUrl>
<description>A text conversion library that provides translation features from Japanese to Ondulish.</description>
- <copyright>Copyright � 2012 smdn</copyright>
+ <releaseNotes>https://github.com/smdn/Smdn.Text.Ondulish/releases/tag/releases%2FSmdn.Text.Ondulish-4.1.0</releaseNotes>
+ <copyright>Copyright © 2012 smdn</copyright>
<tags>smdn.jp joke funny text-converter translator</tags>
- <repository type="git" url="https://github.com/smdn/Smdn.Text.Ondulish" branch="main" commit="7eedf34a0e35f2209f6384d70422e3e8bc328dc1" />
+ <repository type="git" url="https://github.com/smdn/Smdn.Text.Ondulish" commit="20aa8508b133445efe9312740710d77962b09559" />
<dependencies>
<group targetFramework="net6.0">
<dependency id="Smdn.Fundamental.Csv" version="[3.1.0, 4.0.0)" exclude="Build,Analyzers" />
<dependency id="Smdn.Fundamental.String.Replacement" version="[3.0.2, 4.0.0)" exclude="Build,Analyzers" />
<dependency id="Smdn.Text.Ondulish.Dictionaries" version="[4.0.0, 5.0.0)" exclude="Build,Analyzers" />
</group>
+ <group targetFramework="net8.0">
+ <dependency id="Smdn.Fundamental.Csv" version="[3.1.0, 4.0.0)" exclude="Build,Analyzers" />
+ <dependency id="Smdn.Fundamental.String.Replacement" version="[3.0.2, 4.0.0)" exclude="Build,Analyzers" />
+ <dependency id="Smdn.Text.Ondulish.Dictionaries" version="[4.0.0, 5.0.0)" exclude="Build,Analyzers" />
+ </group>
<group targetFramework=".NETStandard2.1">
<dependency id="Smdn.Fundamental.Csv" version="[3.1.0, 4.0.0)" exclude="Build,Analyzers" />
<dependency id="Smdn.Fundamental.String.Replacement" version="[3.0.2, 4.0.0)" exclude="Build,Analyzers" />
<dependency id="Smdn.Text.Ondulish.Dictionaries" version="[4.0.0, 5.0.0)" exclude="Build,Analyzers" />
</group>
</dependencies>
<contentFiles>
<files include="any/any/mecab/dic/ipadic/char.bin" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/dic/ipadic/dicrc" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/dic/ipadic/left-id.def" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/dic/ipadic/matrix.bin" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/dic/ipadic/pos-id.def" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/dic/ipadic/rewrite.def" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/dic/ipadic/right-id.def" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/dic/ipadic/sys.dic" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/dic/ipadic/unk.dic" buildAction="Content" copyToOutput="true" />
<files include="any/any/mecab/null.mecabrc" buildAction="Content" copyToOutput="true" />
</contentFiles>
</metadata>
</package>
\ No newline at end of file
diff --git a/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish.csproj b/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish.csproj
index d200f7a..ffd3a95 100644
--- a/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish.csproj
+++ b/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish.csproj
@@ -4,11 +4,19 @@ SPDX-License-Identifier: MIT
-->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
- <TargetFrameworks>net6.0;netstandard2.1</TargetFrameworks>
- <RuntimeIdentifiers>ubuntu.22.04-x64</RuntimeIdentifiers>
- <VersionPrefix>4.0.2</VersionPrefix>
+ <TargetFrameworks>net8.0;net6.0;netstandard2.1</TargetFrameworks>
+ <RuntimeIdentifiers>linux-x64</RuntimeIdentifiers>
+ <RuntimeIdentifiers Condition="
+ $(TargetFramework.StartsWith('net7')) or
+ $(TargetFramework.StartsWith('net6')) or
+ $(TargetFramework.StartsWith('net5')) or
+ $(TargetFramework.StartsWith('netstandard'))
+ ">linux-x64;ubuntu.22.04-x64</RuntimeIdentifiers>
+ <VersionPrefix>4.1.0</VersionPrefix>
<VersionSuffix></VersionSuffix>
<PackageValidationBaselineVersion>4.0.0</PackageValidationBaselineVersion>
+ <RootNamespace/> <!-- empty the root namespace so that the namespace is determined only by the directory name, for code style rule IDE0030 -->
+ <NoWarn>CS1591;$(NoWarn)</NoWarn> <!-- CS1591: Missing XML comment for publicly visible type or member 'Type_or_Member' -->
<Nullable>enable</Nullable>
<AssemblyCLSCompliant>false</AssemblyCLSCompliant>
<GenerateNupkgReadmeFileDependsOnTargets>$(GenerateNupkgReadmeFileDependsOnTargets);GenerateReadmeFileContent</GenerateNupkgReadmeFileDependsOnTargets>
@@ -56,13 +64,20 @@ SPDX-License-Identifier: MIT
<Compile Include="$(MeCabBindingsDirectory)src\*.cs" />
-->
- <!-- MeCab shared library -->
+ <!-- MeCab shared library for ubuntu.22.04-x64 -->
<None
Include="$(MeCabBindingsDirectory)runtimes\ubuntu.22.04-x64\native\libmecab.so"
Pack="true"
PackagePath="runtimes\ubuntu.22.04-x64\native\libmecab.so"
CopyToOutputDirectory="PreserveNewest"
/>
+ <!-- MeCab shared library for linux-x64 (substitute ubuntu.22.04-x64 for linux-x64) -->
+ <None
+ Include="$(MeCabBindingsDirectory)runtimes\ubuntu.22.04-x64\native\libmecab.so"
+ Pack="true"
+ PackagePath="runtimes\linux-x64\native\libmecab.so"
+ CopyToOutputDirectory="PreserveNewest"
+ />
<!-- MeCab IPA dictionary files -->
<Content Include="$(MeCabIpaDicDirectory)char.bin" />
diff --git a/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish/Translator.Dictionaries.cs b/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish/Translator.Dictionaries.cs
index 638926a..9b9612b 100644
--- a/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish/Translator.Dictionaries.cs
+++ b/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish/Translator.Dictionaries.cs
@@ -24,12 +24,12 @@ partial class Translator {
y ??= string.Empty;
return x.Length == y.Length
- ? StringComparer.Ordinal.Compare(x, y)
+ ? StringComparer.OrdinalIgnoreCase.Compare(x, y)
: y.Length - x.Length;
}
}
- private static readonly char[] dictionaryPunctuationChars = new[] { '!', '?', '!', '?', '、', '。' };
+ private static readonly char[] DictionaryPunctuationChars = new[] { '!', '?', '!', '?', '、', '。' };
private static SortedList<string, string> LoadDictionary(Stream stream)
{
@@ -46,7 +46,7 @@ partial class Translator {
if (entry.StartsWith('#'))
continue; // comment line
- var key = entries[1].Trim().RemoveChars(dictionaryPunctuationChars);
+ var key = entries[1].Trim().RemoveChars(DictionaryPunctuationChars);
dictionary[KanaUtils.ConvertWideHiraganaToKatakana(key).ToLowerInvariant()] = entries[2].Trim().ToLowerInvariant();
}
@@ -54,7 +54,7 @@ partial class Translator {
return dictionary;
}
- private static readonly IReadOnlyDictionary<string, string> phonemeDictionary =
+ private static readonly IReadOnlyDictionary<string, string> PhonemeDictionary =
new ReadOnlyOrderedDictionary<string, string>(
new[] {
// 最優先
diff --git a/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish/Translator.cs b/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish/Translator.cs
index 7c017b6..cc0c62b 100644
--- a/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish/Translator.cs
+++ b/src/Smdn.Text.Ondulish/Smdn.Text.Ondulish/Translator.cs
@@ -67,20 +67,24 @@ public partial class Translator : IDisposable {
PhraseDictionary = LoadDictionary(stream);
}
+#pragma warning disable CA1031
catch {
- // ignore exceptions
+ // ignore any exceptions
PhraseDictionary = CreateEmptyDictionary();
}
+#pragma warning restore CA1031
try {
using var stream = OndulishDictionaries.OpenWordDictionaryStream();
WordDictionary = LoadDictionary(stream);
}
+#pragma warning disable CA1031
catch {
- // ignore exceptions
+ // ignore any exceptions
WordDictionary = CreateEmptyDictionary();
}
+#pragma warning restore CA1031
static IReadOnlyDictionary<string, string> CreateEmptyDictionary()
=> Enumerable.Empty<(string Key, string Value)>().ToDictionary(static pair => pair.Key, static pair => pair.Value);
@@ -114,10 +118,11 @@ public partial class Translator : IDisposable {
return string.Empty;
var sb = new StringBuilder(input.Length * 2);
+ using var writer = new StringWriter(sb);
Translate(
input: new StringReader(input),
- output: new StringWriter(sb),
+ output: writer,
convertKatakanaToNarrow: convertKatakanaToNarrow
);
@@ -163,17 +168,18 @@ public partial class Translator : IDisposable {
var fragments =
ConvertWithDictionary(
- ConvertToKatakana(line).ToLowerInvariant(),
- PhraseDictionary
+ ConvertToKatakana(line),
+ PhraseDictionary,
+ StringComparison.OrdinalIgnoreCase
)
.SelectMany(f =>
f.ConvertedText is null
- ? ConvertWithDictionary(f.SourceText, WordDictionary)
+ ? ConvertWithDictionary(f.SourceText, WordDictionary, StringComparison.OrdinalIgnoreCase)
: Enumerable.Repeat(f, 1)
)
.SelectMany(f =>
f.ConvertedText is null
- ? ConvertWithDictionary(f.SourceText, phonemeDictionary)
+ ? ConvertWithDictionary(f.SourceText, PhonemeDictionary, StringComparison.OrdinalIgnoreCase)
: Enumerable.Repeat(f, 1)
)
.Select(static f =>
@@ -202,11 +208,17 @@ public partial class Translator : IDisposable {
output.Flush();
}
- private static readonly char[] featureSplitter = new[] { ',' };
+ private static readonly char[] FeatureSplitter = { ',' };
private string ConvertToKatakana(string input)
{
- input = input.Replace(",", ","); // XXX: feature splitter
+ // XXX: feature splitter
+ input = input
+#if SYSTEM_STRING_REPLACE_STRING_STRING_STRINGCOMPARISON
+ .Replace(",", ",", StringComparison.Ordinal);
+#else
+ .Replace(",", ",");
+#endif
var ret = new StringBuilder(input.Length * 2);
@@ -214,7 +226,7 @@ public partial class Translator : IDisposable {
if (node.stat == MeCabConsts.MECAB_BOS_NODE || node.stat == MeCabConsts.MECAB_EOS_NODE)
continue;
- var featureEntries = node.feature.Split(featureSplitter);
+ var featureEntries = node.feature.Split(FeatureSplitter);
if (8 <= featureEntries.Length) {
switch (featureEntries[6]) {
@@ -245,6 +257,7 @@ public partial class Translator : IDisposable {
string input,
int startIndex,
IReadOnlyDictionary<string, string> dictionary,
+ StringComparison comparison,
out int position,
out KeyValuePair<string, string> candidate
)
@@ -253,7 +266,7 @@ public partial class Translator : IDisposable {
candidate = default;
foreach (var entry in dictionary) {
- var pos = input.IndexOf(entry.Key, startIndex, StringComparison.Ordinal);
+ var pos = input.IndexOf(entry.Key, startIndex, comparison);
if (0 <= pos && pos < position) {
position = pos;
@@ -266,12 +279,13 @@ public partial class Translator : IDisposable {
private static IEnumerable<TextFragment> ConvertWithDictionary(
string input,
- IReadOnlyDictionary<string, string> dictionary
+ IReadOnlyDictionary<string, string> dictionary,
+ StringComparison comparison
)
{
var offset = 0;
- while (FindMostLeftAndLongestCandidate(input, offset, dictionary, out var position, out var candidate)) {
+ while (FindMostLeftAndLongestCandidate(input, offset, dictionary, comparison, out var position, out var candidate)) {
if (offset < position)
yield return new TextFragment(input.Substring(offset, position - offset), null);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment