diff --git a/GSoC-2014-Ideas.md b/GSoC-2014-Ideas.md index 5153e23..200ce1f 100644 --- a/GSoC-2014-Ideas.md +++ b/GSoC-2014-Ideas.md @@ -265,6 +265,13 @@ ___ * Model it after re2c or the Ragel state machine generator * Alternatively model it after Flex. +Here is a sketch of a possible implementation: + + * Parse regular expressions into an NFA and ensure the attached Nimrod actions are kept around through the next different passes. + * Translate the NFA to an DFA: http://web.cecs.pdx.edu/~harry/compilers/slides/LexicalPart3.pdf + * Minimize the DFA with Hopcroft's algorithm: http://en.wikipedia.org/wiki/DFA_minimization + * Translate the DFA into Nimrod code and attach the actions. + **Desirable skills**: Knowledge of lexer generators. How to translate regexes into DFAs and how to optimize the resulting automatons.