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