Пример #1
0
 def load(self):
     from inclexer.inclexer import IncrementalLexerCF
     lexer = IncrementalLexerCF()
     names = []
     regexs = []
     for n, r in lexingrules:
         names.append(n)
         regexs.append(r)
     lexer.from_name_and_regex(names, regexs)
     parser = RubyParser()
     parser.init_ast()
     return parser, lexer
Пример #2
0
 def create_lexer(self):
     names = []
     regexs = []
     for name, regex in self.lrules:
         names.append(name)
         self.all_terminals.add(name)
         regexs.append(regex)
     # add so far undefined terminals
     undefined_terminals = self.terminals.difference(set(names))
     import re
     for t in undefined_terminals:
         names.insert(0, t)
         regexs.insert(0, re.escape(t))
     self.inclexer = IncrementalLexerCF()
     self.inclexer.from_name_and_regex(names, regexs)
     if self.indentation_based():
         self.inclexer.indentation_based = True