This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/plc4x.git

commit dddf8636d050556ebcd2d6fe2638918b0e580188
Author: Sebastian Rühl <[email protected]>
AuthorDate: Mon Sep 8 18:20:22 2025 +0200

    fix(codegen): ensure multiple line comments are grouped.
---
 .../plc4x/plugins/codegenerator/language/mspec/MSpec.g4      | 12 ++++++++++--
 .../language/mspec/parser/MessageFormatListener.java         |  2 +-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git 
a/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
 
b/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
index 58a42c18a7..3427650db8 100644
--- 
a/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
+++ 
b/code-generation/protocol-base-mspec/src/main/antlr4/org/apache/plc4x/plugins/codegenerator/language/mspec/MSpec.g4
@@ -415,13 +415,21 @@ STRING_CHARACTER
  ;
 
 LINE_COMMENT
- : ('//' ~[\r\n]*)+ -> channel(HIDDEN)
+ : (('//' ~[\r\n]*)+) -> channel(HIDDEN)
  ;
 
 BLOCK_COMMENT
  : '/*' .*? '*/' -> channel(HIDDEN)
  ;
 
+EmptyLine
+ : {getCharPositionInLine() == 0}? [ \t]* '\r'? '\n' -> channel(HIDDEN)
+ ;
+
+NEWLINE
+ : '\r'? '\n' -> channel(HIDDEN)
+ ;
+
 WS
- : [ \t\r\n\u000C]+ -> channel(HIDDEN)
+ : [ \t\u000C]+ -> channel(HIDDEN)
  ;
diff --git 
a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
 
b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
index 884ebaf84c..927410feaa 100644
--- 
a/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
+++ 
b/code-generation/protocol-base-mspec/src/main/java/org/apache/plc4x/plugins/codegenerator/language/mspec/parser/MessageFormatListener.java
@@ -103,7 +103,7 @@ public class MessageFormatListener extends 
MSpecBaseListener implements LazyType
         List<Token> hiddenToLeft = 
tokenStream.getHiddenTokensToLeft(tokenIndex);
         if (hiddenToLeft != null) {
             hiddenToLeft.reversed().stream()
-                .takeWhile(token -> frontComments.isEmpty() || 
(token.getType() != MSpecLexer.WS))
+                .takeWhile(token -> frontComments.isEmpty() || 
(token.getType() != MSpecLexer.EmptyLine))
                 .filter(token -> token.getType() == MSpecLexer.LINE_COMMENT || 
token.getType() == MSpecLexer.BLOCK_COMMENT)
                 .forEach(frontComments::add);
         }

Reply via email to