diff --git a/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource/SourceJavadocToXmldocGrammar.InlineTagsBnfTerms.cs b/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource/SourceJavadocToXmldocGrammar.InlineTagsBnfTerms.cs
index e7c74d85c..347dcf4fa 100644
--- a/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource/SourceJavadocToXmldocGrammar.InlineTagsBnfTerms.cs
+++ b/src/Java.Interop.Tools.JavaSource/Java.Interop.Tools.JavaSource/SourceJavadocToXmldocGrammar.InlineTagsBnfTerms.cs
@@ -30,6 +30,7 @@ internal void CreateRules (SourceJavadocToXmldocGrammar grammar)
| SeeDeclaration
| ValueDeclaration
| IgnorableDeclaration
+ | InlineParamDeclaration
;
CodeDeclaration.Rule = grammar.ToTerm ("{@code") + InlineValue + "}";
@@ -116,6 +117,12 @@ internal void CreateRules (SourceJavadocToXmldocGrammar grammar)
IgnorableDeclaration.AstConfig.NodeCreator = (context, parseNode) => {
parseNode.AstNode = new XText (parseNode.ChildNodes [0].Term.Name.Trim ());
};
+
+ InlineParamDeclaration.Rule = grammar.ToTerm ("{@param") + InlineValue + "}";
+ InlineParamDeclaration.AstConfig.NodeCreator = (context, parseNode) => {
+ var target = parseNode.ChildNodes [1].AstNode;
+ parseNode.AstNode = new XElement ("paramref", target);
+ };
}
public readonly NonTerminal AllInlineTerms = new NonTerminal (nameof (AllInlineTerms), ConcatChildNodes);
@@ -151,6 +158,7 @@ internal void CreateRules (SourceJavadocToXmldocGrammar grammar)
public readonly NonTerminal IgnorableDeclaration = new NonTerminal (nameof (IgnorableDeclaration));
+ public readonly NonTerminal InlineParamDeclaration = new NonTerminal (nameof (InlineParamDeclaration));
}
}
}
diff --git a/tests/Java.Interop.Tools.JavaSource-Tests/SourceJavadocToXmldocGrammar.InlineTagsBnfTermsTests.cs b/tests/Java.Interop.Tools.JavaSource-Tests/SourceJavadocToXmldocGrammar.InlineTagsBnfTermsTests.cs
index a1d36378e..35076a3b6 100644
--- a/tests/Java.Interop.Tools.JavaSource-Tests/SourceJavadocToXmldocGrammar.InlineTagsBnfTermsTests.cs
+++ b/tests/Java.Interop.Tools.JavaSource-Tests/SourceJavadocToXmldocGrammar.InlineTagsBnfTermsTests.cs
@@ -98,5 +98,15 @@ public void ValueDeclaration ()
Assert.IsFalse (r.HasErrors (), DumpMessages (r, p));
Assert.AreEqual ("#field", r.Root.AstNode.ToString ());
}
+
+ [Test]
+ public void InlineParamDeclaration ()
+ {
+ var p = CreateParser (g => g.InlineTagsTerms.InlineParamDeclaration);
+
+ var r = p.Parse ("{@param phoneNumberString}");
+ Assert.IsFalse (r.HasErrors (), DumpMessages (r, p));
+ Assert.AreEqual ("phoneNumberString", r.Root.AstNode.ToString ());
+ }
}
}
diff --git a/tests/Java.Interop.Tools.JavaSource-Tests/SourceJavadocToXmldocParserTests.cs b/tests/Java.Interop.Tools.JavaSource-Tests/SourceJavadocToXmldocParserTests.cs
index 650cd4fc1..042b268b0 100644
--- a/tests/Java.Interop.Tools.JavaSource-Tests/SourceJavadocToXmldocParserTests.cs
+++ b/tests/Java.Interop.Tools.JavaSource-Tests/SourceJavadocToXmldocParserTests.cs
@@ -188,7 +188,7 @@ more description {e.g. something} here. Include @ character.
How about another link accept(2)
@param manifest The value of the {@code
-android:versionCode} manifest attribute.
+android:versionCode} manifest attribute. See {@param empty}.
@param empty
@param options Additional options.
See {@link foo()}
@@ -196,7 +196,7 @@ @param options Additional options.
@return the return value
",
FullXml = $@"
- The value of the android:versionCode manifest attribute.
+ The value of the android:versionCode manifest attribute. See empty.
empty
Additional options.
See foo()
@@ -210,7 +210,7 @@ more description {{e.g. something}} here. Include @ character.
the return value
",
IntelliSenseXml = $@"
- The value of the android:versionCode manifest attribute.
+ The value of the android:versionCode manifest attribute. See empty.
empty
Additional options.
See foo()