From a455c8e4a2daabd54c803d1c1694a68f77c37de2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guilhem=20Faur=C3=A9?= Date: Tue, 9 May 2023 16:34:02 +0200 Subject: [PATCH] add pyparsing, lark not adapted to complex languages like SPIP or Markdown --- requirements.txt | 7 ++++--- spip2md/content.py | 16 +++++++++------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/requirements.txt b/requirements.txt index 3259859..2b4ca95 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,5 @@ -peewee -lark -python-slugify[unidecode] pyyaml +python-slugify[unidecode] +peewee +pyparsing +lark diff --git a/spip2md/content.py b/spip2md/content.py index 53895aa..45ea7d2 100644 --- a/spip2md/content.py +++ b/spip2md/content.py @@ -1,8 +1,9 @@ from os import path from lark import Lark +from pyparsing import Word, alphas -spipParser = Lark(open(path.dirname(__file__) + "/spip.lark")) +larkParser = Lark(open(path.dirname(__file__) + "/spip.lark")) class content: @@ -13,18 +14,19 @@ class content: markdown = self.spip # Parses the body & display parse tree try: - parsed = spipParser.parse(self.spip) - print(f" parse tree :\n", parsed.pretty(), "\n") + print(f" parse tree :\n") + print(larkParser.parse(self.spip).pretty()) except Exception as e: print(" PARSING FAILED :\n", e) return markdown + # Parses a file & display its parse tree def test(filename): - print(f"--- Parsing of {filename} ---\n") - parsed = spipParser.parse(open(path.dirname(__file__) + "/" + filename).read()) - print(parsed, "\n") - print(f"--- Parse tree of {filename} ---\n\n", parsed.pretty(), "\n") + raw = open(path.dirname(__file__) + "/" + filename).read() + print(f"--- Parse tree of {filename} ---\n\n") + print(larkParser.parse(raw)) + if __name__ == "__main__": # Test