From 1f34861024b7dd5c9db6c7f749fc6635e488e74f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Orvisk=C3=BD?= <orvisky.tomas@centrum.cz> Date: Sun, 28 Jan 2024 13:04:56 +0100 Subject: [PATCH] Extended skinparam lexing and parsing --- src/pyplaml/puml_lexer.py | 6 +++++- src/pyplaml/puml_parser.py | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/pyplaml/puml_lexer.py b/src/pyplaml/puml_lexer.py index 0c73f67..77d9667 100644 --- a/src/pyplaml/puml_lexer.py +++ b/src/pyplaml/puml_lexer.py @@ -172,7 +172,11 @@ class PUMLexer(object): @staticmethod def t_SKINPARAM(t): - r"""skinparam\s+.+""" + r"""skinparam\s+(\w+)\s+(\w+)?""" + target = t.lexer.lexmatch.group(32) + value = t.lexer.lexmatch.group(33) + + t.value = (target, value) return t def t_IDENTIFIER(self, t): diff --git a/src/pyplaml/puml_parser.py b/src/pyplaml/puml_parser.py index cf15ebc..6a4ced1 100644 --- a/src/pyplaml/puml_parser.py +++ b/src/pyplaml/puml_parser.py @@ -362,7 +362,12 @@ class PUMLParser(object): """ skinparam : SKINPARAM """ - skinparam = p[1].split(" ")[1::] + + @staticmethod + def p_skinparam_with_body(p): + """ + skinparam : SKINPARAM IN_BRACKETS_LINES + """ @staticmethod def p_error(p): -- GitLab