Browse Source

Small refactoring in standalone

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.6.5
Erez Shinan 6 years ago
parent
commit
c85098e090
3 changed files with 6 additions and 7 deletions
  1. +0
    -4
      lark/common.py
  2. +1
    -0
      lark/lexer.py
  3. +5
    -3
      lark/tools/standalone.py

+ 0
- 4
lark/common.py View File

@@ -1,8 +1,4 @@

###{standalone
###}



class LexerConf:
def __init__(self, tokens, ignore=(), postlex=None, callbacks=None):


+ 1
- 0
lark/lexer.py View File

@@ -284,6 +284,7 @@ class TraditionalLexer(Lexer):

self.mres = build_mres(terminals)


def lex(self, stream):
return _Lex(self).lex(stream, self.newline_types, self.ignore_types)



+ 5
- 3
lark/tools/standalone.py View File

@@ -54,7 +54,6 @@ EXTRACT_STANDALONE_FILES = [
'tools/standalone.py',
'exceptions.py',
'utils.py',
'common.py',
'tree.py',
'visitors.py',
'indenter.py',
@@ -83,12 +82,15 @@ def extract_sections(lines):

return {name:''.join(text) for name, text in sections.items()}

def _prepare_mres(mres):
return [(p.pattern,{i: t for i, t in d.items()}) for p,d in mres]

class TraditionalLexerAtoms:
def __init__(self, lexer):
self.mres = [(p.pattern,d) for p,d in lexer.mres]
self.mres = _prepare_mres(lexer.mres)
self.newline_types = lexer.newline_types
self.ignore_types = lexer.ignore_types
self.callback = {name:[(p.pattern,d) for p,d in c.mres]
self.callback = {name:_prepare_mres(c.mres)
for name, c in lexer.callback.items()}

def print_python(self):


Loading…
Cancel
Save