Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
npm
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

regex2dfa

Build Status

This is a command-line utility that converts a regular expression to a DFA.

  • input: A perl-compatible regular expression, as defined by re2 [1].
  • output: An AT&T DFA [2], which accepts an equivelent language to the input regular expression.

References

Building

This utillity requires standard build tools: autoconf, make, gcc, etc.

Once you have your developement environment setup:

$ ./configure
$ make
$ ls bin/
regex2dfa

Example Usage

Command-line

$ ./bin/regex2dfa -r "^(a|b)*$"
0	0	97	97
0	0	98	98
0
$ ./bin/regex2dfa -r "^(a|b)+$"
0	1	97	97
0	1	98	98
1	1	97	97
1	1	98	98
1

C++ API

#include "regex2dfa.h"

...
std::string input_regex = "^(a|b)*$"; 
std::string minimized_dfa;
bool success = regex2dfa::Regex2Dfa(input_regex, &minimized_dfa);
std::cout << minimized_dfa << std::endl;
...

will output

0       0       97      97
0       0       98      98
0
You can’t perform that action at this time.