source: icGREP/icgrep-devel/icgrep/UCD/resolve_properties.h @ 5232

Last change on this file since 5232 was 5206, checked in by xwa163, 3 years ago
  1. Extend Regex Syntax, include: (a) RL2.6 of UTS#18, support regex in property value. e.g. \p{script=/.*hir.*/} (b) Support syntax of property expression when parsing boundary. e.g. \b{greek} (c) Extend property expression in non capture group. e.g. (?\p{upper}:\p{greek}\p{script=hira})
  2. Add related test cases
File size: 850 bytes
Line 
1#ifndef RESOLVE_PROPERTIES_H
2#define RESOLVE_PROPERTIES_H
3
4#include <string>
5#include <UCD/unicode_set.h>
6
7namespace re {
8    class RE;
9    class Name;   
10}
11
12namespace UCD {
13
14class UnicodePropertyExpressionError : public std::exception {
15public:
16    UnicodePropertyExpressionError(const std::string && msg) noexcept : _msg(msg) {}
17    const char* what() const noexcept { return _msg.c_str();}
18private:
19    inline UnicodePropertyExpressionError() noexcept {}
20    const std::string _msg;
21};
22
23void generateGraphemeClusterBoundaryRule(re::Name * const &property);
24bool resolvePropertyDefinition(re::Name * const property);
25std::string resolvePropertyFunction(re::Name * const property);
26UCD::UnicodeSet resolveUnicodeSet(re::Name * const name);
27const std::string& getPropertyValueGrepString(const std::string & prop);
28
29}
30
31#endif // RESOLVE_PROPERTIES_H
Note: See TracBrowser for help on using the repository browser.