unicode.hpp
Go to the documentation of this file.
1 // Copyright (C) 2020-2023 Jonathan Müller and lexy contributors
2 // SPDX-License-Identifier: BSL-1.0
3 
4 #ifndef LEXY_DSL_UNICODE_HPP_INCLUDED
5 #define LEXY_DSL_UNICODE_HPP_INCLUDED
6 
7 #include <lexy/code_point.hpp>
8 #include <lexy/dsl/ascii.hpp>
9 #include <lexy/dsl/base.hpp>
10 #include <lexy/dsl/char_class.hpp>
11 
12 namespace lexyd::unicode
13 {
14 struct _nctrl : char_class_base<_nctrl>
15 {
17  {
18  return "code-point.non-control";
19  }
20 
22  {
24  }
25 
26  static constexpr bool char_class_match_cp(char32_t cp)
27  {
28  return !lexy::code_point(cp).is_control();
29  }
30 
31  template <typename Encoding>
33  {
34  return ascii::_print::template char_class_match_swar<Encoding>(c);
35  }
36 };
37 
38 struct _control : char_class_base<_control>
39 {
41  {
42  return "code-point.control";
43  }
44 
46  {
48  }
49 
50  static constexpr bool char_class_match_cp(char32_t cp)
51  {
52  return lexy::code_point(cp).is_control();
53  }
54 
55  template <typename Encoding>
57  {
58  return ascii::_control::template char_class_match_swar<Encoding>(c);
59  }
60 };
61 inline constexpr auto control = _control{};
62 
63 constexpr auto operator-(_control)
64 {
65  return _nctrl{};
66 }
67 constexpr auto operator-(_nctrl)
68 {
69  return _control{};
70 }
71 
72 //=== whitespace ===//
73 struct _blank : char_class_base<_blank>
74 {
76  {
77  return "code-point.blank";
78  }
79 
81  {
83  }
84 
86  {
87  // tab already handled as part of ASCII
88  return lexy::code_point(cp).general_category() == lexy::code_point::space_separator;
89  }
90 
91  template <typename Encoding>
93  {
94  return ascii::_blank::template char_class_match_swar<Encoding>(c);
95  }
96 };
97 inline constexpr auto blank = _blank{};
98 
99 struct _newline : char_class_base<_newline>
100 {
102  {
103  return "code-point.newline";
104  }
105 
107  {
109  }
110 
111  static constexpr bool char_class_match_cp(char32_t cp)
112  {
113  // NEL, PARAGRAPH SEPARATOR, LINE SEPARATOR
114  return cp == 0x85 || cp == 0x2029 || cp == 0x2028;
115  }
116 
117  template <typename Encoding>
119  {
120  return ascii::_newline::template char_class_match_swar<Encoding>(c);
121  }
122 };
123 inline constexpr auto newline = _newline{};
124 
125 struct _other_space : char_class_base<_other_space>
126 {
128  {
129  return "code-point.other-space";
130  }
131 
133  {
135  }
136 
137  // The same as in ASCII, so no match function needed.
138 
139  template <typename Encoding>
141  {
142  return ascii::_other_space::template char_class_match_swar<Encoding>(c);
143  }
144 };
145 inline constexpr auto other_space = _other_space{};
146 
147 struct _space : char_class_base<_space>
148 {
150  {
151  return "code-point.whitespace";
152  }
153 
155  {
157  }
158 
160  {
161  return lexy::_detail::code_point_has_properties<LEXY_UNICODE_PROPERTY(whitespace)>(cp);
162  }
163 
164  template <typename Encoding>
166  {
167  return ascii::_space::template char_class_match_swar<Encoding>(c);
168  }
169 };
170 inline constexpr auto space = _space{};
171 
172 //=== alpha ===//
173 struct _lower : char_class_base<_lower>
174 {
176  {
177  return "code-point.lowercase";
178  }
179 
181  {
183  }
184 
186  {
187  return lexy::_detail::code_point_has_properties<LEXY_UNICODE_PROPERTY(lowercase)>(cp);
188  }
189 
190  template <typename Encoding>
192  {
193  return ascii::_lower::template char_class_match_swar<Encoding>(c);
194  }
195 };
196 inline constexpr auto lower = _lower{};
197 
198 struct _upper : char_class_base<_upper>
199 {
201  {
202  return "code-point.uppercase";
203  }
204 
206  {
208  }
209 
211  {
212  return lexy::_detail::code_point_has_properties<LEXY_UNICODE_PROPERTY(uppercase)>(cp);
213  }
214 
215  template <typename Encoding>
217  {
218  return ascii::_upper::template char_class_match_swar<Encoding>(c);
219  }
220 };
221 inline constexpr auto upper = _upper{};
222 
223 struct _alpha : char_class_base<_alpha>
224 {
226  {
227  return "code-point.alphabetic";
228  }
229 
231  {
233  }
234 
236  {
237  return lexy::_detail::code_point_has_properties<LEXY_UNICODE_PROPERTY(alphabetic)>(cp);
238  }
239 
240  template <typename Encoding>
242  {
243  return ascii::_alpha::template char_class_match_swar<Encoding>(c);
244  }
245 };
246 inline constexpr auto alpha = _alpha{};
247 
248 //=== digit ===//
249 struct _digit : char_class_base<_digit>
250 {
252  {
253  return "code-point.decimal-number";
254  }
255 
257  {
259  }
260 
262  {
263  return lexy::code_point(cp).general_category() == lexy::code_point::decimal_number;
264  }
265 
266  template <typename Encoding>
268  {
269  return ascii::_digit::template char_class_match_swar<Encoding>(c);
270  }
271 };
272 inline constexpr auto digit = _digit{};
273 
274 struct _alnum : char_class_base<_alnum>
275 {
277  {
278  return "code-point.alphabetic-decimal";
279  }
280 
282  {
284  }
285 
287  {
288  return lexy::_detail::code_point_has_properties<LEXY_UNICODE_PROPERTY(alphabetic)>(cp)
289  || lexy::code_point(cp).general_category() == lexy::code_point::decimal_number;
290  }
291 
292  template <typename Encoding>
294  {
295  return ascii::_alnum::template char_class_match_swar<Encoding>(c);
296  }
297 };
298 inline constexpr auto alnum = _alnum{};
299 inline constexpr auto alpha_digit = alnum;
300 
301 struct _word : char_class_base<_word>
302 {
304  {
305  return "code-point.word";
306  }
307 
309  {
311  }
312 
314  {
315  auto cat = lexy::code_point(cp).general_category();
316  if (cat == lexy::code_point::mark || cat == lexy::code_point::connector_punctuation
317  || cat == lexy::code_point::decimal_number)
318  return true;
319 
322  }
323 
324  template <typename Encoding>
326  {
327  return ascii::_word::template char_class_match_swar<Encoding>(c);
328  }
329 };
330 inline constexpr auto word = _word{};
331 
332 //=== categories ===//
333 struct _graph : char_class_base<_graph>
334 {
336  {
337  return "code-point.graph";
338  }
339 
341  {
343  }
344 
346  {
347  auto cp = lexy::code_point(_cp);
348 
349  // Everything that isn't control, surrogate, unassigned, or space.
350  return !cp.is_control() && !cp.is_surrogate()
351  && cp.general_category() != lexy::code_point::unassigned
352  && !_space::char_class_match_cp(cp.value());
353  }
354 
355  template <typename Encoding>
357  {
358  return ascii::_graph::template char_class_match_swar<Encoding>(c);
359  }
360 };
361 inline constexpr auto graph = _graph{};
362 
363 struct _print : char_class_base<_print>
364 {
366  {
367  return "code-point.print";
368  }
369 
371  {
373  }
374 
376  {
377  // blank or graph without control.
380  }
381 
382  template <typename Encoding>
384  {
385  return ascii::_print::template char_class_match_swar<Encoding>(c);
386  }
387 };
388 inline constexpr auto print = _print{};
389 
390 struct _char : char_class_base<_char>
391 {
393  {
394  return "code-point.character";
395  }
396 
398  {
400  }
401 
403  {
404  return lexy::code_point(cp).general_category() != lexy::code_point::unassigned;
405  }
406 
407  template <typename Encoding>
409  {
410  return ascii::_char::template char_class_match_swar<Encoding>(c);
411  }
412 };
413 inline constexpr auto character = _char{};
414 } // namespace lexyd::unicode
415 
416 namespace lexyd::unicode
417 {
418 struct _xid_start : char_class_base<_xid_start>
419 {
421  {
422  return "code-point.XID-start";
423  }
424 
426  {
428  }
429 
431  {
432  return lexy::_detail::code_point_has_properties<LEXY_UNICODE_PROPERTY(xid_start)>(cp);
433  }
434 
435  template <typename Encoding>
437  {
438  return ascii::_alpha::template char_class_match_swar<Encoding>(c);
439  }
440 };
441 inline constexpr auto xid_start = _xid_start{};
442 
443 struct _xid_start_underscore : char_class_base<_xid_start_underscore>
444 {
446  {
447  return "code-point.XID-start-underscore";
448  }
449 
451  {
453  }
454 
456  {
457  // underscore handled as part of ASCII.
458  return lexy::_detail::code_point_has_properties<LEXY_UNICODE_PROPERTY(xid_start)>(cp);
459  }
460 
461  template <typename Encoding>
463  {
464  return ascii::_alphau::template char_class_match_swar<Encoding>(c);
465  }
466 };
467 inline constexpr auto xid_start_underscore = _xid_start_underscore{};
468 
469 struct _xid_continue : char_class_base<_xid_continue>
470 {
472  {
473  return "code-point.XID-continue";
474  }
475 
477  {
479  }
480 
482  {
483  // underscore handled as part of ASCII.
484  return lexy::_detail::code_point_has_properties<LEXY_UNICODE_PROPERTY(xid_continue)>(cp);
485  }
486 
487  template <typename Encoding>
489  {
490  return ascii::_word::template char_class_match_swar<Encoding>(c);
491  }
492 };
493 inline constexpr auto xid_continue = _xid_continue{};
494 } // namespace lexyd::unicode
495 
496 #endif // LEXY_DSL_UNICODE_HPP_INCLUDED
497 
lexyd::unicode::_control::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:40
lexyd::unicode::_print::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:375
lexyd::unicode::alpha
constexpr auto alpha
Definition: unicode.hpp:246
LEXY_CONSTEVAL
#define LEXY_CONSTEVAL
Definition: config.hpp:90
lexyd::unicode::_upper::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:210
lexyd::ascii::_control::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:23
lexyd::ascii::_char::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:453
lexyd::unicode::upper
constexpr auto upper
Definition: unicode.hpp:221
lexyd::unicode::_char::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:402
lexyd::unicode::_alnum::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:293
lexyd::unicode::_upper::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:205
lexyd::unicode::_blank
Definition: unicode.hpp:73
lexyd::unicode::_word::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:308
lexyd::ascii::_other_space::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:86
lexyd::unicode::_print::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:365
lexyd::unicode::_control::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:56
lexyd::ascii::_print::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:412
lexyd::unicode::xid_start
constexpr auto xid_start
Definition: unicode.hpp:441
lexyd::unicode::_other_space::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:140
lexyd::unicode::_other_space
Definition: unicode.hpp:125
lexyd::unicode::_xid_start::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:430
lexyd::unicode::graph
constexpr auto graph
Definition: unicode.hpp:361
lexyd::unicode::_digit::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:261
lexyd::unicode::digit
constexpr auto digit
Definition: unicode.hpp:272
lexyd::unicode::operator-
constexpr auto operator-(_control)
Definition: unicode.hpp:63
lexyd::unicode::xid_start_underscore
constexpr auto xid_start_underscore
Definition: unicode.hpp:467
lexyd::unicode::_xid_start_underscore::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:462
lexyd::unicode::_nctrl::char_class_match_cp
static constexpr bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:26
lexyd::unicode::_xid_start::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:436
lexyd::unicode::_xid_start_underscore
Definition: unicode.hpp:443
lexyd::unicode::_print::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:383
lexyd::unicode::_char::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:397
lexyd::unicode::_alnum::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:276
lexyd::unicode
Definition: case_folding.hpp:267
lexyd::unicode::_newline::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:118
lexy::_detail::swar_int
std::uintmax_t swar_int
Definition: swar.hpp:20
lexyd::unicode::word
constexpr auto word
Definition: unicode.hpp:330
lexyd::unicode::_lower::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:175
lexyd::unicode::_char
Definition: unicode.hpp:390
lexyd::code_point
constexpr auto code_point
Matches a single unicode code point in the current unicode encoding.
Definition: dsl/code_point.hpp:200
lexyd::unicode::_xid_start::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:420
lexyd::ascii::_alphau::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:210
lexyd::unicode::other_space
constexpr auto other_space
Definition: unicode.hpp:145
lexyd::unicode::_lower
Definition: unicode.hpp:173
LEXY_UNICODE_CONSTEXPR
#define LEXY_UNICODE_CONSTEXPR
Definition: code_point.hpp:18
ascii.hpp
lexyd::unicode::_alpha::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:225
lexyd::unicode::control
constexpr auto control
Definition: unicode.hpp:61
lexyd::unicode::_space
Definition: unicode.hpp:147
lexyd::unicode::_alnum::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:286
lexyd::unicode::_xid_start_underscore::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:450
lexyd::unicode::_blank::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:85
lexyd::unicode::_digit::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:251
char_class.hpp
lexyd::unicode::_word::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:313
lexyd::unicode::_graph::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t _cp)
Definition: unicode.hpp:345
lexyd::unicode::_xid_start_underscore::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:445
lexyd::unicode::_char::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:392
lexyd::unicode::_xid_start
Definition: unicode.hpp:418
lexyd::unicode::_lower::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:191
lexyd::unicode::_upper::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:200
lexyd::unicode::_nctrl
Definition: unicode.hpp:14
lexyd::unicode::_graph::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:340
lexy::_detail::cat
typename cat_< A, B >::type cat
Definition: nttp_string.hpp:105
lexyd::unicode::_xid_continue::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:481
lexyd::unicode::_blank::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:92
lexyd::unicode::_lower::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:180
lexyd::unicode::_nctrl::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:16
LEXY_UNICODE_PROPERTY
#define LEXY_UNICODE_PROPERTY(Name)
Definition: code_point.hpp:305
lexyd::unicode::_nctrl::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:32
lexyd::unicode::_newline::char_class_match_cp
static constexpr bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:111
lexyd::unicode::_print::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:370
lexyd::unicode::_newline::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:106
lexyd::unicode::_space::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:159
lexyd::ascii::_word::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:292
lexyd::ascii::_blank::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:52
lexyd::unicode::_space::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:149
lexyd::unicode::_alpha::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:241
lexyd::unicode::_space::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:154
lexyd::unicode::_upper
Definition: unicode.hpp:198
lexyd::unicode::_print
Definition: unicode.hpp:363
lexyd::unicode::space
constexpr auto space
Definition: unicode.hpp:170
lexy::_unicode_db::alphabetic
@ alphabetic
Definition: unicode_database.hpp:71
lexyd::unicode::_blank::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:75
lexyd::ascii::_digit::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:236
lexyd::unicode::_word::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:303
lexyd::unicode::_char::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:408
lexyd::char_class_base
Definition: char_class.hpp:170
lexyd::unicode::_control::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:45
lexyd::ascii::_alnum::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:267
lexyd::unicode::blank
constexpr auto blank
Definition: unicode.hpp:97
lexyd::unicode::_newline
Definition: unicode.hpp:99
lexyd::unicode::_digit
Definition: unicode.hpp:249
lexyd::ascii::_space::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:103
lexyd::_cp
Definition: dsl/code_point.hpp:14
base.hpp
lexyd::unicode::_word
Definition: unicode.hpp:301
lexyd::unicode::_control
Definition: unicode.hpp:38
lexyd::unicode::newline
constexpr auto newline
Definition: unicode.hpp:123
lexyd::unicode::_alpha::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:230
lexyd::ascii::_alpha::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:186
lexyd::unicode::_digit::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:256
lexyd::unicode::_alpha::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:235
lexyd::ascii::_graph::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:367
lexyd::unicode::_alnum::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:281
lexyd::unicode::_word::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:325
lexyd::unicode::_upper::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:216
lexyd::ascii::_upper::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:154
lexyd::unicode::_newline::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:101
lexy::_detail::code_point_has_properties
bool code_point_has_properties(char32_t cp)
lexyd::unicode::_alpha
Definition: unicode.hpp:223
lexyd::unicode::_nctrl::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:21
lexyd::unicode::_other_space::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:132
lexyd::unicode::_lower::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:185
lexyd::unicode::_xid_continue::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:488
lexyd::unicode::_graph::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:356
code_point.hpp
lexy::_unicode_db::join_control
@ join_control
Definition: unicode_database.hpp:70
lexyd::unicode::_xid_continue::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:476
lexyd::unicode::_xid_start::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:425
lexyd::unicode::_digit::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:267
lexyd::unicode::_graph
Definition: unicode.hpp:333
lexyd::unicode::_control::char_class_match_cp
static constexpr bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:50
lexyd::unicode::alpha_digit
constexpr auto alpha_digit
Definition: unicode.hpp:299
lexyd::unicode::lower
constexpr auto lower
Definition: unicode.hpp:196
lexyd::unicode::_xid_continue
Definition: unicode.hpp:469
lexyd::ascii::_newline::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:69
lexyd::unicode::_blank::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: unicode.hpp:80
lexyd::unicode::_graph::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:335
lexyd::unicode::_space::char_class_match_swar
static constexpr auto char_class_match_swar(lexy::_detail::swar_int c)
Definition: unicode.hpp:165
lexyd::unicode::_other_space::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:127
lexyd::unicode::alnum
constexpr auto alnum
Definition: unicode.hpp:298
lexyd::ascii::_lower::char_class_ascii
static LEXY_CONSTEVAL auto char_class_ascii()
Definition: ascii.hpp:122
lexyd::unicode::_xid_continue::char_class_name
static LEXY_CONSTEVAL auto char_class_name()
Definition: unicode.hpp:471
lexyd::unicode::_xid_start_underscore::char_class_match_cp
static LEXY_UNICODE_CONSTEXPR bool char_class_match_cp(char32_t cp)
Definition: unicode.hpp:455
lexyd::unicode::xid_continue
constexpr auto xid_continue
Definition: unicode.hpp:493
lexyd::unicode::print
constexpr auto print
Definition: unicode.hpp:388
lexyd::unicode::character
constexpr auto character
Definition: unicode.hpp:413
lexyd::unicode::_alnum
Definition: unicode.hpp:274


behaviortree_cpp_v4
Author(s): Davide Faconti
autogenerated on Fri Jun 28 2024 02:20:08