category_info = { 2: CategoryInfo('NAME', -2), 3: CategoryInfo('BLANK', -3, 'skip'), 4: CategoryInfo('EQ', -4), 5: CategoryInfo('ALT_DELIM', -5) } NAME = 2 BLANK = 3 EQ = 4 ALT_DELIM = 5 a = re_utils.char_range('a', 'z') b = re_utils.char_range('A', 'Z') c = re_utils.char_member('_') markers, accept = re_utils.merge_members([a, b, c]) first = re_utils.char_set(markers, accept, NAME) digits = re_utils.char_range('0', '9') markers, accept = re_utils.merge_members([a, b, c, digits]) following = re_utils.char_set(markers, accept, NAME) following = re_utils.k_closure(following) name = re_utils.cat([first, following]) blank = re_utils.alt([ re_utils.atom(' ', BLANK), re_utils.atom('\n', BLANK), re_utils.atom('\t', BLANK) ]) eq = re_utils.atom('=', EQ)
def rule_remaining(data_list, repo): data_list[1] = re_utils.char_member(data_list[1]) if data_list[0] is None: return data_list[1] else: return re_utils.merge_members(data_list)
def rule_pos_lang_range(data_list, repo): if data_list[1] is None: return data_list[0] else: return re_utils.merge_members(data_list)
def rule_remaining_char_range(data_list, repo): if data_list[0] is None: return data_list[1] else: return re_utils.merge_members(data_list)
def rule_pos_lang(data_list, repo): data_list[0] = re_utils.char_member(data_list[0]) if data_list[1] is None: return data_list[0] else: return re_utils.merge_members(data_list)