blob: 1b97b3b930087dd2fb3e2a050899c6422f6528e0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
// © 2024 and later: Unicode, Inc. and others.
// License & terms of use: http://www.unicode.org/copyright.html
#include "unicode/utypes.h"
#ifndef U_HIDE_DEPRECATED_API
#ifndef MESSAGEFORMAT_SERIALIZER_H
#define MESSAGEFORMAT_SERIALIZER_H
#if U_SHOW_CPLUSPLUS_API
#if !UCONFIG_NO_FORMATTING
#if !UCONFIG_NO_MF2
#include "unicode/messageformat2_data_model.h"
U_NAMESPACE_BEGIN
namespace message2 {
using namespace data_model;
// Serializer class (private)
// Converts a data model back to a string
// TODO: Should be private; made public so tests
// can use it
class U_I18N_API Serializer : public UMemory {
public:
Serializer(const MFDataModel& m, UnicodeString& s) : dataModel(m), result(s) {}
void serialize();
const MFDataModel& dataModel;
UnicodeString& result;
private:
void whitespace();
void emit(UChar32);
void emit(const std::u16string_view&);
void emit(const UnicodeString&);
void emit(const Literal&);
void emit(const Key&);
void emit(const SelectorKeys&);
void emit(const Operand&);
void emit(const Expression&);
void emit(const PatternPart&);
void emit(const Pattern&);
void emit(const Variant*);
void emitAttributes(const OptionMap&);
void emit(const OptionMap&);
void serializeDeclarations();
void serializeSelectors();
void serializeVariants();
}; // class Serializer
} // namespace message2
U_NAMESPACE_END
#endif /* #if !UCONFIG_NO_MF2 */
#endif /* #if !UCONFIG_NO_FORMATTING */
#endif /* U_SHOW_CPLUSPLUS_API */
#endif // MESSAGEFORMAT_SERIALIZER_H
#endif // U_HIDE_DEPRECATED_API
// eof
|