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); }
