RPA Toolkit
Work on documentation.
[rpatk.git] / rex / doc / rexgrep.txt
1 /** \page rexgrep REX Grep 
2 rexgrep is a program for matching and searching strings in files using
3 the REX library. It is intended as a front end for the REX library and provides some command
4 line switches to help using the REX library. For example rexgrep can display the generated
5 Deterministic Finite Automata (DFA) or Non-Deterministic Finite Automata (NFA) from a
6 regular expression. 
7
8 Example 1 - Display DFA:
9 @verbatim
10 # rexgrep -e "hel+o" -D
11 State 0 ():  REX_STATETYPE_DEAD 
12     [0x0 - 0xFFFFFFFF]                  -> 0
13
14 State 1 ():  REX_STATETYPE_START 
15     [0x0 - 0x67]                        -> 0
16     'h'                                 -> 2
17     [0x69 - 0xFFFFFFFF]                 -> 0
18
19 State 2 (): 
20     [0x0 - 0x64]                        -> 0
21     'e'                                 -> 3
22     [0x66 - 0xFFFFFFFF]                 -> 0
23
24 State 3 (): 
25     [0x0 - 0x6B]                        -> 0
26     'l'                                 -> 4
27     [0x6D - 0xFFFFFFFF]                 -> 0
28
29 State 4 (): 
30     [0x0 - 0x6B]                        -> 0
31     'l'                                 -> 4
32     [m - n]                             -> 0
33     'o'                                 -> 5
34     [0x70 - 0xFFFFFFFF]                 -> 0
35
36 State 5 ():  REX_STATETYPE_ACCEPT  (5*)
37     [0x0 - 0xFFFFFFFF]                  -> 0
38
39 @endverbatim 
40
41 Example 2 - Display NFA. Note: if the regular expression characters are not ASCII, their hex value will be displayed.
42 Wide characters are encoded within the state the same way as ASCII characters, they are just displayed with their hex value.
43 @verbatim
44 # rexgrep -e "здравей" -N -D
45 State 0:  REX_STATETYPE_START 
46         0x437                           -> 1
47
48 State 1: 
49         0x434                           -> 2
50
51 State 2: 
52         0x440                           -> 3
53
54 State 3: 
55         0x430                           -> 4
56
57 State 4: 
58         0x432                           -> 5
59
60 State 5: 
61         0x435                           -> 6
62
63 State 6: 
64         0x439                           -> 7
65
66 State 7:  REX_STATETYPE_ACCEPT 
67         (none)
68
69 @endverbatim
70
71 Example 3 - Display DFA with the NFA substates.
72 @verbatim
73 # rexgrep -e "здравей" -S -D
74 State 0 ():  REX_STATETYPE_DEAD 
75     [0x0 - 0xFFFFFFFF]                  -> 0
76
77 State 1 (0):  REX_STATETYPE_START 
78     [0x0 - 0x436]                       -> 0
79     0x437                               -> 2
80     [0x438 - 0xFFFFFFFF]                -> 0
81
82 State 2 (1): 
83     [0x0 - 0x433]                       -> 0
84     0x434                               -> 3
85     [0x435 - 0xFFFFFFFF]                -> 0
86
87 State 3 (2): 
88     [0x0 - 0x43F]                       -> 0
89     0x440                               -> 4
90     [0x441 - 0xFFFFFFFF]                -> 0
91
92 State 4 (3): 
93     [0x0 - 0x42F]                       -> 0
94     0x430                               -> 5
95     [0x431 - 0xFFFFFFFF]                -> 0
96
97 State 5 (4): 
98     [0x0 - 0x431]                       -> 0
99     0x432                               -> 6
100     [0x433 - 0xFFFFFFFF]                -> 0
101
102 State 6 (5): 
103     [0x0 - 0x434]                       -> 0
104     0x435                               -> 7
105     [0x436 - 0xFFFFFFFF]                -> 0
106
107 State 7 (6): 
108     [0x0 - 0x438]                       -> 0
109     0x439                               -> 8
110     [0x43A - 0xFFFFFFFF]                -> 0
111
112 State 8 (7*):  REX_STATETYPE_ACCEPT  (7*)
113     [0x0 - 0xFFFFFFFF]                  -> 0
114
115
116 @endverbatim
117
118 Here is a complete list of available command line options.
119 @verbatim
120 Usage: 
121  rexgrep [OPTIONS] <filename>
122  OPTIONS:
123         -e patterns              Regular Expression.
124         -f patternfile           Read Regular Expressions from a file.
125         -b binfile               Use DFA from binfile.
126         -c                       Compile DFA and save to binfile. Use -b option to specify the name of the file.
127         -o, --only-matching      Show only the part of a line matching PATTERN
128         -l                       Line mode.
129         -N                       Use NFA.
130         -D                       Dump states.
131         -S                       Include DFA substates.
132         -q                       Quiet mode.
133         -t                       Display statistics. Works only when built in DEBUG mode.
134         -s string                Search in string.
135         -v                       Display version information.
136         -h, --help               Display this help.
137 @endverbatim
138
139
140 */