Explorar el Código

Fixed tools.nearley (converter)

tags/gm/2021-09-23T00Z/github.com--lark-parser-lark/0.5.1
Erez Shinan hace 7 años
padre
commit
c1968b7e30
Se han modificado 1 ficheros con 8 adiciones y 4 borrados
  1. +8
    -4
      lark/tools/nearley.py

+ 8
- 4
lark/tools/nearley.py Ver fichero

@@ -27,11 +27,14 @@ nearley_grammar = r"""
_JS: /(?s){%.*?%}/

NAME: /[a-zA-Z_$]\w*/
WS.ignore: /[\t \f\n]+/
COMMENT.ignore: /\#[^\n]*/
COMMENT: /\#[^\n]*/
REGEXP: /\[.*?\]/
STRING: /".*?"/

%import common.WS
%ignore WS
%ignore COMMENT

"""


@@ -85,7 +88,7 @@ class NearleyToLark(InlineTransformer):
return '\n'.join(filter(None, rules))

def nearley_to_lark(g, builtin_path):
parser = Lark(nearley_grammar)
parser = Lark(nearley_grammar, parser='earley', lexer='standard')
tree = parser.parse(g)
return NearleyToLark(builtin_path).transform(tree)

@@ -129,7 +132,7 @@ def test():
converted_grammar = nearley_to_lark(css_example_grammar, '/home/erez/nearley/builtin')
print(converted_grammar)

l = Lark(converted_grammar, start='csscolor', parser='earley_nolex')
l = Lark(converted_grammar, start='csscolor')
print(l.parse('#a199ff').pretty())
print(l.parse('rgb(255, 70%, 3)').pretty())

@@ -148,3 +151,4 @@ def main():

if __name__ == '__main__':
main()
# test()

Cargando…
Cancelar
Guardar