| Index: tools/lexer_generator/rule_parser.py
|
| diff --git a/tools/lexer_generator/rule_parser.py b/tools/lexer_generator/rule_parser.py
|
| index 08277435940dcbea302fa94eba77e00fba3971e6..df19a3108bfcfca911512519d49de1861fc5ca5f 100644
|
| --- a/tools/lexer_generator/rule_parser.py
|
| +++ b/tools/lexer_generator/rule_parser.py
|
| @@ -31,6 +31,7 @@ from rule_lexer import RuleLexer
|
| from regex_parser import RegexParser
|
| from nfa_builder import NfaBuilder
|
| from dfa import Dfa
|
| +from dfa_optimizer import DfaOptimizer
|
| from transition_keys import TransitionKey, KeyEncoding
|
|
|
| class RuleParserState:
|
| @@ -293,6 +294,10 @@ class RuleProcessor(object):
|
| self.__dfa = Dfa(self.nfa().encoding(), start, dfa_nodes)
|
| return self.__dfa
|
|
|
| + def optimize_dfa(self, log = False):
|
| + assert not self.__dfa
|
| + self.__dfa = DfaOptimizer.optimize(self.dfa(), log)
|
| +
|
| def minimal_dfa(self):
|
| if not self.__minimial_dfa:
|
| self.__minimial_dfa = self.dfa().minimize()
|
|
|