diff options
author | Taku Kudo <taku@google.com> | 2017-03-07 13:43:50 +0300 |
---|---|---|
committer | Taku Kudo <taku@google.com> | 2017-03-07 13:43:50 +0300 |
commit | 2928ce5307224ea4c012fc6cbd7a098c486590b6 (patch) | |
tree | 38b679886855a7a6b80fdc61f2f62c952cf3bfb7 /src/unicode_script.cc |
Initialize repository
Diffstat (limited to 'src/unicode_script.cc')
-rw-r--r-- | src/unicode_script.cc | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/unicode_script.cc b/src/unicode_script.cc new file mode 100644 index 0000000..9f2edfc --- /dev/null +++ b/src/unicode_script.cc @@ -0,0 +1,41 @@ +// Copyright 2016 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License.! + +#include "unicode_script.h" +#include <unordered_map> +#include "unicode_script_map.h" +#include "util.h" + +namespace sentencepiece { +namespace unicode_script { +namespace { +class GetScriptInternal { + public: + GetScriptInternal() { InitTable(&smap_); } + + ScriptType GetScript(char32 c) const { + return port::FindWithDefault(smap_, c, ScriptType::U_Common); + } + + private: + std::unordered_map<char32, ScriptType> smap_; +}; +} // namespace + +ScriptType GetScript(char32 c) { + static GetScriptInternal sc; + return sc.GetScript(c); +} +} // namespace unicode_script +} // namespace sentencepiece |