1 // automatically generated by the FlatBuffers compiler, do not modify
2
3
4 #ifndef FLATBUFFERS_GENERATED_RULES_LIBTEXTCLASSIFIER3_GRAMMAR_H_
5 #define FLATBUFFERS_GENERATED_RULES_LIBTEXTCLASSIFIER3_GRAMMAR_H_
6
7 #include "flatbuffers/flatbuffers.h"
8
9 // Ensure the included flatbuffers.h is the same version as when this file was
10 // generated, otherwise it may not be compatible.
11 static_assert(FLATBUFFERS_VERSION_MAJOR == 2 &&
12 FLATBUFFERS_VERSION_MINOR == 0 &&
13 FLATBUFFERS_VERSION_REVISION == 7,
14 "Non-compatible flatbuffers version included");
15
16 #include "utils/grammar/semantics/expression_generated.h"
17 #include "utils/i18n/language-tag_generated.h"
18 #include "utils/zlib/buffer_generated.h"
19
20 namespace libtextclassifier3 {
21 namespace grammar {
22 namespace RulesSet_ {
23 namespace Rules_ {
24
25 struct TerminalRulesMap;
26 struct TerminalRulesMapBuilder;
27 struct TerminalRulesMapT;
28
29 struct UnaryRulesEntry;
30
31 struct BinaryRule;
32
33 struct BinaryRuleTableBucket;
34 struct BinaryRuleTableBucketBuilder;
35 struct BinaryRuleTableBucketT;
36
37 } // namespace Rules_
38
39 struct Rules;
40 struct RulesBuilder;
41 struct RulesT;
42
43 struct LhsSet;
44 struct LhsSetBuilder;
45 struct LhsSetT;
46
47 struct Lhs;
48
49 namespace Nonterminals_ {
50
51 struct AnnotationNtEntry;
52 struct AnnotationNtEntryBuilder;
53 struct AnnotationNtEntryT;
54
55 } // namespace Nonterminals_
56
57 struct Nonterminals;
58 struct NonterminalsBuilder;
59 struct NonterminalsT;
60
61 namespace DebugInformation_ {
62
63 struct NonterminalNamesEntry;
64 struct NonterminalNamesEntryBuilder;
65 struct NonterminalNamesEntryT;
66
67 } // namespace DebugInformation_
68
69 struct DebugInformation;
70 struct DebugInformationBuilder;
71 struct DebugInformationT;
72
73 struct RegexAnnotator;
74 struct RegexAnnotatorBuilder;
75 struct RegexAnnotatorT;
76
77 } // namespace RulesSet_
78
79 struct RulesSet;
80 struct RulesSetBuilder;
81 struct RulesSetT;
82
83 namespace RulesSet_ {
84 namespace Rules_ {
85
86 FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) UnaryRulesEntry FLATBUFFERS_FINAL_CLASS {
87 private:
88 uint32_t key_;
89 uint32_t value_;
90
91 public:
UnaryRulesEntry()92 UnaryRulesEntry()
93 : key_(0),
94 value_(0) {
95 }
UnaryRulesEntry(uint32_t _key,uint32_t _value)96 UnaryRulesEntry(uint32_t _key, uint32_t _value)
97 : key_(flatbuffers::EndianScalar(_key)),
98 value_(flatbuffers::EndianScalar(_value)) {
99 }
key()100 uint32_t key() const {
101 return flatbuffers::EndianScalar(key_);
102 }
KeyCompareLessThan(const UnaryRulesEntry * o)103 bool KeyCompareLessThan(const UnaryRulesEntry *o) const {
104 return key() < o->key();
105 }
KeyCompareWithValue(uint32_t _key)106 int KeyCompareWithValue(uint32_t _key) const {
107 return static_cast<int>(key() > _key) - static_cast<int>(key() < _key);
108 }
value()109 uint32_t value() const {
110 return flatbuffers::EndianScalar(value_);
111 }
112 };
113 FLATBUFFERS_STRUCT_END(UnaryRulesEntry, 8);
114
115 FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) BinaryRule FLATBUFFERS_FINAL_CLASS {
116 private:
117 uint32_t rhs_first_;
118 uint32_t rhs_second_;
119 uint32_t lhs_set_index_;
120
121 public:
BinaryRule()122 BinaryRule()
123 : rhs_first_(0),
124 rhs_second_(0),
125 lhs_set_index_(0) {
126 }
BinaryRule(uint32_t _rhs_first,uint32_t _rhs_second,uint32_t _lhs_set_index)127 BinaryRule(uint32_t _rhs_first, uint32_t _rhs_second, uint32_t _lhs_set_index)
128 : rhs_first_(flatbuffers::EndianScalar(_rhs_first)),
129 rhs_second_(flatbuffers::EndianScalar(_rhs_second)),
130 lhs_set_index_(flatbuffers::EndianScalar(_lhs_set_index)) {
131 }
rhs_first()132 uint32_t rhs_first() const {
133 return flatbuffers::EndianScalar(rhs_first_);
134 }
rhs_second()135 uint32_t rhs_second() const {
136 return flatbuffers::EndianScalar(rhs_second_);
137 }
lhs_set_index()138 uint32_t lhs_set_index() const {
139 return flatbuffers::EndianScalar(lhs_set_index_);
140 }
141 };
142 FLATBUFFERS_STRUCT_END(BinaryRule, 12);
143
144 } // namespace Rules_
145
146 FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Lhs FLATBUFFERS_FINAL_CLASS {
147 private:
148 uint32_t nonterminal_;
149 uint32_t callback_id_;
150 uint64_t callback_param_;
151 int8_t max_whitespace_gap_;
152 int8_t padding0__; int16_t padding1__; int32_t padding2__;
153
154 public:
Lhs()155 Lhs()
156 : nonterminal_(0),
157 callback_id_(0),
158 callback_param_(0),
159 max_whitespace_gap_(0),
160 padding0__(0),
161 padding1__(0),
162 padding2__(0) {
163 (void)padding0__;
164 (void)padding1__;
165 (void)padding2__;
166 }
Lhs(uint32_t _nonterminal,uint32_t _callback_id,uint64_t _callback_param,int8_t _max_whitespace_gap)167 Lhs(uint32_t _nonterminal, uint32_t _callback_id, uint64_t _callback_param, int8_t _max_whitespace_gap)
168 : nonterminal_(flatbuffers::EndianScalar(_nonterminal)),
169 callback_id_(flatbuffers::EndianScalar(_callback_id)),
170 callback_param_(flatbuffers::EndianScalar(_callback_param)),
171 max_whitespace_gap_(flatbuffers::EndianScalar(_max_whitespace_gap)),
172 padding0__(0),
173 padding1__(0),
174 padding2__(0) {
175 (void)padding0__;
176 (void)padding1__;
177 (void)padding2__;
178 }
nonterminal()179 uint32_t nonterminal() const {
180 return flatbuffers::EndianScalar(nonterminal_);
181 }
callback_id()182 uint32_t callback_id() const {
183 return flatbuffers::EndianScalar(callback_id_);
184 }
callback_param()185 uint64_t callback_param() const {
186 return flatbuffers::EndianScalar(callback_param_);
187 }
max_whitespace_gap()188 int8_t max_whitespace_gap() const {
189 return flatbuffers::EndianScalar(max_whitespace_gap_);
190 }
191 };
192 FLATBUFFERS_STRUCT_END(Lhs, 24);
193
194 namespace Rules_ {
195
196 struct TerminalRulesMapT : public flatbuffers::NativeTable {
197 typedef TerminalRulesMap TableType;
198 std::vector<uint32_t> terminal_offsets{};
199 std::vector<uint32_t> lhs_set_index{};
200 int32_t min_terminal_length = 0;
201 int32_t max_terminal_length = 0;
202 };
203
204 struct TerminalRulesMap FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
205 typedef TerminalRulesMapT NativeTableType;
206 typedef TerminalRulesMapBuilder Builder;
207 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
208 VT_TERMINAL_OFFSETS = 4,
209 VT_LHS_SET_INDEX = 6,
210 VT_MIN_TERMINAL_LENGTH = 8,
211 VT_MAX_TERMINAL_LENGTH = 10
212 };
terminal_offsetsFLATBUFFERS_FINAL_CLASS213 const flatbuffers::Vector<uint32_t> *terminal_offsets() const {
214 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_TERMINAL_OFFSETS);
215 }
lhs_set_indexFLATBUFFERS_FINAL_CLASS216 const flatbuffers::Vector<uint32_t> *lhs_set_index() const {
217 return GetPointer<const flatbuffers::Vector<uint32_t> *>(VT_LHS_SET_INDEX);
218 }
min_terminal_lengthFLATBUFFERS_FINAL_CLASS219 int32_t min_terminal_length() const {
220 return GetField<int32_t>(VT_MIN_TERMINAL_LENGTH, 0);
221 }
max_terminal_lengthFLATBUFFERS_FINAL_CLASS222 int32_t max_terminal_length() const {
223 return GetField<int32_t>(VT_MAX_TERMINAL_LENGTH, 0);
224 }
VerifyFLATBUFFERS_FINAL_CLASS225 bool Verify(flatbuffers::Verifier &verifier) const {
226 return VerifyTableStart(verifier) &&
227 VerifyOffset(verifier, VT_TERMINAL_OFFSETS) &&
228 verifier.VerifyVector(terminal_offsets()) &&
229 VerifyOffset(verifier, VT_LHS_SET_INDEX) &&
230 verifier.VerifyVector(lhs_set_index()) &&
231 VerifyField<int32_t>(verifier, VT_MIN_TERMINAL_LENGTH, 4) &&
232 VerifyField<int32_t>(verifier, VT_MAX_TERMINAL_LENGTH, 4) &&
233 verifier.EndTable();
234 }
235 TerminalRulesMapT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
236 void UnPackTo(TerminalRulesMapT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
237 static flatbuffers::Offset<TerminalRulesMap> Pack(flatbuffers::FlatBufferBuilder &_fbb, const TerminalRulesMapT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
238 };
239
240 struct TerminalRulesMapBuilder {
241 typedef TerminalRulesMap Table;
242 flatbuffers::FlatBufferBuilder &fbb_;
243 flatbuffers::uoffset_t start_;
add_terminal_offsetsTerminalRulesMapBuilder244 void add_terminal_offsets(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> terminal_offsets) {
245 fbb_.AddOffset(TerminalRulesMap::VT_TERMINAL_OFFSETS, terminal_offsets);
246 }
add_lhs_set_indexTerminalRulesMapBuilder247 void add_lhs_set_index(flatbuffers::Offset<flatbuffers::Vector<uint32_t>> lhs_set_index) {
248 fbb_.AddOffset(TerminalRulesMap::VT_LHS_SET_INDEX, lhs_set_index);
249 }
add_min_terminal_lengthTerminalRulesMapBuilder250 void add_min_terminal_length(int32_t min_terminal_length) {
251 fbb_.AddElement<int32_t>(TerminalRulesMap::VT_MIN_TERMINAL_LENGTH, min_terminal_length, 0);
252 }
add_max_terminal_lengthTerminalRulesMapBuilder253 void add_max_terminal_length(int32_t max_terminal_length) {
254 fbb_.AddElement<int32_t>(TerminalRulesMap::VT_MAX_TERMINAL_LENGTH, max_terminal_length, 0);
255 }
TerminalRulesMapBuilderTerminalRulesMapBuilder256 explicit TerminalRulesMapBuilder(flatbuffers::FlatBufferBuilder &_fbb)
257 : fbb_(_fbb) {
258 start_ = fbb_.StartTable();
259 }
FinishTerminalRulesMapBuilder260 flatbuffers::Offset<TerminalRulesMap> Finish() {
261 const auto end = fbb_.EndTable(start_);
262 auto o = flatbuffers::Offset<TerminalRulesMap>(end);
263 return o;
264 }
265 };
266
267 inline flatbuffers::Offset<TerminalRulesMap> CreateTerminalRulesMap(
268 flatbuffers::FlatBufferBuilder &_fbb,
269 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> terminal_offsets = 0,
270 flatbuffers::Offset<flatbuffers::Vector<uint32_t>> lhs_set_index = 0,
271 int32_t min_terminal_length = 0,
272 int32_t max_terminal_length = 0) {
273 TerminalRulesMapBuilder builder_(_fbb);
274 builder_.add_max_terminal_length(max_terminal_length);
275 builder_.add_min_terminal_length(min_terminal_length);
276 builder_.add_lhs_set_index(lhs_set_index);
277 builder_.add_terminal_offsets(terminal_offsets);
278 return builder_.Finish();
279 }
280
281 inline flatbuffers::Offset<TerminalRulesMap> CreateTerminalRulesMapDirect(
282 flatbuffers::FlatBufferBuilder &_fbb,
283 const std::vector<uint32_t> *terminal_offsets = nullptr,
284 const std::vector<uint32_t> *lhs_set_index = nullptr,
285 int32_t min_terminal_length = 0,
286 int32_t max_terminal_length = 0) {
287 auto terminal_offsets__ = terminal_offsets ? _fbb.CreateVector<uint32_t>(*terminal_offsets) : 0;
288 auto lhs_set_index__ = lhs_set_index ? _fbb.CreateVector<uint32_t>(*lhs_set_index) : 0;
289 return libtextclassifier3::grammar::RulesSet_::Rules_::CreateTerminalRulesMap(
290 _fbb,
291 terminal_offsets__,
292 lhs_set_index__,
293 min_terminal_length,
294 max_terminal_length);
295 }
296
297 flatbuffers::Offset<TerminalRulesMap> CreateTerminalRulesMap(flatbuffers::FlatBufferBuilder &_fbb, const TerminalRulesMapT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
298
299 struct BinaryRuleTableBucketT : public flatbuffers::NativeTable {
300 typedef BinaryRuleTableBucket TableType;
301 std::vector<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRule> rules{};
302 };
303
304 struct BinaryRuleTableBucket FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
305 typedef BinaryRuleTableBucketT NativeTableType;
306 typedef BinaryRuleTableBucketBuilder Builder;
307 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
308 VT_RULES = 4
309 };
rulesFLATBUFFERS_FINAL_CLASS310 const flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRule *> *rules() const {
311 return GetPointer<const flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRule *> *>(VT_RULES);
312 }
VerifyFLATBUFFERS_FINAL_CLASS313 bool Verify(flatbuffers::Verifier &verifier) const {
314 return VerifyTableStart(verifier) &&
315 VerifyOffset(verifier, VT_RULES) &&
316 verifier.VerifyVector(rules()) &&
317 verifier.EndTable();
318 }
319 BinaryRuleTableBucketT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
320 void UnPackTo(BinaryRuleTableBucketT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
321 static flatbuffers::Offset<BinaryRuleTableBucket> Pack(flatbuffers::FlatBufferBuilder &_fbb, const BinaryRuleTableBucketT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
322 };
323
324 struct BinaryRuleTableBucketBuilder {
325 typedef BinaryRuleTableBucket Table;
326 flatbuffers::FlatBufferBuilder &fbb_;
327 flatbuffers::uoffset_t start_;
add_rulesBinaryRuleTableBucketBuilder328 void add_rules(flatbuffers::Offset<flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRule *>> rules) {
329 fbb_.AddOffset(BinaryRuleTableBucket::VT_RULES, rules);
330 }
BinaryRuleTableBucketBuilderBinaryRuleTableBucketBuilder331 explicit BinaryRuleTableBucketBuilder(flatbuffers::FlatBufferBuilder &_fbb)
332 : fbb_(_fbb) {
333 start_ = fbb_.StartTable();
334 }
FinishBinaryRuleTableBucketBuilder335 flatbuffers::Offset<BinaryRuleTableBucket> Finish() {
336 const auto end = fbb_.EndTable(start_);
337 auto o = flatbuffers::Offset<BinaryRuleTableBucket>(end);
338 return o;
339 }
340 };
341
342 inline flatbuffers::Offset<BinaryRuleTableBucket> CreateBinaryRuleTableBucket(
343 flatbuffers::FlatBufferBuilder &_fbb,
344 flatbuffers::Offset<flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRule *>> rules = 0) {
345 BinaryRuleTableBucketBuilder builder_(_fbb);
346 builder_.add_rules(rules);
347 return builder_.Finish();
348 }
349
350 inline flatbuffers::Offset<BinaryRuleTableBucket> CreateBinaryRuleTableBucketDirect(
351 flatbuffers::FlatBufferBuilder &_fbb,
352 const std::vector<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRule> *rules = nullptr) {
353 auto rules__ = rules ? _fbb.CreateVectorOfStructs<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRule>(*rules) : 0;
354 return libtextclassifier3::grammar::RulesSet_::Rules_::CreateBinaryRuleTableBucket(
355 _fbb,
356 rules__);
357 }
358
359 flatbuffers::Offset<BinaryRuleTableBucket> CreateBinaryRuleTableBucket(flatbuffers::FlatBufferBuilder &_fbb, const BinaryRuleTableBucketT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
360
361 } // namespace Rules_
362
363 struct RulesT : public flatbuffers::NativeTable {
364 typedef Rules TableType;
365 std::vector<std::unique_ptr<libtextclassifier3::LanguageTagT>> locale{};
366 std::unique_ptr<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMapT> terminal_rules{};
367 std::unique_ptr<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMapT> lowercase_terminal_rules{};
368 std::vector<libtextclassifier3::grammar::RulesSet_::Rules_::UnaryRulesEntry> unary_rules{};
369 std::vector<std::unique_ptr<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucketT>> binary_rules{};
370 RulesT() = default;
371 RulesT(const RulesT &o);
372 RulesT(RulesT&&) FLATBUFFERS_NOEXCEPT = default;
373 RulesT &operator=(RulesT o) FLATBUFFERS_NOEXCEPT;
374 };
375
376 struct Rules FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
377 typedef RulesT NativeTableType;
378 typedef RulesBuilder Builder;
379 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
380 VT_LOCALE = 4,
381 VT_TERMINAL_RULES = 6,
382 VT_LOWERCASE_TERMINAL_RULES = 8,
383 VT_UNARY_RULES = 10,
384 VT_BINARY_RULES = 12
385 };
localeFLATBUFFERS_FINAL_CLASS386 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::LanguageTag>> *locale() const {
387 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::LanguageTag>> *>(VT_LOCALE);
388 }
terminal_rulesFLATBUFFERS_FINAL_CLASS389 const libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap *terminal_rules() const {
390 return GetPointer<const libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap *>(VT_TERMINAL_RULES);
391 }
lowercase_terminal_rulesFLATBUFFERS_FINAL_CLASS392 const libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap *lowercase_terminal_rules() const {
393 return GetPointer<const libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap *>(VT_LOWERCASE_TERMINAL_RULES);
394 }
unary_rulesFLATBUFFERS_FINAL_CLASS395 const flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Rules_::UnaryRulesEntry *> *unary_rules() const {
396 return GetPointer<const flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Rules_::UnaryRulesEntry *> *>(VT_UNARY_RULES);
397 }
binary_rulesFLATBUFFERS_FINAL_CLASS398 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucket>> *binary_rules() const {
399 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucket>> *>(VT_BINARY_RULES);
400 }
VerifyFLATBUFFERS_FINAL_CLASS401 bool Verify(flatbuffers::Verifier &verifier) const {
402 return VerifyTableStart(verifier) &&
403 VerifyOffset(verifier, VT_LOCALE) &&
404 verifier.VerifyVector(locale()) &&
405 verifier.VerifyVectorOfTables(locale()) &&
406 VerifyOffset(verifier, VT_TERMINAL_RULES) &&
407 verifier.VerifyTable(terminal_rules()) &&
408 VerifyOffset(verifier, VT_LOWERCASE_TERMINAL_RULES) &&
409 verifier.VerifyTable(lowercase_terminal_rules()) &&
410 VerifyOffset(verifier, VT_UNARY_RULES) &&
411 verifier.VerifyVector(unary_rules()) &&
412 VerifyOffset(verifier, VT_BINARY_RULES) &&
413 verifier.VerifyVector(binary_rules()) &&
414 verifier.VerifyVectorOfTables(binary_rules()) &&
415 verifier.EndTable();
416 }
417 RulesT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
418 void UnPackTo(RulesT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
419 static flatbuffers::Offset<Rules> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RulesT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
420 };
421
422 struct RulesBuilder {
423 typedef Rules Table;
424 flatbuffers::FlatBufferBuilder &fbb_;
425 flatbuffers::uoffset_t start_;
add_localeRulesBuilder426 void add_locale(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::LanguageTag>>> locale) {
427 fbb_.AddOffset(Rules::VT_LOCALE, locale);
428 }
add_terminal_rulesRulesBuilder429 void add_terminal_rules(flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap> terminal_rules) {
430 fbb_.AddOffset(Rules::VT_TERMINAL_RULES, terminal_rules);
431 }
add_lowercase_terminal_rulesRulesBuilder432 void add_lowercase_terminal_rules(flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap> lowercase_terminal_rules) {
433 fbb_.AddOffset(Rules::VT_LOWERCASE_TERMINAL_RULES, lowercase_terminal_rules);
434 }
add_unary_rulesRulesBuilder435 void add_unary_rules(flatbuffers::Offset<flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Rules_::UnaryRulesEntry *>> unary_rules) {
436 fbb_.AddOffset(Rules::VT_UNARY_RULES, unary_rules);
437 }
add_binary_rulesRulesBuilder438 void add_binary_rules(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucket>>> binary_rules) {
439 fbb_.AddOffset(Rules::VT_BINARY_RULES, binary_rules);
440 }
RulesBuilderRulesBuilder441 explicit RulesBuilder(flatbuffers::FlatBufferBuilder &_fbb)
442 : fbb_(_fbb) {
443 start_ = fbb_.StartTable();
444 }
FinishRulesBuilder445 flatbuffers::Offset<Rules> Finish() {
446 const auto end = fbb_.EndTable(start_);
447 auto o = flatbuffers::Offset<Rules>(end);
448 return o;
449 }
450 };
451
452 inline flatbuffers::Offset<Rules> CreateRules(
453 flatbuffers::FlatBufferBuilder &_fbb,
454 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::LanguageTag>>> locale = 0,
455 flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap> terminal_rules = 0,
456 flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap> lowercase_terminal_rules = 0,
457 flatbuffers::Offset<flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Rules_::UnaryRulesEntry *>> unary_rules = 0,
458 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucket>>> binary_rules = 0) {
459 RulesBuilder builder_(_fbb);
460 builder_.add_binary_rules(binary_rules);
461 builder_.add_unary_rules(unary_rules);
462 builder_.add_lowercase_terminal_rules(lowercase_terminal_rules);
463 builder_.add_terminal_rules(terminal_rules);
464 builder_.add_locale(locale);
465 return builder_.Finish();
466 }
467
468 inline flatbuffers::Offset<Rules> CreateRulesDirect(
469 flatbuffers::FlatBufferBuilder &_fbb,
470 const std::vector<flatbuffers::Offset<libtextclassifier3::LanguageTag>> *locale = nullptr,
471 flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap> terminal_rules = 0,
472 flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMap> lowercase_terminal_rules = 0,
473 std::vector<libtextclassifier3::grammar::RulesSet_::Rules_::UnaryRulesEntry> *unary_rules = nullptr,
474 const std::vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucket>> *binary_rules = nullptr) {
475 auto locale__ = locale ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::LanguageTag>>(*locale) : 0;
476 auto unary_rules__ = unary_rules ? _fbb.CreateVectorOfSortedStructs<libtextclassifier3::grammar::RulesSet_::Rules_::UnaryRulesEntry>(unary_rules) : 0;
477 auto binary_rules__ = binary_rules ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucket>>(*binary_rules) : 0;
478 return libtextclassifier3::grammar::RulesSet_::CreateRules(
479 _fbb,
480 locale__,
481 terminal_rules,
482 lowercase_terminal_rules,
483 unary_rules__,
484 binary_rules__);
485 }
486
487 flatbuffers::Offset<Rules> CreateRules(flatbuffers::FlatBufferBuilder &_fbb, const RulesT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
488
489 struct LhsSetT : public flatbuffers::NativeTable {
490 typedef LhsSet TableType;
491 std::vector<int32_t> lhs{};
492 };
493
494 struct LhsSet FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
495 typedef LhsSetT NativeTableType;
496 typedef LhsSetBuilder Builder;
497 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
498 VT_LHS = 4
499 };
lhsFLATBUFFERS_FINAL_CLASS500 const flatbuffers::Vector<int32_t> *lhs() const {
501 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_LHS);
502 }
VerifyFLATBUFFERS_FINAL_CLASS503 bool Verify(flatbuffers::Verifier &verifier) const {
504 return VerifyTableStart(verifier) &&
505 VerifyOffset(verifier, VT_LHS) &&
506 verifier.VerifyVector(lhs()) &&
507 verifier.EndTable();
508 }
509 LhsSetT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
510 void UnPackTo(LhsSetT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
511 static flatbuffers::Offset<LhsSet> Pack(flatbuffers::FlatBufferBuilder &_fbb, const LhsSetT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
512 };
513
514 struct LhsSetBuilder {
515 typedef LhsSet Table;
516 flatbuffers::FlatBufferBuilder &fbb_;
517 flatbuffers::uoffset_t start_;
add_lhsLhsSetBuilder518 void add_lhs(flatbuffers::Offset<flatbuffers::Vector<int32_t>> lhs) {
519 fbb_.AddOffset(LhsSet::VT_LHS, lhs);
520 }
LhsSetBuilderLhsSetBuilder521 explicit LhsSetBuilder(flatbuffers::FlatBufferBuilder &_fbb)
522 : fbb_(_fbb) {
523 start_ = fbb_.StartTable();
524 }
FinishLhsSetBuilder525 flatbuffers::Offset<LhsSet> Finish() {
526 const auto end = fbb_.EndTable(start_);
527 auto o = flatbuffers::Offset<LhsSet>(end);
528 return o;
529 }
530 };
531
532 inline flatbuffers::Offset<LhsSet> CreateLhsSet(
533 flatbuffers::FlatBufferBuilder &_fbb,
534 flatbuffers::Offset<flatbuffers::Vector<int32_t>> lhs = 0) {
535 LhsSetBuilder builder_(_fbb);
536 builder_.add_lhs(lhs);
537 return builder_.Finish();
538 }
539
540 inline flatbuffers::Offset<LhsSet> CreateLhsSetDirect(
541 flatbuffers::FlatBufferBuilder &_fbb,
542 const std::vector<int32_t> *lhs = nullptr) {
543 auto lhs__ = lhs ? _fbb.CreateVector<int32_t>(*lhs) : 0;
544 return libtextclassifier3::grammar::RulesSet_::CreateLhsSet(
545 _fbb,
546 lhs__);
547 }
548
549 flatbuffers::Offset<LhsSet> CreateLhsSet(flatbuffers::FlatBufferBuilder &_fbb, const LhsSetT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
550
551 namespace Nonterminals_ {
552
553 struct AnnotationNtEntryT : public flatbuffers::NativeTable {
554 typedef AnnotationNtEntry TableType;
555 std::string key{};
556 int32_t value = 0;
557 };
558
559 struct AnnotationNtEntry FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
560 typedef AnnotationNtEntryT NativeTableType;
561 typedef AnnotationNtEntryBuilder Builder;
562 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
563 VT_KEY = 4,
564 VT_VALUE = 6
565 };
keyFLATBUFFERS_FINAL_CLASS566 const flatbuffers::String *key() const {
567 return GetPointer<const flatbuffers::String *>(VT_KEY);
568 }
KeyCompareLessThanFLATBUFFERS_FINAL_CLASS569 bool KeyCompareLessThan(const AnnotationNtEntry *o) const {
570 return *key() < *o->key();
571 }
KeyCompareWithValueFLATBUFFERS_FINAL_CLASS572 int KeyCompareWithValue(const char *_key) const {
573 return strcmp(key()->c_str(), _key);
574 }
valueFLATBUFFERS_FINAL_CLASS575 int32_t value() const {
576 return GetField<int32_t>(VT_VALUE, 0);
577 }
VerifyFLATBUFFERS_FINAL_CLASS578 bool Verify(flatbuffers::Verifier &verifier) const {
579 return VerifyTableStart(verifier) &&
580 VerifyOffsetRequired(verifier, VT_KEY) &&
581 verifier.VerifyString(key()) &&
582 VerifyField<int32_t>(verifier, VT_VALUE, 4) &&
583 verifier.EndTable();
584 }
585 AnnotationNtEntryT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
586 void UnPackTo(AnnotationNtEntryT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
587 static flatbuffers::Offset<AnnotationNtEntry> Pack(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationNtEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
588 };
589
590 struct AnnotationNtEntryBuilder {
591 typedef AnnotationNtEntry Table;
592 flatbuffers::FlatBufferBuilder &fbb_;
593 flatbuffers::uoffset_t start_;
add_keyAnnotationNtEntryBuilder594 void add_key(flatbuffers::Offset<flatbuffers::String> key) {
595 fbb_.AddOffset(AnnotationNtEntry::VT_KEY, key);
596 }
add_valueAnnotationNtEntryBuilder597 void add_value(int32_t value) {
598 fbb_.AddElement<int32_t>(AnnotationNtEntry::VT_VALUE, value, 0);
599 }
AnnotationNtEntryBuilderAnnotationNtEntryBuilder600 explicit AnnotationNtEntryBuilder(flatbuffers::FlatBufferBuilder &_fbb)
601 : fbb_(_fbb) {
602 start_ = fbb_.StartTable();
603 }
FinishAnnotationNtEntryBuilder604 flatbuffers::Offset<AnnotationNtEntry> Finish() {
605 const auto end = fbb_.EndTable(start_);
606 auto o = flatbuffers::Offset<AnnotationNtEntry>(end);
607 fbb_.Required(o, AnnotationNtEntry::VT_KEY);
608 return o;
609 }
610 };
611
612 inline flatbuffers::Offset<AnnotationNtEntry> CreateAnnotationNtEntry(
613 flatbuffers::FlatBufferBuilder &_fbb,
614 flatbuffers::Offset<flatbuffers::String> key = 0,
615 int32_t value = 0) {
616 AnnotationNtEntryBuilder builder_(_fbb);
617 builder_.add_value(value);
618 builder_.add_key(key);
619 return builder_.Finish();
620 }
621
622 inline flatbuffers::Offset<AnnotationNtEntry> CreateAnnotationNtEntryDirect(
623 flatbuffers::FlatBufferBuilder &_fbb,
624 const char *key = nullptr,
625 int32_t value = 0) {
626 auto key__ = key ? _fbb.CreateSharedString(key) : 0;
627 return libtextclassifier3::grammar::RulesSet_::Nonterminals_::CreateAnnotationNtEntry(
628 _fbb,
629 key__,
630 value);
631 }
632
633 flatbuffers::Offset<AnnotationNtEntry> CreateAnnotationNtEntry(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationNtEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
634
635 } // namespace Nonterminals_
636
637 struct NonterminalsT : public flatbuffers::NativeTable {
638 typedef Nonterminals TableType;
639 int32_t start_nt = 0;
640 int32_t end_nt = 0;
641 int32_t token_nt = 0;
642 int32_t digits_nt = 0;
643 std::vector<int32_t> n_digits_nt{};
644 int32_t wordbreak_nt = 0;
645 int32_t uppercase_token_nt = 0;
646 std::vector<std::unique_ptr<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntryT>> annotation_nt{};
647 NonterminalsT() = default;
648 NonterminalsT(const NonterminalsT &o);
649 NonterminalsT(NonterminalsT&&) FLATBUFFERS_NOEXCEPT = default;
650 NonterminalsT &operator=(NonterminalsT o) FLATBUFFERS_NOEXCEPT;
651 };
652
653 struct Nonterminals FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
654 typedef NonterminalsT NativeTableType;
655 typedef NonterminalsBuilder Builder;
656 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
657 VT_START_NT = 4,
658 VT_END_NT = 6,
659 VT_TOKEN_NT = 8,
660 VT_DIGITS_NT = 10,
661 VT_N_DIGITS_NT = 12,
662 VT_WORDBREAK_NT = 14,
663 VT_UPPERCASE_TOKEN_NT = 16,
664 VT_ANNOTATION_NT = 18
665 };
start_ntFLATBUFFERS_FINAL_CLASS666 int32_t start_nt() const {
667 return GetField<int32_t>(VT_START_NT, 0);
668 }
end_ntFLATBUFFERS_FINAL_CLASS669 int32_t end_nt() const {
670 return GetField<int32_t>(VT_END_NT, 0);
671 }
token_ntFLATBUFFERS_FINAL_CLASS672 int32_t token_nt() const {
673 return GetField<int32_t>(VT_TOKEN_NT, 0);
674 }
digits_ntFLATBUFFERS_FINAL_CLASS675 int32_t digits_nt() const {
676 return GetField<int32_t>(VT_DIGITS_NT, 0);
677 }
n_digits_ntFLATBUFFERS_FINAL_CLASS678 const flatbuffers::Vector<int32_t> *n_digits_nt() const {
679 return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_N_DIGITS_NT);
680 }
wordbreak_ntFLATBUFFERS_FINAL_CLASS681 int32_t wordbreak_nt() const {
682 return GetField<int32_t>(VT_WORDBREAK_NT, 0);
683 }
uppercase_token_ntFLATBUFFERS_FINAL_CLASS684 int32_t uppercase_token_nt() const {
685 return GetField<int32_t>(VT_UPPERCASE_TOKEN_NT, 0);
686 }
annotation_ntFLATBUFFERS_FINAL_CLASS687 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntry>> *annotation_nt() const {
688 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntry>> *>(VT_ANNOTATION_NT);
689 }
VerifyFLATBUFFERS_FINAL_CLASS690 bool Verify(flatbuffers::Verifier &verifier) const {
691 return VerifyTableStart(verifier) &&
692 VerifyField<int32_t>(verifier, VT_START_NT, 4) &&
693 VerifyField<int32_t>(verifier, VT_END_NT, 4) &&
694 VerifyField<int32_t>(verifier, VT_TOKEN_NT, 4) &&
695 VerifyField<int32_t>(verifier, VT_DIGITS_NT, 4) &&
696 VerifyOffset(verifier, VT_N_DIGITS_NT) &&
697 verifier.VerifyVector(n_digits_nt()) &&
698 VerifyField<int32_t>(verifier, VT_WORDBREAK_NT, 4) &&
699 VerifyField<int32_t>(verifier, VT_UPPERCASE_TOKEN_NT, 4) &&
700 VerifyOffset(verifier, VT_ANNOTATION_NT) &&
701 verifier.VerifyVector(annotation_nt()) &&
702 verifier.VerifyVectorOfTables(annotation_nt()) &&
703 verifier.EndTable();
704 }
705 NonterminalsT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
706 void UnPackTo(NonterminalsT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
707 static flatbuffers::Offset<Nonterminals> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NonterminalsT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
708 };
709
710 struct NonterminalsBuilder {
711 typedef Nonterminals Table;
712 flatbuffers::FlatBufferBuilder &fbb_;
713 flatbuffers::uoffset_t start_;
add_start_ntNonterminalsBuilder714 void add_start_nt(int32_t start_nt) {
715 fbb_.AddElement<int32_t>(Nonterminals::VT_START_NT, start_nt, 0);
716 }
add_end_ntNonterminalsBuilder717 void add_end_nt(int32_t end_nt) {
718 fbb_.AddElement<int32_t>(Nonterminals::VT_END_NT, end_nt, 0);
719 }
add_token_ntNonterminalsBuilder720 void add_token_nt(int32_t token_nt) {
721 fbb_.AddElement<int32_t>(Nonterminals::VT_TOKEN_NT, token_nt, 0);
722 }
add_digits_ntNonterminalsBuilder723 void add_digits_nt(int32_t digits_nt) {
724 fbb_.AddElement<int32_t>(Nonterminals::VT_DIGITS_NT, digits_nt, 0);
725 }
add_n_digits_ntNonterminalsBuilder726 void add_n_digits_nt(flatbuffers::Offset<flatbuffers::Vector<int32_t>> n_digits_nt) {
727 fbb_.AddOffset(Nonterminals::VT_N_DIGITS_NT, n_digits_nt);
728 }
add_wordbreak_ntNonterminalsBuilder729 void add_wordbreak_nt(int32_t wordbreak_nt) {
730 fbb_.AddElement<int32_t>(Nonterminals::VT_WORDBREAK_NT, wordbreak_nt, 0);
731 }
add_uppercase_token_ntNonterminalsBuilder732 void add_uppercase_token_nt(int32_t uppercase_token_nt) {
733 fbb_.AddElement<int32_t>(Nonterminals::VT_UPPERCASE_TOKEN_NT, uppercase_token_nt, 0);
734 }
add_annotation_ntNonterminalsBuilder735 void add_annotation_nt(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntry>>> annotation_nt) {
736 fbb_.AddOffset(Nonterminals::VT_ANNOTATION_NT, annotation_nt);
737 }
NonterminalsBuilderNonterminalsBuilder738 explicit NonterminalsBuilder(flatbuffers::FlatBufferBuilder &_fbb)
739 : fbb_(_fbb) {
740 start_ = fbb_.StartTable();
741 }
FinishNonterminalsBuilder742 flatbuffers::Offset<Nonterminals> Finish() {
743 const auto end = fbb_.EndTable(start_);
744 auto o = flatbuffers::Offset<Nonterminals>(end);
745 return o;
746 }
747 };
748
749 inline flatbuffers::Offset<Nonterminals> CreateNonterminals(
750 flatbuffers::FlatBufferBuilder &_fbb,
751 int32_t start_nt = 0,
752 int32_t end_nt = 0,
753 int32_t token_nt = 0,
754 int32_t digits_nt = 0,
755 flatbuffers::Offset<flatbuffers::Vector<int32_t>> n_digits_nt = 0,
756 int32_t wordbreak_nt = 0,
757 int32_t uppercase_token_nt = 0,
758 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntry>>> annotation_nt = 0) {
759 NonterminalsBuilder builder_(_fbb);
760 builder_.add_annotation_nt(annotation_nt);
761 builder_.add_uppercase_token_nt(uppercase_token_nt);
762 builder_.add_wordbreak_nt(wordbreak_nt);
763 builder_.add_n_digits_nt(n_digits_nt);
764 builder_.add_digits_nt(digits_nt);
765 builder_.add_token_nt(token_nt);
766 builder_.add_end_nt(end_nt);
767 builder_.add_start_nt(start_nt);
768 return builder_.Finish();
769 }
770
771 inline flatbuffers::Offset<Nonterminals> CreateNonterminalsDirect(
772 flatbuffers::FlatBufferBuilder &_fbb,
773 int32_t start_nt = 0,
774 int32_t end_nt = 0,
775 int32_t token_nt = 0,
776 int32_t digits_nt = 0,
777 const std::vector<int32_t> *n_digits_nt = nullptr,
778 int32_t wordbreak_nt = 0,
779 int32_t uppercase_token_nt = 0,
780 std::vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntry>> *annotation_nt = nullptr) {
781 auto n_digits_nt__ = n_digits_nt ? _fbb.CreateVector<int32_t>(*n_digits_nt) : 0;
782 auto annotation_nt__ = annotation_nt ? _fbb.CreateVectorOfSortedTables<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntry>(annotation_nt) : 0;
783 return libtextclassifier3::grammar::RulesSet_::CreateNonterminals(
784 _fbb,
785 start_nt,
786 end_nt,
787 token_nt,
788 digits_nt,
789 n_digits_nt__,
790 wordbreak_nt,
791 uppercase_token_nt,
792 annotation_nt__);
793 }
794
795 flatbuffers::Offset<Nonterminals> CreateNonterminals(flatbuffers::FlatBufferBuilder &_fbb, const NonterminalsT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
796
797 namespace DebugInformation_ {
798
799 struct NonterminalNamesEntryT : public flatbuffers::NativeTable {
800 typedef NonterminalNamesEntry TableType;
801 int32_t key = 0;
802 std::string value{};
803 };
804
805 struct NonterminalNamesEntry FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
806 typedef NonterminalNamesEntryT NativeTableType;
807 typedef NonterminalNamesEntryBuilder Builder;
808 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
809 VT_KEY = 4,
810 VT_VALUE = 6
811 };
keyFLATBUFFERS_FINAL_CLASS812 int32_t key() const {
813 return GetField<int32_t>(VT_KEY, 0);
814 }
KeyCompareLessThanFLATBUFFERS_FINAL_CLASS815 bool KeyCompareLessThan(const NonterminalNamesEntry *o) const {
816 return key() < o->key();
817 }
KeyCompareWithValueFLATBUFFERS_FINAL_CLASS818 int KeyCompareWithValue(int32_t _key) const {
819 return static_cast<int>(key() > _key) - static_cast<int>(key() < _key);
820 }
valueFLATBUFFERS_FINAL_CLASS821 const flatbuffers::String *value() const {
822 return GetPointer<const flatbuffers::String *>(VT_VALUE);
823 }
VerifyFLATBUFFERS_FINAL_CLASS824 bool Verify(flatbuffers::Verifier &verifier) const {
825 return VerifyTableStart(verifier) &&
826 VerifyField<int32_t>(verifier, VT_KEY, 4) &&
827 VerifyOffset(verifier, VT_VALUE) &&
828 verifier.VerifyString(value()) &&
829 verifier.EndTable();
830 }
831 NonterminalNamesEntryT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
832 void UnPackTo(NonterminalNamesEntryT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
833 static flatbuffers::Offset<NonterminalNamesEntry> Pack(flatbuffers::FlatBufferBuilder &_fbb, const NonterminalNamesEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
834 };
835
836 struct NonterminalNamesEntryBuilder {
837 typedef NonterminalNamesEntry Table;
838 flatbuffers::FlatBufferBuilder &fbb_;
839 flatbuffers::uoffset_t start_;
add_keyNonterminalNamesEntryBuilder840 void add_key(int32_t key) {
841 fbb_.AddElement<int32_t>(NonterminalNamesEntry::VT_KEY, key, 0);
842 }
add_valueNonterminalNamesEntryBuilder843 void add_value(flatbuffers::Offset<flatbuffers::String> value) {
844 fbb_.AddOffset(NonterminalNamesEntry::VT_VALUE, value);
845 }
NonterminalNamesEntryBuilderNonterminalNamesEntryBuilder846 explicit NonterminalNamesEntryBuilder(flatbuffers::FlatBufferBuilder &_fbb)
847 : fbb_(_fbb) {
848 start_ = fbb_.StartTable();
849 }
FinishNonterminalNamesEntryBuilder850 flatbuffers::Offset<NonterminalNamesEntry> Finish() {
851 const auto end = fbb_.EndTable(start_);
852 auto o = flatbuffers::Offset<NonterminalNamesEntry>(end);
853 return o;
854 }
855 };
856
857 inline flatbuffers::Offset<NonterminalNamesEntry> CreateNonterminalNamesEntry(
858 flatbuffers::FlatBufferBuilder &_fbb,
859 int32_t key = 0,
860 flatbuffers::Offset<flatbuffers::String> value = 0) {
861 NonterminalNamesEntryBuilder builder_(_fbb);
862 builder_.add_value(value);
863 builder_.add_key(key);
864 return builder_.Finish();
865 }
866
867 inline flatbuffers::Offset<NonterminalNamesEntry> CreateNonterminalNamesEntryDirect(
868 flatbuffers::FlatBufferBuilder &_fbb,
869 int32_t key = 0,
870 const char *value = nullptr) {
871 auto value__ = value ? _fbb.CreateSharedString(value) : 0;
872 return libtextclassifier3::grammar::RulesSet_::DebugInformation_::CreateNonterminalNamesEntry(
873 _fbb,
874 key,
875 value__);
876 }
877
878 flatbuffers::Offset<NonterminalNamesEntry> CreateNonterminalNamesEntry(flatbuffers::FlatBufferBuilder &_fbb, const NonterminalNamesEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
879
880 } // namespace DebugInformation_
881
882 struct DebugInformationT : public flatbuffers::NativeTable {
883 typedef DebugInformation TableType;
884 std::vector<std::unique_ptr<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntryT>> nonterminal_names{};
885 DebugInformationT() = default;
886 DebugInformationT(const DebugInformationT &o);
887 DebugInformationT(DebugInformationT&&) FLATBUFFERS_NOEXCEPT = default;
888 DebugInformationT &operator=(DebugInformationT o) FLATBUFFERS_NOEXCEPT;
889 };
890
891 struct DebugInformation FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
892 typedef DebugInformationT NativeTableType;
893 typedef DebugInformationBuilder Builder;
894 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
895 VT_NONTERMINAL_NAMES = 4
896 };
nonterminal_namesFLATBUFFERS_FINAL_CLASS897 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntry>> *nonterminal_names() const {
898 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntry>> *>(VT_NONTERMINAL_NAMES);
899 }
VerifyFLATBUFFERS_FINAL_CLASS900 bool Verify(flatbuffers::Verifier &verifier) const {
901 return VerifyTableStart(verifier) &&
902 VerifyOffset(verifier, VT_NONTERMINAL_NAMES) &&
903 verifier.VerifyVector(nonterminal_names()) &&
904 verifier.VerifyVectorOfTables(nonterminal_names()) &&
905 verifier.EndTable();
906 }
907 DebugInformationT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
908 void UnPackTo(DebugInformationT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
909 static flatbuffers::Offset<DebugInformation> Pack(flatbuffers::FlatBufferBuilder &_fbb, const DebugInformationT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
910 };
911
912 struct DebugInformationBuilder {
913 typedef DebugInformation Table;
914 flatbuffers::FlatBufferBuilder &fbb_;
915 flatbuffers::uoffset_t start_;
add_nonterminal_namesDebugInformationBuilder916 void add_nonterminal_names(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntry>>> nonterminal_names) {
917 fbb_.AddOffset(DebugInformation::VT_NONTERMINAL_NAMES, nonterminal_names);
918 }
DebugInformationBuilderDebugInformationBuilder919 explicit DebugInformationBuilder(flatbuffers::FlatBufferBuilder &_fbb)
920 : fbb_(_fbb) {
921 start_ = fbb_.StartTable();
922 }
FinishDebugInformationBuilder923 flatbuffers::Offset<DebugInformation> Finish() {
924 const auto end = fbb_.EndTable(start_);
925 auto o = flatbuffers::Offset<DebugInformation>(end);
926 return o;
927 }
928 };
929
930 inline flatbuffers::Offset<DebugInformation> CreateDebugInformation(
931 flatbuffers::FlatBufferBuilder &_fbb,
932 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntry>>> nonterminal_names = 0) {
933 DebugInformationBuilder builder_(_fbb);
934 builder_.add_nonterminal_names(nonterminal_names);
935 return builder_.Finish();
936 }
937
938 inline flatbuffers::Offset<DebugInformation> CreateDebugInformationDirect(
939 flatbuffers::FlatBufferBuilder &_fbb,
940 std::vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntry>> *nonterminal_names = nullptr) {
941 auto nonterminal_names__ = nonterminal_names ? _fbb.CreateVectorOfSortedTables<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntry>(nonterminal_names) : 0;
942 return libtextclassifier3::grammar::RulesSet_::CreateDebugInformation(
943 _fbb,
944 nonterminal_names__);
945 }
946
947 flatbuffers::Offset<DebugInformation> CreateDebugInformation(flatbuffers::FlatBufferBuilder &_fbb, const DebugInformationT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
948
949 struct RegexAnnotatorT : public flatbuffers::NativeTable {
950 typedef RegexAnnotator TableType;
951 std::string pattern{};
952 std::unique_ptr<libtextclassifier3::CompressedBufferT> compressed_pattern{};
953 uint32_t nonterminal = 0;
954 RegexAnnotatorT() = default;
955 RegexAnnotatorT(const RegexAnnotatorT &o);
956 RegexAnnotatorT(RegexAnnotatorT&&) FLATBUFFERS_NOEXCEPT = default;
957 RegexAnnotatorT &operator=(RegexAnnotatorT o) FLATBUFFERS_NOEXCEPT;
958 };
959
960 struct RegexAnnotator FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
961 typedef RegexAnnotatorT NativeTableType;
962 typedef RegexAnnotatorBuilder Builder;
963 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
964 VT_PATTERN = 4,
965 VT_COMPRESSED_PATTERN = 6,
966 VT_NONTERMINAL = 8
967 };
patternFLATBUFFERS_FINAL_CLASS968 const flatbuffers::String *pattern() const {
969 return GetPointer<const flatbuffers::String *>(VT_PATTERN);
970 }
compressed_patternFLATBUFFERS_FINAL_CLASS971 const libtextclassifier3::CompressedBuffer *compressed_pattern() const {
972 return GetPointer<const libtextclassifier3::CompressedBuffer *>(VT_COMPRESSED_PATTERN);
973 }
nonterminalFLATBUFFERS_FINAL_CLASS974 uint32_t nonterminal() const {
975 return GetField<uint32_t>(VT_NONTERMINAL, 0);
976 }
VerifyFLATBUFFERS_FINAL_CLASS977 bool Verify(flatbuffers::Verifier &verifier) const {
978 return VerifyTableStart(verifier) &&
979 VerifyOffset(verifier, VT_PATTERN) &&
980 verifier.VerifyString(pattern()) &&
981 VerifyOffset(verifier, VT_COMPRESSED_PATTERN) &&
982 verifier.VerifyTable(compressed_pattern()) &&
983 VerifyField<uint32_t>(verifier, VT_NONTERMINAL, 4) &&
984 verifier.EndTable();
985 }
986 RegexAnnotatorT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
987 void UnPackTo(RegexAnnotatorT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
988 static flatbuffers::Offset<RegexAnnotator> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RegexAnnotatorT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
989 };
990
991 struct RegexAnnotatorBuilder {
992 typedef RegexAnnotator Table;
993 flatbuffers::FlatBufferBuilder &fbb_;
994 flatbuffers::uoffset_t start_;
add_patternRegexAnnotatorBuilder995 void add_pattern(flatbuffers::Offset<flatbuffers::String> pattern) {
996 fbb_.AddOffset(RegexAnnotator::VT_PATTERN, pattern);
997 }
add_compressed_patternRegexAnnotatorBuilder998 void add_compressed_pattern(flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_pattern) {
999 fbb_.AddOffset(RegexAnnotator::VT_COMPRESSED_PATTERN, compressed_pattern);
1000 }
add_nonterminalRegexAnnotatorBuilder1001 void add_nonterminal(uint32_t nonterminal) {
1002 fbb_.AddElement<uint32_t>(RegexAnnotator::VT_NONTERMINAL, nonterminal, 0);
1003 }
RegexAnnotatorBuilderRegexAnnotatorBuilder1004 explicit RegexAnnotatorBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1005 : fbb_(_fbb) {
1006 start_ = fbb_.StartTable();
1007 }
FinishRegexAnnotatorBuilder1008 flatbuffers::Offset<RegexAnnotator> Finish() {
1009 const auto end = fbb_.EndTable(start_);
1010 auto o = flatbuffers::Offset<RegexAnnotator>(end);
1011 return o;
1012 }
1013 };
1014
1015 inline flatbuffers::Offset<RegexAnnotator> CreateRegexAnnotator(
1016 flatbuffers::FlatBufferBuilder &_fbb,
1017 flatbuffers::Offset<flatbuffers::String> pattern = 0,
1018 flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_pattern = 0,
1019 uint32_t nonterminal = 0) {
1020 RegexAnnotatorBuilder builder_(_fbb);
1021 builder_.add_nonterminal(nonterminal);
1022 builder_.add_compressed_pattern(compressed_pattern);
1023 builder_.add_pattern(pattern);
1024 return builder_.Finish();
1025 }
1026
1027 inline flatbuffers::Offset<RegexAnnotator> CreateRegexAnnotatorDirect(
1028 flatbuffers::FlatBufferBuilder &_fbb,
1029 const char *pattern = nullptr,
1030 flatbuffers::Offset<libtextclassifier3::CompressedBuffer> compressed_pattern = 0,
1031 uint32_t nonterminal = 0) {
1032 auto pattern__ = pattern ? _fbb.CreateSharedString(pattern) : 0;
1033 return libtextclassifier3::grammar::RulesSet_::CreateRegexAnnotator(
1034 _fbb,
1035 pattern__,
1036 compressed_pattern,
1037 nonterminal);
1038 }
1039
1040 flatbuffers::Offset<RegexAnnotator> CreateRegexAnnotator(flatbuffers::FlatBufferBuilder &_fbb, const RegexAnnotatorT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1041
1042 } // namespace RulesSet_
1043
1044 struct RulesSetT : public flatbuffers::NativeTable {
1045 typedef RulesSet TableType;
1046 std::vector<std::unique_ptr<libtextclassifier3::grammar::RulesSet_::RulesT>> rules{};
1047 std::vector<std::unique_ptr<libtextclassifier3::grammar::RulesSet_::LhsSetT>> lhs_set{};
1048 std::vector<libtextclassifier3::grammar::RulesSet_::Lhs> lhs{};
1049 std::string terminals{};
1050 std::unique_ptr<libtextclassifier3::grammar::RulesSet_::NonterminalsT> nonterminals{};
1051 std::unique_ptr<libtextclassifier3::grammar::RulesSet_::DebugInformationT> debug_information{};
1052 std::vector<std::unique_ptr<libtextclassifier3::grammar::RulesSet_::RegexAnnotatorT>> regex_annotator{};
1053 bool lazy_regex_compilation = false;
1054 std::vector<std::unique_ptr<libtextclassifier3::grammar::SemanticExpressionT>> semantic_expression{};
1055 std::vector<uint8_t> semantic_values_schema{};
1056 RulesSetT() = default;
1057 RulesSetT(const RulesSetT &o);
1058 RulesSetT(RulesSetT&&) FLATBUFFERS_NOEXCEPT = default;
1059 RulesSetT &operator=(RulesSetT o) FLATBUFFERS_NOEXCEPT;
1060 };
1061
1062 struct RulesSet FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
1063 typedef RulesSetT NativeTableType;
1064 typedef RulesSetBuilder Builder;
1065 enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
1066 VT_RULES = 4,
1067 VT_LHS_SET = 6,
1068 VT_LHS = 8,
1069 VT_TERMINALS = 10,
1070 VT_NONTERMINALS = 12,
1071 VT_DEBUG_INFORMATION = 16,
1072 VT_REGEX_ANNOTATOR = 18,
1073 VT_LAZY_REGEX_COMPILATION = 20,
1074 VT_SEMANTIC_EXPRESSION = 22,
1075 VT_SEMANTIC_VALUES_SCHEMA = 24
1076 };
rulesFLATBUFFERS_FINAL_CLASS1077 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules>> *rules() const {
1078 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules>> *>(VT_RULES);
1079 }
lhs_setFLATBUFFERS_FINAL_CLASS1080 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::LhsSet>> *lhs_set() const {
1081 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::LhsSet>> *>(VT_LHS_SET);
1082 }
lhsFLATBUFFERS_FINAL_CLASS1083 const flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Lhs *> *lhs() const {
1084 return GetPointer<const flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Lhs *> *>(VT_LHS);
1085 }
terminalsFLATBUFFERS_FINAL_CLASS1086 const flatbuffers::String *terminals() const {
1087 return GetPointer<const flatbuffers::String *>(VT_TERMINALS);
1088 }
nonterminalsFLATBUFFERS_FINAL_CLASS1089 const libtextclassifier3::grammar::RulesSet_::Nonterminals *nonterminals() const {
1090 return GetPointer<const libtextclassifier3::grammar::RulesSet_::Nonterminals *>(VT_NONTERMINALS);
1091 }
debug_informationFLATBUFFERS_FINAL_CLASS1092 const libtextclassifier3::grammar::RulesSet_::DebugInformation *debug_information() const {
1093 return GetPointer<const libtextclassifier3::grammar::RulesSet_::DebugInformation *>(VT_DEBUG_INFORMATION);
1094 }
regex_annotatorFLATBUFFERS_FINAL_CLASS1095 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::RegexAnnotator>> *regex_annotator() const {
1096 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::RegexAnnotator>> *>(VT_REGEX_ANNOTATOR);
1097 }
lazy_regex_compilationFLATBUFFERS_FINAL_CLASS1098 bool lazy_regex_compilation() const {
1099 return GetField<uint8_t>(VT_LAZY_REGEX_COMPILATION, 0) != 0;
1100 }
semantic_expressionFLATBUFFERS_FINAL_CLASS1101 const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::SemanticExpression>> *semantic_expression() const {
1102 return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::SemanticExpression>> *>(VT_SEMANTIC_EXPRESSION);
1103 }
semantic_values_schemaFLATBUFFERS_FINAL_CLASS1104 const flatbuffers::Vector<uint8_t> *semantic_values_schema() const {
1105 return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_SEMANTIC_VALUES_SCHEMA);
1106 }
VerifyFLATBUFFERS_FINAL_CLASS1107 bool Verify(flatbuffers::Verifier &verifier) const {
1108 return VerifyTableStart(verifier) &&
1109 VerifyOffset(verifier, VT_RULES) &&
1110 verifier.VerifyVector(rules()) &&
1111 verifier.VerifyVectorOfTables(rules()) &&
1112 VerifyOffset(verifier, VT_LHS_SET) &&
1113 verifier.VerifyVector(lhs_set()) &&
1114 verifier.VerifyVectorOfTables(lhs_set()) &&
1115 VerifyOffset(verifier, VT_LHS) &&
1116 verifier.VerifyVector(lhs()) &&
1117 VerifyOffset(verifier, VT_TERMINALS) &&
1118 verifier.VerifyString(terminals()) &&
1119 VerifyOffset(verifier, VT_NONTERMINALS) &&
1120 verifier.VerifyTable(nonterminals()) &&
1121 VerifyOffset(verifier, VT_DEBUG_INFORMATION) &&
1122 verifier.VerifyTable(debug_information()) &&
1123 VerifyOffset(verifier, VT_REGEX_ANNOTATOR) &&
1124 verifier.VerifyVector(regex_annotator()) &&
1125 verifier.VerifyVectorOfTables(regex_annotator()) &&
1126 VerifyField<uint8_t>(verifier, VT_LAZY_REGEX_COMPILATION, 1) &&
1127 VerifyOffset(verifier, VT_SEMANTIC_EXPRESSION) &&
1128 verifier.VerifyVector(semantic_expression()) &&
1129 verifier.VerifyVectorOfTables(semantic_expression()) &&
1130 VerifyOffset(verifier, VT_SEMANTIC_VALUES_SCHEMA) &&
1131 verifier.VerifyVector(semantic_values_schema()) &&
1132 verifier.EndTable();
1133 }
1134 RulesSetT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1135 void UnPackTo(RulesSetT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
1136 static flatbuffers::Offset<RulesSet> Pack(flatbuffers::FlatBufferBuilder &_fbb, const RulesSetT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1137 };
1138
1139 struct RulesSetBuilder {
1140 typedef RulesSet Table;
1141 flatbuffers::FlatBufferBuilder &fbb_;
1142 flatbuffers::uoffset_t start_;
add_rulesRulesSetBuilder1143 void add_rules(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules>>> rules) {
1144 fbb_.AddOffset(RulesSet::VT_RULES, rules);
1145 }
add_lhs_setRulesSetBuilder1146 void add_lhs_set(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::LhsSet>>> lhs_set) {
1147 fbb_.AddOffset(RulesSet::VT_LHS_SET, lhs_set);
1148 }
add_lhsRulesSetBuilder1149 void add_lhs(flatbuffers::Offset<flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Lhs *>> lhs) {
1150 fbb_.AddOffset(RulesSet::VT_LHS, lhs);
1151 }
add_terminalsRulesSetBuilder1152 void add_terminals(flatbuffers::Offset<flatbuffers::String> terminals) {
1153 fbb_.AddOffset(RulesSet::VT_TERMINALS, terminals);
1154 }
add_nonterminalsRulesSetBuilder1155 void add_nonterminals(flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals> nonterminals) {
1156 fbb_.AddOffset(RulesSet::VT_NONTERMINALS, nonterminals);
1157 }
add_debug_informationRulesSetBuilder1158 void add_debug_information(flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation> debug_information) {
1159 fbb_.AddOffset(RulesSet::VT_DEBUG_INFORMATION, debug_information);
1160 }
add_regex_annotatorRulesSetBuilder1161 void add_regex_annotator(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::RegexAnnotator>>> regex_annotator) {
1162 fbb_.AddOffset(RulesSet::VT_REGEX_ANNOTATOR, regex_annotator);
1163 }
add_lazy_regex_compilationRulesSetBuilder1164 void add_lazy_regex_compilation(bool lazy_regex_compilation) {
1165 fbb_.AddElement<uint8_t>(RulesSet::VT_LAZY_REGEX_COMPILATION, static_cast<uint8_t>(lazy_regex_compilation), 0);
1166 }
add_semantic_expressionRulesSetBuilder1167 void add_semantic_expression(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::SemanticExpression>>> semantic_expression) {
1168 fbb_.AddOffset(RulesSet::VT_SEMANTIC_EXPRESSION, semantic_expression);
1169 }
add_semantic_values_schemaRulesSetBuilder1170 void add_semantic_values_schema(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> semantic_values_schema) {
1171 fbb_.AddOffset(RulesSet::VT_SEMANTIC_VALUES_SCHEMA, semantic_values_schema);
1172 }
RulesSetBuilderRulesSetBuilder1173 explicit RulesSetBuilder(flatbuffers::FlatBufferBuilder &_fbb)
1174 : fbb_(_fbb) {
1175 start_ = fbb_.StartTable();
1176 }
FinishRulesSetBuilder1177 flatbuffers::Offset<RulesSet> Finish() {
1178 const auto end = fbb_.EndTable(start_);
1179 auto o = flatbuffers::Offset<RulesSet>(end);
1180 return o;
1181 }
1182 };
1183
1184 inline flatbuffers::Offset<RulesSet> CreateRulesSet(
1185 flatbuffers::FlatBufferBuilder &_fbb,
1186 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules>>> rules = 0,
1187 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::LhsSet>>> lhs_set = 0,
1188 flatbuffers::Offset<flatbuffers::Vector<const libtextclassifier3::grammar::RulesSet_::Lhs *>> lhs = 0,
1189 flatbuffers::Offset<flatbuffers::String> terminals = 0,
1190 flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals> nonterminals = 0,
1191 flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation> debug_information = 0,
1192 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::RegexAnnotator>>> regex_annotator = 0,
1193 bool lazy_regex_compilation = false,
1194 flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<libtextclassifier3::grammar::SemanticExpression>>> semantic_expression = 0,
1195 flatbuffers::Offset<flatbuffers::Vector<uint8_t>> semantic_values_schema = 0) {
1196 RulesSetBuilder builder_(_fbb);
1197 builder_.add_semantic_values_schema(semantic_values_schema);
1198 builder_.add_semantic_expression(semantic_expression);
1199 builder_.add_regex_annotator(regex_annotator);
1200 builder_.add_debug_information(debug_information);
1201 builder_.add_nonterminals(nonterminals);
1202 builder_.add_terminals(terminals);
1203 builder_.add_lhs(lhs);
1204 builder_.add_lhs_set(lhs_set);
1205 builder_.add_rules(rules);
1206 builder_.add_lazy_regex_compilation(lazy_regex_compilation);
1207 return builder_.Finish();
1208 }
1209
1210 inline flatbuffers::Offset<RulesSet> CreateRulesSetDirect(
1211 flatbuffers::FlatBufferBuilder &_fbb,
1212 const std::vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules>> *rules = nullptr,
1213 const std::vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::LhsSet>> *lhs_set = nullptr,
1214 const std::vector<libtextclassifier3::grammar::RulesSet_::Lhs> *lhs = nullptr,
1215 const char *terminals = nullptr,
1216 flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals> nonterminals = 0,
1217 flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation> debug_information = 0,
1218 const std::vector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::RegexAnnotator>> *regex_annotator = nullptr,
1219 bool lazy_regex_compilation = false,
1220 const std::vector<flatbuffers::Offset<libtextclassifier3::grammar::SemanticExpression>> *semantic_expression = nullptr,
1221 const std::vector<uint8_t> *semantic_values_schema = nullptr) {
1222 auto rules__ = rules ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules>>(*rules) : 0;
1223 auto lhs_set__ = lhs_set ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::LhsSet>>(*lhs_set) : 0;
1224 auto lhs__ = lhs ? _fbb.CreateVectorOfStructs<libtextclassifier3::grammar::RulesSet_::Lhs>(*lhs) : 0;
1225 auto terminals__ = terminals ? _fbb.CreateSharedString(terminals) : 0;
1226 auto regex_annotator__ = regex_annotator ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::RegexAnnotator>>(*regex_annotator) : 0;
1227 auto semantic_expression__ = semantic_expression ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::SemanticExpression>>(*semantic_expression) : 0;
1228 auto semantic_values_schema__ = semantic_values_schema ? _fbb.CreateVector<uint8_t>(*semantic_values_schema) : 0;
1229 return libtextclassifier3::grammar::CreateRulesSet(
1230 _fbb,
1231 rules__,
1232 lhs_set__,
1233 lhs__,
1234 terminals__,
1235 nonterminals,
1236 debug_information,
1237 regex_annotator__,
1238 lazy_regex_compilation,
1239 semantic_expression__,
1240 semantic_values_schema__);
1241 }
1242
1243 flatbuffers::Offset<RulesSet> CreateRulesSet(flatbuffers::FlatBufferBuilder &_fbb, const RulesSetT *_o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
1244
1245 namespace RulesSet_ {
1246 namespace Rules_ {
1247
UnPack(const flatbuffers::resolver_function_t * _resolver)1248 inline TerminalRulesMapT *TerminalRulesMap::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1249 auto _o = std::unique_ptr<TerminalRulesMapT>(new TerminalRulesMapT());
1250 UnPackTo(_o.get(), _resolver);
1251 return _o.release();
1252 }
1253
UnPackTo(TerminalRulesMapT * _o,const flatbuffers::resolver_function_t * _resolver)1254 inline void TerminalRulesMap::UnPackTo(TerminalRulesMapT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1255 (void)_o;
1256 (void)_resolver;
1257 { auto _e = terminal_offsets(); if (_e) { _o->terminal_offsets.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->terminal_offsets[_i] = _e->Get(_i); } } }
1258 { auto _e = lhs_set_index(); if (_e) { _o->lhs_set_index.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->lhs_set_index[_i] = _e->Get(_i); } } }
1259 { auto _e = min_terminal_length(); _o->min_terminal_length = _e; }
1260 { auto _e = max_terminal_length(); _o->max_terminal_length = _e; }
1261 }
1262
Pack(flatbuffers::FlatBufferBuilder & _fbb,const TerminalRulesMapT * _o,const flatbuffers::rehasher_function_t * _rehasher)1263 inline flatbuffers::Offset<TerminalRulesMap> TerminalRulesMap::Pack(flatbuffers::FlatBufferBuilder &_fbb, const TerminalRulesMapT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1264 return CreateTerminalRulesMap(_fbb, _o, _rehasher);
1265 }
1266
CreateTerminalRulesMap(flatbuffers::FlatBufferBuilder & _fbb,const TerminalRulesMapT * _o,const flatbuffers::rehasher_function_t * _rehasher)1267 inline flatbuffers::Offset<TerminalRulesMap> CreateTerminalRulesMap(flatbuffers::FlatBufferBuilder &_fbb, const TerminalRulesMapT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1268 (void)_rehasher;
1269 (void)_o;
1270 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const TerminalRulesMapT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1271 auto _terminal_offsets = _o->terminal_offsets.size() ? _fbb.CreateVector(_o->terminal_offsets) : 0;
1272 auto _lhs_set_index = _o->lhs_set_index.size() ? _fbb.CreateVector(_o->lhs_set_index) : 0;
1273 auto _min_terminal_length = _o->min_terminal_length;
1274 auto _max_terminal_length = _o->max_terminal_length;
1275 return libtextclassifier3::grammar::RulesSet_::Rules_::CreateTerminalRulesMap(
1276 _fbb,
1277 _terminal_offsets,
1278 _lhs_set_index,
1279 _min_terminal_length,
1280 _max_terminal_length);
1281 }
1282
UnPack(const flatbuffers::resolver_function_t * _resolver)1283 inline BinaryRuleTableBucketT *BinaryRuleTableBucket::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1284 auto _o = std::unique_ptr<BinaryRuleTableBucketT>(new BinaryRuleTableBucketT());
1285 UnPackTo(_o.get(), _resolver);
1286 return _o.release();
1287 }
1288
UnPackTo(BinaryRuleTableBucketT * _o,const flatbuffers::resolver_function_t * _resolver)1289 inline void BinaryRuleTableBucket::UnPackTo(BinaryRuleTableBucketT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1290 (void)_o;
1291 (void)_resolver;
1292 { auto _e = rules(); if (_e) { _o->rules.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->rules[_i] = *_e->Get(_i); } } }
1293 }
1294
Pack(flatbuffers::FlatBufferBuilder & _fbb,const BinaryRuleTableBucketT * _o,const flatbuffers::rehasher_function_t * _rehasher)1295 inline flatbuffers::Offset<BinaryRuleTableBucket> BinaryRuleTableBucket::Pack(flatbuffers::FlatBufferBuilder &_fbb, const BinaryRuleTableBucketT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1296 return CreateBinaryRuleTableBucket(_fbb, _o, _rehasher);
1297 }
1298
CreateBinaryRuleTableBucket(flatbuffers::FlatBufferBuilder & _fbb,const BinaryRuleTableBucketT * _o,const flatbuffers::rehasher_function_t * _rehasher)1299 inline flatbuffers::Offset<BinaryRuleTableBucket> CreateBinaryRuleTableBucket(flatbuffers::FlatBufferBuilder &_fbb, const BinaryRuleTableBucketT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1300 (void)_rehasher;
1301 (void)_o;
1302 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const BinaryRuleTableBucketT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1303 auto _rules = _o->rules.size() ? _fbb.CreateVectorOfStructs(_o->rules) : 0;
1304 return libtextclassifier3::grammar::RulesSet_::Rules_::CreateBinaryRuleTableBucket(
1305 _fbb,
1306 _rules);
1307 }
1308
1309 } // namespace Rules_
1310
RulesT(const RulesT & o)1311 inline RulesT::RulesT(const RulesT &o)
1312 : terminal_rules((o.terminal_rules) ? new libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMapT(*o.terminal_rules) : nullptr),
1313 lowercase_terminal_rules((o.lowercase_terminal_rules) ? new libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMapT(*o.lowercase_terminal_rules) : nullptr),
1314 unary_rules(o.unary_rules) {
1315 locale.reserve(o.locale.size());
1316 for (const auto &locale_ : o.locale) { locale.emplace_back((locale_) ? new libtextclassifier3::LanguageTagT(*locale_) : nullptr); }
1317 binary_rules.reserve(o.binary_rules.size());
1318 for (const auto &binary_rules_ : o.binary_rules) { binary_rules.emplace_back((binary_rules_) ? new libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucketT(*binary_rules_) : nullptr); }
1319 }
1320
1321 inline RulesT &RulesT::operator=(RulesT o) FLATBUFFERS_NOEXCEPT {
1322 std::swap(locale, o.locale);
1323 std::swap(terminal_rules, o.terminal_rules);
1324 std::swap(lowercase_terminal_rules, o.lowercase_terminal_rules);
1325 std::swap(unary_rules, o.unary_rules);
1326 std::swap(binary_rules, o.binary_rules);
1327 return *this;
1328 }
1329
UnPack(const flatbuffers::resolver_function_t * _resolver)1330 inline RulesT *Rules::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1331 auto _o = std::unique_ptr<RulesT>(new RulesT());
1332 UnPackTo(_o.get(), _resolver);
1333 return _o.release();
1334 }
1335
UnPackTo(RulesT * _o,const flatbuffers::resolver_function_t * _resolver)1336 inline void Rules::UnPackTo(RulesT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1337 (void)_o;
1338 (void)_resolver;
1339 { auto _e = locale(); if (_e) { _o->locale.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->locale[_i] = std::unique_ptr<libtextclassifier3::LanguageTagT>(_e->Get(_i)->UnPack(_resolver)); } } }
1340 { auto _e = terminal_rules(); if (_e) _o->terminal_rules = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMapT>(_e->UnPack(_resolver)); }
1341 { auto _e = lowercase_terminal_rules(); if (_e) _o->lowercase_terminal_rules = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::Rules_::TerminalRulesMapT>(_e->UnPack(_resolver)); }
1342 { auto _e = unary_rules(); if (_e) { _o->unary_rules.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->unary_rules[_i] = *_e->Get(_i); } } }
1343 { auto _e = binary_rules(); if (_e) { _o->binary_rules.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->binary_rules[_i] = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucketT>(_e->Get(_i)->UnPack(_resolver)); } } }
1344 }
1345
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RulesT * _o,const flatbuffers::rehasher_function_t * _rehasher)1346 inline flatbuffers::Offset<Rules> Rules::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RulesT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1347 return CreateRules(_fbb, _o, _rehasher);
1348 }
1349
CreateRules(flatbuffers::FlatBufferBuilder & _fbb,const RulesT * _o,const flatbuffers::rehasher_function_t * _rehasher)1350 inline flatbuffers::Offset<Rules> CreateRules(flatbuffers::FlatBufferBuilder &_fbb, const RulesT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1351 (void)_rehasher;
1352 (void)_o;
1353 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RulesT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1354 auto _locale = _o->locale.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::LanguageTag>> (_o->locale.size(), [](size_t i, _VectorArgs *__va) { return CreateLanguageTag(*__va->__fbb, __va->__o->locale[i].get(), __va->__rehasher); }, &_va ) : 0;
1355 auto _terminal_rules = _o->terminal_rules ? CreateTerminalRulesMap(_fbb, _o->terminal_rules.get(), _rehasher) : 0;
1356 auto _lowercase_terminal_rules = _o->lowercase_terminal_rules ? CreateTerminalRulesMap(_fbb, _o->lowercase_terminal_rules.get(), _rehasher) : 0;
1357 auto _unary_rules = _o->unary_rules.size() ? _fbb.CreateVectorOfStructs(_o->unary_rules) : 0;
1358 auto _binary_rules = _o->binary_rules.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules_::BinaryRuleTableBucket>> (_o->binary_rules.size(), [](size_t i, _VectorArgs *__va) { return CreateBinaryRuleTableBucket(*__va->__fbb, __va->__o->binary_rules[i].get(), __va->__rehasher); }, &_va ) : 0;
1359 return libtextclassifier3::grammar::RulesSet_::CreateRules(
1360 _fbb,
1361 _locale,
1362 _terminal_rules,
1363 _lowercase_terminal_rules,
1364 _unary_rules,
1365 _binary_rules);
1366 }
1367
UnPack(const flatbuffers::resolver_function_t * _resolver)1368 inline LhsSetT *LhsSet::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1369 auto _o = std::unique_ptr<LhsSetT>(new LhsSetT());
1370 UnPackTo(_o.get(), _resolver);
1371 return _o.release();
1372 }
1373
UnPackTo(LhsSetT * _o,const flatbuffers::resolver_function_t * _resolver)1374 inline void LhsSet::UnPackTo(LhsSetT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1375 (void)_o;
1376 (void)_resolver;
1377 { auto _e = lhs(); if (_e) { _o->lhs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->lhs[_i] = _e->Get(_i); } } }
1378 }
1379
Pack(flatbuffers::FlatBufferBuilder & _fbb,const LhsSetT * _o,const flatbuffers::rehasher_function_t * _rehasher)1380 inline flatbuffers::Offset<LhsSet> LhsSet::Pack(flatbuffers::FlatBufferBuilder &_fbb, const LhsSetT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1381 return CreateLhsSet(_fbb, _o, _rehasher);
1382 }
1383
CreateLhsSet(flatbuffers::FlatBufferBuilder & _fbb,const LhsSetT * _o,const flatbuffers::rehasher_function_t * _rehasher)1384 inline flatbuffers::Offset<LhsSet> CreateLhsSet(flatbuffers::FlatBufferBuilder &_fbb, const LhsSetT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1385 (void)_rehasher;
1386 (void)_o;
1387 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const LhsSetT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1388 auto _lhs = _o->lhs.size() ? _fbb.CreateVector(_o->lhs) : 0;
1389 return libtextclassifier3::grammar::RulesSet_::CreateLhsSet(
1390 _fbb,
1391 _lhs);
1392 }
1393
1394 namespace Nonterminals_ {
1395
UnPack(const flatbuffers::resolver_function_t * _resolver)1396 inline AnnotationNtEntryT *AnnotationNtEntry::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1397 auto _o = std::unique_ptr<AnnotationNtEntryT>(new AnnotationNtEntryT());
1398 UnPackTo(_o.get(), _resolver);
1399 return _o.release();
1400 }
1401
UnPackTo(AnnotationNtEntryT * _o,const flatbuffers::resolver_function_t * _resolver)1402 inline void AnnotationNtEntry::UnPackTo(AnnotationNtEntryT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1403 (void)_o;
1404 (void)_resolver;
1405 { auto _e = key(); if (_e) _o->key = _e->str(); }
1406 { auto _e = value(); _o->value = _e; }
1407 }
1408
Pack(flatbuffers::FlatBufferBuilder & _fbb,const AnnotationNtEntryT * _o,const flatbuffers::rehasher_function_t * _rehasher)1409 inline flatbuffers::Offset<AnnotationNtEntry> AnnotationNtEntry::Pack(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationNtEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1410 return CreateAnnotationNtEntry(_fbb, _o, _rehasher);
1411 }
1412
CreateAnnotationNtEntry(flatbuffers::FlatBufferBuilder & _fbb,const AnnotationNtEntryT * _o,const flatbuffers::rehasher_function_t * _rehasher)1413 inline flatbuffers::Offset<AnnotationNtEntry> CreateAnnotationNtEntry(flatbuffers::FlatBufferBuilder &_fbb, const AnnotationNtEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1414 (void)_rehasher;
1415 (void)_o;
1416 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const AnnotationNtEntryT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1417 auto _key = _fbb.CreateSharedString(_o->key);
1418 auto _value = _o->value;
1419 return libtextclassifier3::grammar::RulesSet_::Nonterminals_::CreateAnnotationNtEntry(
1420 _fbb,
1421 _key,
1422 _value);
1423 }
1424
1425 } // namespace Nonterminals_
1426
NonterminalsT(const NonterminalsT & o)1427 inline NonterminalsT::NonterminalsT(const NonterminalsT &o)
1428 : start_nt(o.start_nt),
1429 end_nt(o.end_nt),
1430 token_nt(o.token_nt),
1431 digits_nt(o.digits_nt),
1432 n_digits_nt(o.n_digits_nt),
1433 wordbreak_nt(o.wordbreak_nt),
1434 uppercase_token_nt(o.uppercase_token_nt) {
1435 annotation_nt.reserve(o.annotation_nt.size());
1436 for (const auto &annotation_nt_ : o.annotation_nt) { annotation_nt.emplace_back((annotation_nt_) ? new libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntryT(*annotation_nt_) : nullptr); }
1437 }
1438
1439 inline NonterminalsT &NonterminalsT::operator=(NonterminalsT o) FLATBUFFERS_NOEXCEPT {
1440 std::swap(start_nt, o.start_nt);
1441 std::swap(end_nt, o.end_nt);
1442 std::swap(token_nt, o.token_nt);
1443 std::swap(digits_nt, o.digits_nt);
1444 std::swap(n_digits_nt, o.n_digits_nt);
1445 std::swap(wordbreak_nt, o.wordbreak_nt);
1446 std::swap(uppercase_token_nt, o.uppercase_token_nt);
1447 std::swap(annotation_nt, o.annotation_nt);
1448 return *this;
1449 }
1450
UnPack(const flatbuffers::resolver_function_t * _resolver)1451 inline NonterminalsT *Nonterminals::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1452 auto _o = std::unique_ptr<NonterminalsT>(new NonterminalsT());
1453 UnPackTo(_o.get(), _resolver);
1454 return _o.release();
1455 }
1456
UnPackTo(NonterminalsT * _o,const flatbuffers::resolver_function_t * _resolver)1457 inline void Nonterminals::UnPackTo(NonterminalsT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1458 (void)_o;
1459 (void)_resolver;
1460 { auto _e = start_nt(); _o->start_nt = _e; }
1461 { auto _e = end_nt(); _o->end_nt = _e; }
1462 { auto _e = token_nt(); _o->token_nt = _e; }
1463 { auto _e = digits_nt(); _o->digits_nt = _e; }
1464 { auto _e = n_digits_nt(); if (_e) { _o->n_digits_nt.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->n_digits_nt[_i] = _e->Get(_i); } } }
1465 { auto _e = wordbreak_nt(); _o->wordbreak_nt = _e; }
1466 { auto _e = uppercase_token_nt(); _o->uppercase_token_nt = _e; }
1467 { auto _e = annotation_nt(); if (_e) { _o->annotation_nt.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->annotation_nt[_i] = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntryT>(_e->Get(_i)->UnPack(_resolver)); } } }
1468 }
1469
Pack(flatbuffers::FlatBufferBuilder & _fbb,const NonterminalsT * _o,const flatbuffers::rehasher_function_t * _rehasher)1470 inline flatbuffers::Offset<Nonterminals> Nonterminals::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NonterminalsT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1471 return CreateNonterminals(_fbb, _o, _rehasher);
1472 }
1473
CreateNonterminals(flatbuffers::FlatBufferBuilder & _fbb,const NonterminalsT * _o,const flatbuffers::rehasher_function_t * _rehasher)1474 inline flatbuffers::Offset<Nonterminals> CreateNonterminals(flatbuffers::FlatBufferBuilder &_fbb, const NonterminalsT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1475 (void)_rehasher;
1476 (void)_o;
1477 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NonterminalsT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1478 auto _start_nt = _o->start_nt;
1479 auto _end_nt = _o->end_nt;
1480 auto _token_nt = _o->token_nt;
1481 auto _digits_nt = _o->digits_nt;
1482 auto _n_digits_nt = _o->n_digits_nt.size() ? _fbb.CreateVector(_o->n_digits_nt) : 0;
1483 auto _wordbreak_nt = _o->wordbreak_nt;
1484 auto _uppercase_token_nt = _o->uppercase_token_nt;
1485 auto _annotation_nt = _o->annotation_nt.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Nonterminals_::AnnotationNtEntry>> (_o->annotation_nt.size(), [](size_t i, _VectorArgs *__va) { return CreateAnnotationNtEntry(*__va->__fbb, __va->__o->annotation_nt[i].get(), __va->__rehasher); }, &_va ) : 0;
1486 return libtextclassifier3::grammar::RulesSet_::CreateNonterminals(
1487 _fbb,
1488 _start_nt,
1489 _end_nt,
1490 _token_nt,
1491 _digits_nt,
1492 _n_digits_nt,
1493 _wordbreak_nt,
1494 _uppercase_token_nt,
1495 _annotation_nt);
1496 }
1497
1498 namespace DebugInformation_ {
1499
UnPack(const flatbuffers::resolver_function_t * _resolver)1500 inline NonterminalNamesEntryT *NonterminalNamesEntry::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1501 auto _o = std::unique_ptr<NonterminalNamesEntryT>(new NonterminalNamesEntryT());
1502 UnPackTo(_o.get(), _resolver);
1503 return _o.release();
1504 }
1505
UnPackTo(NonterminalNamesEntryT * _o,const flatbuffers::resolver_function_t * _resolver)1506 inline void NonterminalNamesEntry::UnPackTo(NonterminalNamesEntryT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1507 (void)_o;
1508 (void)_resolver;
1509 { auto _e = key(); _o->key = _e; }
1510 { auto _e = value(); if (_e) _o->value = _e->str(); }
1511 }
1512
Pack(flatbuffers::FlatBufferBuilder & _fbb,const NonterminalNamesEntryT * _o,const flatbuffers::rehasher_function_t * _rehasher)1513 inline flatbuffers::Offset<NonterminalNamesEntry> NonterminalNamesEntry::Pack(flatbuffers::FlatBufferBuilder &_fbb, const NonterminalNamesEntryT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1514 return CreateNonterminalNamesEntry(_fbb, _o, _rehasher);
1515 }
1516
CreateNonterminalNamesEntry(flatbuffers::FlatBufferBuilder & _fbb,const NonterminalNamesEntryT * _o,const flatbuffers::rehasher_function_t * _rehasher)1517 inline flatbuffers::Offset<NonterminalNamesEntry> CreateNonterminalNamesEntry(flatbuffers::FlatBufferBuilder &_fbb, const NonterminalNamesEntryT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1518 (void)_rehasher;
1519 (void)_o;
1520 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const NonterminalNamesEntryT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1521 auto _key = _o->key;
1522 auto _value = _o->value.empty() ? 0 : _fbb.CreateSharedString(_o->value);
1523 return libtextclassifier3::grammar::RulesSet_::DebugInformation_::CreateNonterminalNamesEntry(
1524 _fbb,
1525 _key,
1526 _value);
1527 }
1528
1529 } // namespace DebugInformation_
1530
DebugInformationT(const DebugInformationT & o)1531 inline DebugInformationT::DebugInformationT(const DebugInformationT &o) {
1532 nonterminal_names.reserve(o.nonterminal_names.size());
1533 for (const auto &nonterminal_names_ : o.nonterminal_names) { nonterminal_names.emplace_back((nonterminal_names_) ? new libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntryT(*nonterminal_names_) : nullptr); }
1534 }
1535
1536 inline DebugInformationT &DebugInformationT::operator=(DebugInformationT o) FLATBUFFERS_NOEXCEPT {
1537 std::swap(nonterminal_names, o.nonterminal_names);
1538 return *this;
1539 }
1540
UnPack(const flatbuffers::resolver_function_t * _resolver)1541 inline DebugInformationT *DebugInformation::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1542 auto _o = std::unique_ptr<DebugInformationT>(new DebugInformationT());
1543 UnPackTo(_o.get(), _resolver);
1544 return _o.release();
1545 }
1546
UnPackTo(DebugInformationT * _o,const flatbuffers::resolver_function_t * _resolver)1547 inline void DebugInformation::UnPackTo(DebugInformationT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1548 (void)_o;
1549 (void)_resolver;
1550 { auto _e = nonterminal_names(); if (_e) { _o->nonterminal_names.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->nonterminal_names[_i] = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntryT>(_e->Get(_i)->UnPack(_resolver)); } } }
1551 }
1552
Pack(flatbuffers::FlatBufferBuilder & _fbb,const DebugInformationT * _o,const flatbuffers::rehasher_function_t * _rehasher)1553 inline flatbuffers::Offset<DebugInformation> DebugInformation::Pack(flatbuffers::FlatBufferBuilder &_fbb, const DebugInformationT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1554 return CreateDebugInformation(_fbb, _o, _rehasher);
1555 }
1556
CreateDebugInformation(flatbuffers::FlatBufferBuilder & _fbb,const DebugInformationT * _o,const flatbuffers::rehasher_function_t * _rehasher)1557 inline flatbuffers::Offset<DebugInformation> CreateDebugInformation(flatbuffers::FlatBufferBuilder &_fbb, const DebugInformationT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1558 (void)_rehasher;
1559 (void)_o;
1560 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const DebugInformationT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1561 auto _nonterminal_names = _o->nonterminal_names.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::DebugInformation_::NonterminalNamesEntry>> (_o->nonterminal_names.size(), [](size_t i, _VectorArgs *__va) { return CreateNonterminalNamesEntry(*__va->__fbb, __va->__o->nonterminal_names[i].get(), __va->__rehasher); }, &_va ) : 0;
1562 return libtextclassifier3::grammar::RulesSet_::CreateDebugInformation(
1563 _fbb,
1564 _nonterminal_names);
1565 }
1566
RegexAnnotatorT(const RegexAnnotatorT & o)1567 inline RegexAnnotatorT::RegexAnnotatorT(const RegexAnnotatorT &o)
1568 : pattern(o.pattern),
1569 compressed_pattern((o.compressed_pattern) ? new libtextclassifier3::CompressedBufferT(*o.compressed_pattern) : nullptr),
1570 nonterminal(o.nonterminal) {
1571 }
1572
1573 inline RegexAnnotatorT &RegexAnnotatorT::operator=(RegexAnnotatorT o) FLATBUFFERS_NOEXCEPT {
1574 std::swap(pattern, o.pattern);
1575 std::swap(compressed_pattern, o.compressed_pattern);
1576 std::swap(nonterminal, o.nonterminal);
1577 return *this;
1578 }
1579
UnPack(const flatbuffers::resolver_function_t * _resolver)1580 inline RegexAnnotatorT *RegexAnnotator::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1581 auto _o = std::unique_ptr<RegexAnnotatorT>(new RegexAnnotatorT());
1582 UnPackTo(_o.get(), _resolver);
1583 return _o.release();
1584 }
1585
UnPackTo(RegexAnnotatorT * _o,const flatbuffers::resolver_function_t * _resolver)1586 inline void RegexAnnotator::UnPackTo(RegexAnnotatorT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1587 (void)_o;
1588 (void)_resolver;
1589 { auto _e = pattern(); if (_e) _o->pattern = _e->str(); }
1590 { auto _e = compressed_pattern(); if (_e) _o->compressed_pattern = std::unique_ptr<libtextclassifier3::CompressedBufferT>(_e->UnPack(_resolver)); }
1591 { auto _e = nonterminal(); _o->nonterminal = _e; }
1592 }
1593
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RegexAnnotatorT * _o,const flatbuffers::rehasher_function_t * _rehasher)1594 inline flatbuffers::Offset<RegexAnnotator> RegexAnnotator::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RegexAnnotatorT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1595 return CreateRegexAnnotator(_fbb, _o, _rehasher);
1596 }
1597
CreateRegexAnnotator(flatbuffers::FlatBufferBuilder & _fbb,const RegexAnnotatorT * _o,const flatbuffers::rehasher_function_t * _rehasher)1598 inline flatbuffers::Offset<RegexAnnotator> CreateRegexAnnotator(flatbuffers::FlatBufferBuilder &_fbb, const RegexAnnotatorT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1599 (void)_rehasher;
1600 (void)_o;
1601 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RegexAnnotatorT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1602 auto _pattern = _o->pattern.empty() ? 0 : _fbb.CreateSharedString(_o->pattern);
1603 auto _compressed_pattern = _o->compressed_pattern ? CreateCompressedBuffer(_fbb, _o->compressed_pattern.get(), _rehasher) : 0;
1604 auto _nonterminal = _o->nonterminal;
1605 return libtextclassifier3::grammar::RulesSet_::CreateRegexAnnotator(
1606 _fbb,
1607 _pattern,
1608 _compressed_pattern,
1609 _nonterminal);
1610 }
1611
1612 } // namespace RulesSet_
1613
RulesSetT(const RulesSetT & o)1614 inline RulesSetT::RulesSetT(const RulesSetT &o)
1615 : lhs(o.lhs),
1616 terminals(o.terminals),
1617 nonterminals((o.nonterminals) ? new libtextclassifier3::grammar::RulesSet_::NonterminalsT(*o.nonterminals) : nullptr),
1618 debug_information((o.debug_information) ? new libtextclassifier3::grammar::RulesSet_::DebugInformationT(*o.debug_information) : nullptr),
1619 lazy_regex_compilation(o.lazy_regex_compilation),
1620 semantic_values_schema(o.semantic_values_schema) {
1621 rules.reserve(o.rules.size());
1622 for (const auto &rules_ : o.rules) { rules.emplace_back((rules_) ? new libtextclassifier3::grammar::RulesSet_::RulesT(*rules_) : nullptr); }
1623 lhs_set.reserve(o.lhs_set.size());
1624 for (const auto &lhs_set_ : o.lhs_set) { lhs_set.emplace_back((lhs_set_) ? new libtextclassifier3::grammar::RulesSet_::LhsSetT(*lhs_set_) : nullptr); }
1625 regex_annotator.reserve(o.regex_annotator.size());
1626 for (const auto ®ex_annotator_ : o.regex_annotator) { regex_annotator.emplace_back((regex_annotator_) ? new libtextclassifier3::grammar::RulesSet_::RegexAnnotatorT(*regex_annotator_) : nullptr); }
1627 semantic_expression.reserve(o.semantic_expression.size());
1628 for (const auto &semantic_expression_ : o.semantic_expression) { semantic_expression.emplace_back((semantic_expression_) ? new libtextclassifier3::grammar::SemanticExpressionT(*semantic_expression_) : nullptr); }
1629 }
1630
1631 inline RulesSetT &RulesSetT::operator=(RulesSetT o) FLATBUFFERS_NOEXCEPT {
1632 std::swap(rules, o.rules);
1633 std::swap(lhs_set, o.lhs_set);
1634 std::swap(lhs, o.lhs);
1635 std::swap(terminals, o.terminals);
1636 std::swap(nonterminals, o.nonterminals);
1637 std::swap(debug_information, o.debug_information);
1638 std::swap(regex_annotator, o.regex_annotator);
1639 std::swap(lazy_regex_compilation, o.lazy_regex_compilation);
1640 std::swap(semantic_expression, o.semantic_expression);
1641 std::swap(semantic_values_schema, o.semantic_values_schema);
1642 return *this;
1643 }
1644
UnPack(const flatbuffers::resolver_function_t * _resolver)1645 inline RulesSetT *RulesSet::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
1646 auto _o = std::unique_ptr<RulesSetT>(new RulesSetT());
1647 UnPackTo(_o.get(), _resolver);
1648 return _o.release();
1649 }
1650
UnPackTo(RulesSetT * _o,const flatbuffers::resolver_function_t * _resolver)1651 inline void RulesSet::UnPackTo(RulesSetT *_o, const flatbuffers::resolver_function_t *_resolver) const {
1652 (void)_o;
1653 (void)_resolver;
1654 { auto _e = rules(); if (_e) { _o->rules.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->rules[_i] = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::RulesT>(_e->Get(_i)->UnPack(_resolver)); } } }
1655 { auto _e = lhs_set(); if (_e) { _o->lhs_set.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->lhs_set[_i] = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::LhsSetT>(_e->Get(_i)->UnPack(_resolver)); } } }
1656 { auto _e = lhs(); if (_e) { _o->lhs.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->lhs[_i] = *_e->Get(_i); } } }
1657 { auto _e = terminals(); if (_e) _o->terminals = _e->str(); }
1658 { auto _e = nonterminals(); if (_e) _o->nonterminals = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::NonterminalsT>(_e->UnPack(_resolver)); }
1659 { auto _e = debug_information(); if (_e) _o->debug_information = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::DebugInformationT>(_e->UnPack(_resolver)); }
1660 { auto _e = regex_annotator(); if (_e) { _o->regex_annotator.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->regex_annotator[_i] = std::unique_ptr<libtextclassifier3::grammar::RulesSet_::RegexAnnotatorT>(_e->Get(_i)->UnPack(_resolver)); } } }
1661 { auto _e = lazy_regex_compilation(); _o->lazy_regex_compilation = _e; }
1662 { auto _e = semantic_expression(); if (_e) { _o->semantic_expression.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->semantic_expression[_i] = std::unique_ptr<libtextclassifier3::grammar::SemanticExpressionT>(_e->Get(_i)->UnPack(_resolver)); } } }
1663 { auto _e = semantic_values_schema(); if (_e) { _o->semantic_values_schema.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->semantic_values_schema.begin()); } }
1664 }
1665
Pack(flatbuffers::FlatBufferBuilder & _fbb,const RulesSetT * _o,const flatbuffers::rehasher_function_t * _rehasher)1666 inline flatbuffers::Offset<RulesSet> RulesSet::Pack(flatbuffers::FlatBufferBuilder &_fbb, const RulesSetT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
1667 return CreateRulesSet(_fbb, _o, _rehasher);
1668 }
1669
CreateRulesSet(flatbuffers::FlatBufferBuilder & _fbb,const RulesSetT * _o,const flatbuffers::rehasher_function_t * _rehasher)1670 inline flatbuffers::Offset<RulesSet> CreateRulesSet(flatbuffers::FlatBufferBuilder &_fbb, const RulesSetT *_o, const flatbuffers::rehasher_function_t *_rehasher) {
1671 (void)_rehasher;
1672 (void)_o;
1673 struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const RulesSetT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va;
1674 auto _rules = _o->rules.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::Rules>> (_o->rules.size(), [](size_t i, _VectorArgs *__va) { return CreateRules(*__va->__fbb, __va->__o->rules[i].get(), __va->__rehasher); }, &_va ) : 0;
1675 auto _lhs_set = _o->lhs_set.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::LhsSet>> (_o->lhs_set.size(), [](size_t i, _VectorArgs *__va) { return CreateLhsSet(*__va->__fbb, __va->__o->lhs_set[i].get(), __va->__rehasher); }, &_va ) : 0;
1676 auto _lhs = _o->lhs.size() ? _fbb.CreateVectorOfStructs(_o->lhs) : 0;
1677 auto _terminals = _o->terminals.empty() ? 0 : _fbb.CreateSharedString(_o->terminals);
1678 auto _nonterminals = _o->nonterminals ? CreateNonterminals(_fbb, _o->nonterminals.get(), _rehasher) : 0;
1679 auto _debug_information = _o->debug_information ? CreateDebugInformation(_fbb, _o->debug_information.get(), _rehasher) : 0;
1680 auto _regex_annotator = _o->regex_annotator.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::RulesSet_::RegexAnnotator>> (_o->regex_annotator.size(), [](size_t i, _VectorArgs *__va) { return CreateRegexAnnotator(*__va->__fbb, __va->__o->regex_annotator[i].get(), __va->__rehasher); }, &_va ) : 0;
1681 auto _lazy_regex_compilation = _o->lazy_regex_compilation;
1682 auto _semantic_expression = _o->semantic_expression.size() ? _fbb.CreateVector<flatbuffers::Offset<libtextclassifier3::grammar::SemanticExpression>> (_o->semantic_expression.size(), [](size_t i, _VectorArgs *__va) { return CreateSemanticExpression(*__va->__fbb, __va->__o->semantic_expression[i].get(), __va->__rehasher); }, &_va ) : 0;
1683 auto _semantic_values_schema = _o->semantic_values_schema.size() ? _fbb.CreateVector(_o->semantic_values_schema) : 0;
1684 return libtextclassifier3::grammar::CreateRulesSet(
1685 _fbb,
1686 _rules,
1687 _lhs_set,
1688 _lhs,
1689 _terminals,
1690 _nonterminals,
1691 _debug_information,
1692 _regex_annotator,
1693 _lazy_regex_compilation,
1694 _semantic_expression,
1695 _semantic_values_schema);
1696 }
1697
1698 } // namespace grammar
1699 } // namespace libtextclassifier3
1700
1701 #endif // FLATBUFFERS_GENERATED_RULES_LIBTEXTCLASSIFIER3_GRAMMAR_H_
1702