1# -*- coding: latin-1 -*-
2
3""" Constants for sets (of characters)
4
5    Copyright (c) 2000, Marc-Andre Lemburg; mailto:mal@lemburg.com
6    Copyright (c) 2000-2003, eGenix.com Software GmbH; mailto:info@egenix.com
7    See the documentation for further information on copyrights,
8    or contact the author. All Rights Reserved.
9"""
10import string
11from simpleparse.stt.TextTools.mxTextTools import CharSet
12
13# Simple character strings
14a2z = 'abcdefghijklmnopqrstuvwxyz'
15A2Z = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
16umlaute = '����'
17Umlaute = '���'
18alpha = A2Z + a2z
19german_alpha = A2Z + a2z + umlaute + Umlaute
20number = '0123456789'
21alphanumeric = alpha + number
22white = ' \t\v'
23newline = '\r\n'
24formfeed = '\f'
25whitespace = white + newline + formfeed
26any = '\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037 !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377'
27
28# Precompiled as sets, e.g. a2z_set = set(a2z)
29a2z_set = '\000\000\000\000\000\000\000\000\000\000\000\000\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'
30A2Z_set = '\000\000\000\000\000\000\000\000\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'
31alpha_set = '\000\000\000\000\000\000\000\000\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'
32german_alpha_set = '\000\000\000\000\000\000\000\000\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\020\000@\220\020\000@\020'
33number_set = '\000\000\000\000\000\000\377\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'
34alphanumeric_set = '\000\000\000\000\000\000\377\003\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'
35white_set = '\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'
36newline_set = '\000$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'
37whitespace_set = '\000&\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'
38nonwhitespace_set = '\377\301\377\377\376\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377'
39any_set = '\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377\377'
40
41# Compiled as CharSet instances
42a2z_charset = CharSet('a-z')
43A2Z_charset = CharSet('A-Z')
44umlaute_charset = CharSet('����')
45Umlaute_charset = CharSet('���')
46alpha_charset = CharSet(A2Z + a2z)
47german_alpha_charset = CharSet(A2Z + a2z + umlaute + Umlaute)
48number_charset = CharSet('0-9')
49alphanumeric_charset = CharSet(alpha + number)
50white_charset = CharSet(' \t\v')
51newline_charset = CharSet('\r\n')
52formfeed_charset = CharSet('\f')
53whitespace_charset = CharSet(white + newline + formfeed)
54nonwhitespace_charset = CharSet('^' + white + newline + formfeed)
55any_charset = CharSet('\000-\377')
56
57# Clean up
58del CharSet, string