This repo contains code to mirror other repos. It also contains the code that is getting mirrored.
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

32 строки
928 B

  1. import codecs
  2. import sys
  3. import json
  4. from lark import Lark
  5. from lark.grammar import RuleOptions, Rule
  6. from lark.lexer import TerminalDef
  7. from lark.tools import lalr_argparser, build_lalr
  8. import argparse
  9. argparser = argparse.ArgumentParser(prog='python -m lark.tools.serialize', parents=[lalr_argparser],
  10. description="Lark Serialization Tool - Stores Lark's internal state & LALR analysis as a JSON file",
  11. epilog='Look at the Lark documentation for more info on the options')
  12. def serialize(lark_inst, outfile):
  13. data, memo = lark_inst.memo_serialize([TerminalDef, Rule])
  14. outfile.write('{\n')
  15. outfile.write(' "data": %s,\n' % json.dumps(data))
  16. outfile.write(' "memo": %s\n' % json.dumps(memo))
  17. outfile.write('}\n')
  18. def main():
  19. ns = argparser.parse_args()
  20. serialize(*build_lalr(ns))
  21. if __name__ == '__main__':
  22. main()