From f7b41273106056e966730a68b5be5f52371d8986 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Sat, 3 Dec 2022 09:32:26 +0000 Subject: Fix syntax error parsing of Doxygen comments after last enum item It is unconventional to have a doxygen comment after an enum item. It is attached to the previous, that is, the enum item to match Doxygen behaviour. Closes #1609 --- CHANGES.current | 3 +++ Examples/test-suite/doxygen_misc_constructs.i | 11 +++++++++++ Examples/test-suite/java/doxygen_misc_constructs_runme.java | 13 +++++++++++++ Source/CParse/parser.y | 5 +++++ 4 files changed, 32 insertions(+) diff --git a/CHANGES.current b/CHANGES.current index 5fc73eb15..93c8a99be 100644 --- a/CHANGES.current +++ b/CHANGES.current @@ -7,6 +7,9 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/ Version 4.2.0 (in progress) =========================== +2022-12-03: wsfulton + #1609 Fix syntax error parsing of Doxygen comments after last enum item. + 2022-12-03: wsfulton #1715 Fix syntax error parsing of unconventionally placed Doxygen post comments for enum items. diff --git a/Examples/test-suite/doxygen_misc_constructs.i b/Examples/test-suite/doxygen_misc_constructs.i index e77edc7fb..56e4fbdac 100644 --- a/Examples/test-suite/doxygen_misc_constructs.i +++ b/Examples/test-suite/doxygen_misc_constructs.i @@ -125,6 +125,17 @@ ,ODD_PARTIAL3_TWO ///< desc of odd_partial3_two ,ODD_PARTIAL3_THREE } ENestedOddPartial3; + + /** Description for TESTENUM. */ + enum TESTENUM + { + /** something for none */ + TEST_NONE = 0, + /** something for one */ + TEST_ONE, + /** something for two */ + TEST_TWO /** something more for two */ + }; }; /// @return This is a bad place for this tag, but it should be ignored. diff --git a/Examples/test-suite/java/doxygen_misc_constructs_runme.java b/Examples/test-suite/java/doxygen_misc_constructs_runme.java index 9d629579f..18cc5d901 100644 --- a/Examples/test-suite/java/doxygen_misc_constructs_runme.java +++ b/Examples/test-suite/java/doxygen_misc_constructs_runme.java @@ -145,6 +145,19 @@ public class doxygen_misc_constructs_runme { wantedComments.put("doxygen_misc_constructs.ClassWithNestedEnum.ENestedOddPartial3.ODD_PARTIAL3_TWO", " desc of odd_partial3_two\n"); + wantedComments.put("doxygen_misc_constructs.ClassWithNestedEnum.TESTENUM", + " Description for TESTENUM.\n" + + "\n"); + + wantedComments.put("doxygen_misc_constructs.ClassWithNestedEnum.TESTENUM.TEST_NONE", + " something for none\n"); + + wantedComments.put("doxygen_misc_constructs.ClassWithNestedEnum.TESTENUM.TEST_ONE", + " something for one\n"); + + wantedComments.put("doxygen_misc_constructs.ClassWithNestedEnum.TESTENUM.TEST_TWO", + " something for two something more for two\n"); + wantedComments.put("doxygen_misc_constructs.StructWithReturnComment", " @return This is a bad place for this tag, but it should be ignored."); diff --git a/Source/CParse/parser.y b/Source/CParse/parser.y index 178c8893d..41d805c28 100644 --- a/Source/CParse/parser.y +++ b/Source/CParse/parser.y @@ -6479,6 +6479,11 @@ enumlist : enumlist_item { set_comment($1, $2); $$ = $1; } + | enumlist_item DOXYGENSTRING { + Setattr($1, "_last", $1); + set_comment($1, $2); + $$ = $1; + } | enumlist_item COMMA enumlist { if ($3) { set_nextSibling($1, $3); -- cgit v1.2.1