fr_dict_gctx_t *dict_gctx = NULL; //!< Top level structure containing global dictionary state.
-/** Characters allowed in dictionary names
+#define DICT_ATTR_ALLOWED_CHARS \
+ ['-'] = true, ['/'] = true, ['_'] = true, \
+ ['0'] = true, ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true, \
+ ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, ['9'] = true, \
+ ['A'] = true, ['B'] = true, ['C'] = true, ['D'] = true, ['E'] = true, \
+ ['F'] = true, ['G'] = true, ['H'] = true, ['I'] = true, ['J'] = true, \
+ ['K'] = true, ['L'] = true, ['M'] = true, ['N'] = true, ['O'] = true, \
+ ['P'] = true, ['Q'] = true, ['R'] = true, ['S'] = true, ['T'] = true, \
+ ['U'] = true, ['V'] = true, ['W'] = true, ['X'] = true, ['Y'] = true, \
+ ['Z'] = true, \
+ ['a'] = true, ['b'] = true, ['c'] = true, ['d'] = true, ['e'] = true, \
+ ['f'] = true, ['g'] = true, ['h'] = true, ['i'] = true, ['j'] = true, \
+ ['k'] = true, ['l'] = true, ['m'] = true, ['n'] = true, ['o'] = true, \
+ ['p'] = true, ['q'] = true, ['r'] = true, ['s'] = true, ['t'] = true, \
+ ['u'] = true, ['v'] = true, ['w'] = true, ['x'] = true, ['y'] = true, \
+ ['z'] = true
+
+/** Characters allowed in a single dictionary attribute name
*
*/
bool const fr_dict_attr_allowed_chars[UINT8_MAX + 1] = {
- ['-'] = true, ['/'] = true, ['_'] = true,
- ['0'] = true, ['1'] = true, ['2'] = true, ['3'] = true, ['4'] = true,
- ['5'] = true, ['6'] = true, ['7'] = true, ['8'] = true, ['9'] = true,
- ['A'] = true, ['B'] = true, ['C'] = true, ['D'] = true, ['E'] = true,
- ['F'] = true, ['G'] = true, ['H'] = true, ['I'] = true, ['J'] = true,
- ['K'] = true, ['L'] = true, ['M'] = true, ['N'] = true, ['O'] = true,
- ['P'] = true, ['Q'] = true, ['R'] = true, ['S'] = true, ['T'] = true,
- ['U'] = true, ['V'] = true, ['W'] = true, ['X'] = true, ['Y'] = true,
- ['Z'] = true,
- ['a'] = true, ['b'] = true, ['c'] = true, ['d'] = true, ['e'] = true,
- ['f'] = true, ['g'] = true, ['h'] = true, ['i'] = true, ['j'] = true,
- ['k'] = true, ['l'] = true, ['m'] = true, ['n'] = true, ['o'] = true,
- ['p'] = true, ['q'] = true, ['r'] = true, ['s'] = true, ['t'] = true,
- ['u'] = true, ['v'] = true, ['w'] = true, ['x'] = true, ['y'] = true,
- ['z'] = true
+ DICT_ATTR_ALLOWED_CHARS
+};
+
+/** Characters allowed in a nested dictionary attribute name
+ *
+ */
+bool const fr_dict_attr_nested_allowed_chars[UINT8_MAX + 1] = {
+ DICT_ATTR_ALLOWED_CHARS,
+ [ '.' ] = true
};
/** Characters allowed in enumeration value names