Exemple #1
0
    def _create_simple_segments(self):
        for r in self.langlet.parse_nfa.reachables:
            tracer = NFATracerUnexpanded(self.langlet.parse_nfa)
            prefix = []

            r1 = r
            while True:
                selection = tracer.select(r1)
                if len(selection) == 1 and is_keyword(selection[0]):
                    prefix.append(selection[0])
                    r1 = selection[0]
                else:
                    break

            nodes = []
            for s in selection:
                if s is FIN:
                    continue
                S = []
                S.append(s)
                R = self._min_span(S, tracer.clone(), set())
                if R:
                    nodes.append(prefix+R)
            self.simple_segments[r] = nodes
Exemple #2
0
    def _create_simple_segments(self):
        for r in self.langlet.parse_nfa.reachables:
            tracer = NFATracerUnexpanded(self.langlet.parse_nfa)
            prefix = []

            r1 = r
            while True:
                selection = tracer.select(r1)
                if len(selection) == 1 and is_keyword(selection[0]):
                    prefix.append(selection[0])
                    r1 = selection[0]
                else:
                    break

            nodes = []
            for s in selection:
                if s is FIN:
                    continue
                S = []
                S.append(s)
                R = self._min_span(S, tracer.clone(), set())
                if R:
                    nodes.append(prefix + R)
            self.simple_segments[r] = nodes