| /* |
| * Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved. |
| * Copyright (C) 2004-2007 Red Hat, Inc. All rights reserved. |
| * |
| * This file is part of the device-mapper userspace tools. |
| * |
| * This copyrighted material is made available to anyone wishing to use, |
| * modify, copy, or redistribute it subject to the terms and conditions |
| * of the GNU Lesser General Public License v.2.1. |
| * |
| * You should have received a copy of the GNU Lesser General Public License |
| * along with this program; if not, write to the Free Software Foundation, |
| * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| */ |
| |
| #ifndef _DM_PARSE_REGEX_H |
| #define _DM_PARSE_REGEX_H |
| |
| enum { |
| CAT, |
| STAR, |
| PLUS, |
| OR, |
| QUEST, |
| CHARSET |
| }; |
| |
| /* |
| * We're never going to be running the regex on non-printable |
| * chars, so we can use a couple of these chars to represent the |
| * start and end of a string. |
| */ |
| #define HAT_CHAR 0x2 |
| #define DOLLAR_CHAR 0x3 |
| |
| #define TARGET_TRANS '\0' |
| |
| struct rx_node { |
| int type; |
| dm_bitset_t charset; |
| struct rx_node *left, *right; |
| |
| /* used to build the dfa for the toker */ |
| unsigned charset_index; |
| int nullable, final; |
| dm_bitset_t firstpos; |
| dm_bitset_t lastpos; |
| dm_bitset_t followpos; |
| }; |
| |
| struct rx_node *rx_parse_str(struct dm_pool *mem, const char *str); |
| struct rx_node *rx_parse_tok(struct dm_pool *mem, |
| const char *begin, const char *end); |
| |
| #endif |