Inflection
Morphology Inflection
Loading...
Searching...
No Matches
LanguageGrammarFeatures_GrammarCategory.hpp
1/*
2 * Copyright 2016-2024 Apple Inc. All rights reserved.
3 */
4#pragma once
5
6#include <inflection/lang/features/fwd.hpp>
7#include <inflection/Object.hpp>
8#include <map>
9#include <string>
10#include <set>
11
23 : public virtual ::inflection::Object
24{
25public:
27 typedef ::inflection::Object super;
29
30private:
31 std::u16string name { };
32 std::set<std::u16string> values { };
33 std::multimap<std::u16string, std::u16string> grammemeDependenciesForCategory { };
34 std::map<std::u16string_view, std::multimap<std::u16string, std::u16string>> grammemeDependenciesForValues { };
35 bool uniqueValues { true };
36
37public:
41 std::u16string getName() const;
45 std::set<std::u16string> getValues() const;
49 bool isUniqueValues() const;
55 std::multimap<std::u16string, std::u16string> getGrammemeDependenciesForCategory() const;
61 std::multimap<std::u16string, std::u16string> getGrammemeDependenciesForValue(std::u16string_view grammemeValue) const;
62
67 std::weak_ordering operator<=>(const LanguageGrammarFeatures_GrammarCategory& other) const;
68
69private: /* package */
70 LanguageGrammarFeatures_GrammarCategory(const std::u16string& name, const std::set<std::u16string>& values,
71 const std::multimap<std::u16string, std::u16string>& grammemeDependenciesForCategory,
72 const std::map<std::u16string_view, std::multimap<std::u16string, std::u16string>>& grammemeDependenciesForValues);
73public:
78
79private:
80 friend class LanguageGrammarFeatures;
81};
Inflection's root object.
Definition Object.hpp:14
std::multimap< std::u16string, std::u16string > getGrammemeDependenciesForValue(std::u16string_view grammemeValue) const
std::weak_ordering operator<=>(const LanguageGrammarFeatures_GrammarCategory &other) const
std::multimap< std::u16string, std::u16string > getGrammemeDependenciesForCategory() const
This class provides information about semantic features and grammatical categories used for the class...
The C++ namespace for Inflection.
Definition fwd.hpp:11