Issue #3170: delete children from javadoc TEXT
This commit is contained in:
parent
84015bb21c
commit
19ffe1bb1b
|
|
@ -34,6 +34,7 @@ import org.antlr.v4.runtime.tree.TerminalNode;
|
|||
import com.google.common.base.CaseFormat;
|
||||
import com.puppycrawl.tools.checkstyle.api.DetailAST;
|
||||
import com.puppycrawl.tools.checkstyle.api.DetailNode;
|
||||
import com.puppycrawl.tools.checkstyle.api.JavadocTokenTypes;
|
||||
import com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocNodeImpl;
|
||||
import com.puppycrawl.tools.checkstyle.grammars.javadoc.JavadocLexer;
|
||||
import com.puppycrawl.tools.checkstyle.grammars.javadoc.JavadocParser;
|
||||
|
|
@ -181,6 +182,12 @@ public class JavadocDetailNodeParser {
|
|||
ParseTree parseTreeParent = parseTreeNode;
|
||||
|
||||
while (currentJavadocParent != null) {
|
||||
// remove unnecessary children tokens
|
||||
if (currentJavadocParent.getType() == JavadocTokenTypes.TEXT) {
|
||||
currentJavadocParent
|
||||
.setChildren((DetailNode[]) JavadocNodeImpl.EMPTY_DETAIL_NODE_ARRAY);
|
||||
}
|
||||
|
||||
final JavadocNodeImpl[] children =
|
||||
(JavadocNodeImpl[]) currentJavadocParent.getChildren();
|
||||
|
||||
|
|
|
|||
|
|
@ -3399,7 +3399,7 @@ public final class TokenTypes {
|
|||
/**
|
||||
* Text of single-line or block comment.
|
||||
*
|
||||
*<pre>
|
||||
* <pre>
|
||||
* +--SINGLE_LINE_COMMENT
|
||||
* |
|
||||
* +--COMMENT_CONTENT
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ public class JavadocNodeImpl implements DetailNode {
|
|||
/**
|
||||
* Empty array of {@link DetailNode} type.
|
||||
*/
|
||||
private static final DetailNode[] EMPTY_DETAIL_NODE_ARRAY = new DetailNode[0];
|
||||
public static final JavadocNodeImpl[] EMPTY_DETAIL_NODE_ARRAY = new JavadocNodeImpl[0];
|
||||
|
||||
/**
|
||||
* Node index among parent's children.
|
||||
|
|
|
|||
|
|
@ -151,7 +151,8 @@ public class JavadocParagraphCheck extends AbstractJavadocCheck {
|
|||
*/
|
||||
private void checkEmptyLine(DetailNode newline) {
|
||||
final DetailNode nearestToken = getNearestNode(newline);
|
||||
if (!isLastEmptyLine(newline) && nearestToken.getChildren().length > 1) {
|
||||
if (!isLastEmptyLine(newline) && nearestToken.getType() == JavadocTokenTypes.TEXT
|
||||
&& !nearestToken.getText().trim().isEmpty()) {
|
||||
log(newline.getLineNumber(), MSG_TAG_AFTER);
|
||||
}
|
||||
}
|
||||
|
|
@ -199,7 +200,7 @@ public class JavadocParagraphCheck extends AbstractJavadocCheck {
|
|||
return false;
|
||||
}
|
||||
if (previousSibling.getType() == JavadocTokenTypes.TEXT
|
||||
&& previousSibling.getChildren().length == 1) {
|
||||
&& previousSibling.getText().trim().isEmpty()) {
|
||||
previousSibling = JavadocUtils.getPreviousSibling(previousSibling);
|
||||
}
|
||||
return previousSibling != null
|
||||
|
|
@ -215,7 +216,7 @@ public class JavadocParagraphCheck extends AbstractJavadocCheck {
|
|||
DetailNode previousNode = JavadocUtils.getPreviousSibling(paragraphTag);
|
||||
while (previousNode != null) {
|
||||
if (previousNode.getType() == JavadocTokenTypes.TEXT
|
||||
&& previousNode.getChildren().length > 1
|
||||
&& !previousNode.getText().trim().isEmpty()
|
||||
|| previousNode.getType() != JavadocTokenTypes.LEADING_ASTERISK
|
||||
&& previousNode.getType() != JavadocTokenTypes.NEWLINE
|
||||
&& previousNode.getType() != JavadocTokenTypes.TEXT) {
|
||||
|
|
@ -252,7 +253,7 @@ public class JavadocParagraphCheck extends AbstractJavadocCheck {
|
|||
DetailNode nextNode = JavadocUtils.getNextSibling(newLine);
|
||||
while (nextNode != null && nextNode.getType() != JavadocTokenTypes.JAVADOC_TAG) {
|
||||
if (nextNode.getType() == JavadocTokenTypes.TEXT
|
||||
&& nextNode.getChildren().length > 1
|
||||
&& !nextNode.getText().trim().isEmpty()
|
||||
|| nextNode.getType() == JavadocTokenTypes.HTML_ELEMENT) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,10 +94,11 @@ public class JavadocTagContinuationIndentationCheck extends AbstractJavadocCheck
|
|||
for (DetailNode newlineNode : textNodes) {
|
||||
final DetailNode textNode = JavadocUtils.getNextSibling(JavadocUtils
|
||||
.getNextSibling(newlineNode));
|
||||
if (textNode != null && textNode.getType() == JavadocTokenTypes.TEXT
|
||||
&& textNode.getChildren().length > 1) {
|
||||
final DetailNode whitespace = JavadocUtils.getFirstChild(textNode);
|
||||
if (whitespace.getText().length() - 1 < offset) {
|
||||
if (textNode != null && textNode.getType() == JavadocTokenTypes.TEXT) {
|
||||
final String text = textNode.getText();
|
||||
if (!text.trim().isEmpty()
|
||||
&& (text.length() <= offset
|
||||
|| !text.substring(1, offset + 1).trim().isEmpty())) {
|
||||
log(textNode.getLineNumber(), MSG_KEY, offset);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ import com.puppycrawl.tools.checkstyle.api.DetailNode;
|
|||
import com.puppycrawl.tools.checkstyle.api.JavadocTokenTypes;
|
||||
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
|
||||
import com.puppycrawl.tools.checkstyle.utils.CommonUtils;
|
||||
import com.puppycrawl.tools.checkstyle.utils.JavadocUtils;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
|
|
@ -157,30 +156,15 @@ public class SummaryJavadocCheck extends AbstractJavadocCheck {
|
|||
final StringBuilder result = new StringBuilder();
|
||||
final String periodSuffix = PERIOD + ' ';
|
||||
for (DetailNode child : ast.getChildren()) {
|
||||
final String text = child.getText();
|
||||
|
||||
if (child.getType() != JavadocTokenTypes.JAVADOC_INLINE_TAG
|
||||
&& child.getText().contains(periodSuffix)) {
|
||||
result.append(getCharsTillDot(child));
|
||||
&& text.contains(periodSuffix)) {
|
||||
result.append(text.substring(0, text.indexOf(periodSuffix) + 1));
|
||||
break;
|
||||
}
|
||||
else {
|
||||
result.append(child.getText());
|
||||
}
|
||||
}
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds and returns chars till first dot.
|
||||
* @param textNode node with javadoc text.
|
||||
* @return String with chars till first dot.
|
||||
*/
|
||||
private static String getCharsTillDot(DetailNode textNode) {
|
||||
final StringBuilder result = new StringBuilder();
|
||||
for (DetailNode child : textNode.getChildren()) {
|
||||
result.append(child.getText());
|
||||
if (PERIOD.equals(child.getText())
|
||||
&& JavadocUtils.getNextSibling(child).getType() == JavadocTokenTypes.WS) {
|
||||
break;
|
||||
result.append(text);
|
||||
}
|
||||
}
|
||||
return result.toString();
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 49 KiB |
|
|
@ -336,7 +336,7 @@ public class AbstractJavadocCheckTest extends BaseCheckTestSupport {
|
|||
|
||||
@Override
|
||||
public int[] getRequiredJavadocTokens() {
|
||||
return new int[] {JavadocTokenTypes.CHAR};
|
||||
return new int[] {JavadocTokenTypes.TEXT};
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -73,6 +73,7 @@ public class JavadocTagContinuationIndentationCheckTest
|
|||
"290: " + getCheckMessage(MSG_KEY, 4),
|
||||
"310: " + getCheckMessage(MSG_KEY, 4),
|
||||
"322: " + getCheckMessage(MSG_KEY, 4),
|
||||
"324: " + getCheckMessage(MSG_KEY, 4),
|
||||
};
|
||||
verify(checkConfig, getPath("InputJavaDocTagContinuationIndentation.java"),
|
||||
expected);
|
||||
|
|
|
|||
|
|
@ -108,13 +108,13 @@ public class CodeSelectorPModelTest {
|
|||
|
||||
@Test
|
||||
public void testDetailNodeLeafSelection() {
|
||||
final DetailNode javadocLeaf = ((DetailNode) model.getParseTreeTableModel()
|
||||
.getChild(tree.getFirstChild().getNextSibling().getFirstChild(), 0))
|
||||
.getChildren()[2].getChildren()[0];
|
||||
final DetailNode javadoc = (DetailNode) model.getParseTreeTableModel()
|
||||
.getChild(tree.getFirstChild().getNextSibling().getFirstChild(), 0);
|
||||
final DetailNode javadocLeaf = javadoc.getChildren()[2];
|
||||
final CodeSelectorPModel selector = new CodeSelectorPModel(javadocLeaf, linesToPosition);
|
||||
selector.findSelectionPositions();
|
||||
Assert.assertEquals(5, selector.getSelectionStart());
|
||||
Assert.assertEquals(6, selector.getSelectionEnd());
|
||||
Assert.assertEquals(19, selector.getSelectionEnd());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,20 +6,6 @@ CLASS_DEF -> CLASS_DEF [4:0]
|
|||
| | |--NEWLINE -> \n [1:0]
|
||||
| | |--LEADING_ASTERISK -> * [2:0]
|
||||
| | |--TEXT -> class javadoc [2:1]
|
||||
| | | |--WS -> [2:1]
|
||||
| | | |--CHAR -> c [2:2]
|
||||
| | | |--CHAR -> l [2:3]
|
||||
| | | |--CHAR -> a [2:4]
|
||||
| | | |--CHAR -> s [2:5]
|
||||
| | | |--CHAR -> s [2:6]
|
||||
| | | |--WS -> [2:7]
|
||||
| | | |--CHAR -> j [2:8]
|
||||
| | | |--CHAR -> a [2:9]
|
||||
| | | |--CHAR -> v [2:10]
|
||||
| | | |--CHAR -> a [2:11]
|
||||
| | | |--CHAR -> d [2:12]
|
||||
| | | |--CHAR -> o [2:13]
|
||||
| | | `--CHAR -> c [2:14]
|
||||
| | |--NEWLINE -> \n [2:15]
|
||||
| | `--EOF -> <EOF> [3:0]
|
||||
| `--BLOCK_COMMENT_END -> */ [3:0]
|
||||
|
|
@ -34,24 +20,6 @@ CLASS_DEF -> CLASS_DEF [4:0]
|
|||
| | | |--COMMENT_CONTENT -> * attribute javadoc [6:6]
|
||||
| | | | `--JAVADOC -> attribute javadoc<EOF> [6:0]
|
||||
| | | | |--TEXT -> attribute javadoc [6:0]
|
||||
| | | | | |--WS -> [6:0]
|
||||
| | | | | |--CHAR -> a [6:1]
|
||||
| | | | | |--CHAR -> t [6:2]
|
||||
| | | | | |--CHAR -> t [6:3]
|
||||
| | | | | |--CHAR -> r [6:4]
|
||||
| | | | | |--CHAR -> i [6:5]
|
||||
| | | | | |--CHAR -> b [6:6]
|
||||
| | | | | |--CHAR -> u [6:7]
|
||||
| | | | | |--CHAR -> t [6:8]
|
||||
| | | | | |--CHAR -> e [6:9]
|
||||
| | | | | |--WS -> [6:10]
|
||||
| | | | | |--CHAR -> j [6:11]
|
||||
| | | | | |--CHAR -> a [6:12]
|
||||
| | | | | |--CHAR -> v [6:13]
|
||||
| | | | | |--CHAR -> a [6:14]
|
||||
| | | | | |--CHAR -> d [6:15]
|
||||
| | | | | |--CHAR -> o [6:16]
|
||||
| | | | | `--CHAR -> c [6:17]
|
||||
| | | | `--EOF -> <EOF> [6:18]
|
||||
| | | `--BLOCK_COMMENT_END -> */ [6:24]
|
||||
| | `--LITERAL_INT -> int [7:4]
|
||||
|
|
@ -65,24 +33,8 @@ CLASS_DEF -> CLASS_DEF [4:0]
|
|||
| | | | |--NEWLINE -> \n [9:0]
|
||||
| | | | |--LEADING_ASTERISK -> * [10:0]
|
||||
| | | | |--TEXT -> method javadoc [10:5]
|
||||
| | | | | |--WS -> [10:5]
|
||||
| | | | | |--CHAR -> m [10:6]
|
||||
| | | | | |--CHAR -> e [10:7]
|
||||
| | | | | |--CHAR -> t [10:8]
|
||||
| | | | | |--CHAR -> h [10:9]
|
||||
| | | | | |--CHAR -> o [10:10]
|
||||
| | | | | |--CHAR -> d [10:11]
|
||||
| | | | | |--WS -> [10:12]
|
||||
| | | | | |--CHAR -> j [10:13]
|
||||
| | | | | |--CHAR -> a [10:14]
|
||||
| | | | | |--CHAR -> v [10:15]
|
||||
| | | | | |--CHAR -> a [10:16]
|
||||
| | | | | |--CHAR -> d [10:17]
|
||||
| | | | | |--CHAR -> o [10:18]
|
||||
| | | | | `--CHAR -> c [10:19]
|
||||
| | | | |--NEWLINE -> \n [10:20]
|
||||
| | | | |--TEXT -> [11:0]
|
||||
| | | | | `--WS -> [11:0]
|
||||
| | | | `--EOF -> <EOF> [11:4]
|
||||
| | | `--BLOCK_COMMENT_END -> */ [11:4]
|
||||
| | `--LITERAL_PUBLIC -> public [12:4]
|
||||
|
|
|
|||
|
|
@ -6,16 +6,6 @@ CLASS_DEF -> CLASS_DEF [4:0]
|
|||
| | | |--NEWLINE -> \n [1:0]
|
||||
| | | |--LEADING_ASTERISK -> * [2:0]
|
||||
| | | |--TEXT -> some text [2:1]
|
||||
| | | | |--WS -> [2:1]
|
||||
| | | | |--CHAR -> s [2:2]
|
||||
| | | | |--CHAR -> o [2:3]
|
||||
| | | | |--CHAR -> m [2:4]
|
||||
| | | | |--CHAR -> e [2:5]
|
||||
| | | | |--WS -> [2:6]
|
||||
| | | | |--CHAR -> t [2:7]
|
||||
| | | | |--CHAR -> e [2:8]
|
||||
| | | | |--CHAR -> x [2:9]
|
||||
| | | | `--CHAR -> t [2:10]
|
||||
| | | |--NEWLINE -> \n [2:11]
|
||||
| | | `--EOF -> <EOF> [3:0]
|
||||
| | `--BLOCK_COMMENT_END -> */ [3:0]
|
||||
|
|
|
|||
|
|
@ -14,13 +14,6 @@ CLASS_DEF -> CLASS_DEF [4:0]
|
|||
| |--COMMENT_CONTENT -> *javadoc [3:2]
|
||||
| | `--JAVADOC -> javadoc<EOF> [3:0]
|
||||
| | |--TEXT -> javadoc [3:0]
|
||||
| | | |--CHAR -> j [3:0]
|
||||
| | | |--CHAR -> a [3:1]
|
||||
| | | |--CHAR -> v [3:2]
|
||||
| | | |--CHAR -> a [3:3]
|
||||
| | | |--CHAR -> d [3:4]
|
||||
| | | |--CHAR -> o [3:5]
|
||||
| | | `--CHAR -> c [3:6]
|
||||
| | `--EOF -> <EOF> [3:7]
|
||||
| `--BLOCK_COMMENT_END -> */ [3:9]
|
||||
|--LITERAL_CLASS -> class [4:0]
|
||||
|
|
|
|||
|
|
@ -7,19 +7,11 @@ JAVADOC -> <p>\r\nMy {@code Class}\r\n</p>\r\n@see never<EOF> [0:0]
|
|||
| | `--CLOSE -> > [0:2]
|
||||
| |--NEWLINE -> \r\n [0:3]
|
||||
| |--TEXT -> My [1:0]
|
||||
| | |--CHAR -> M [1:0]
|
||||
| | |--CHAR -> y [1:1]
|
||||
| | `--WS -> [1:2]
|
||||
| |--JAVADOC_INLINE_TAG -> {@code Class} [1:3]
|
||||
| | |--JAVADOC_INLINE_TAG_START -> { [1:3]
|
||||
| | |--CODE_LITERAL -> @code [1:4]
|
||||
| | |--WS -> [1:9]
|
||||
| | |--TEXT -> Class [1:10]
|
||||
| | | |--CHAR -> C [1:10]
|
||||
| | | |--CHAR -> l [1:11]
|
||||
| | | |--CHAR -> a [1:12]
|
||||
| | | |--CHAR -> s [1:13]
|
||||
| | | `--CHAR -> s [1:14]
|
||||
| | `--JAVADOC_INLINE_TAG_END -> } [1:16]
|
||||
| |--NEWLINE -> \r\n [1:17]
|
||||
| `--P_TAG_CLOSE -> </p> [2:0]
|
||||
|
|
|
|||
|
|
@ -34,6 +34,19 @@ class InputCorrectJavaDocParagraph {
|
|||
*/
|
||||
boolean emulated() {return false;}
|
||||
|
||||
/**
|
||||
* Some Javadoc.
|
||||
*
|
||||
*<pre>
|
||||
* Test
|
||||
* </pre>
|
||||
*
|
||||
* <pre>
|
||||
* Test
|
||||
* </pre>
|
||||
*/
|
||||
boolean test() {return false;}
|
||||
|
||||
/**
|
||||
* Some Javadoc.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -320,6 +320,8 @@ enum Foo1 {}
|
|||
* Some javadoc.
|
||||
* @serialData Some javadoc.
|
||||
* Line below is empty on purpose. // warn
|
||||
* @see Some Text.
|
||||
* L.
|
||||
*
|
||||
* @author max
|
||||
* @see {@link com.puppycrawl.tools.checkstyle.AllChecksPresentOnAvailableChecksPageTest
|
||||
|
|
|
|||
|
|
@ -131,11 +131,6 @@ public class MyClass {
|
|||
In Javadoc comment every whitespace matters, and Javadoc Checks need all those whitespaces and newline nodes to verify format and content of the Javadoc comment.
|
||||
Because of that Javadoc grammar includes all whitespaces, newlines to the parse tree
|
||||
(<a href="apidocs/com/puppycrawl/tools/checkstyle/api/JavadocTokenTypes.html#WS">WS</a>, <a href="apidocs/com/puppycrawl/tools/checkstyle/api/JavadocTokenTypes.html#NEWLINE">NEWLINE</a>).
|
||||
As you may notice there is also <a href="apidocs/com/puppycrawl/tools/checkstyle/api/JavadocTokenTypes.html#CHAR">CHAR</a> javadoc token that presents single character.
|
||||
It is quite useless and is used for building only <a href="apidocs/com/puppycrawl/tools/checkstyle/api/JavadocTokenTypes.html#TEXT">TEXT</a> node which consists of
|
||||
<a href="apidocs/com/puppycrawl/tools/checkstyle/api/JavadocTokenTypes.html#CHAR">CHAR</a> and
|
||||
<a href="apidocs/com/puppycrawl/tools/checkstyle/api/JavadocTokenTypes.html#WS">WS</a> nodes, but it is implementation nuance.
|
||||
(In future we will try to resolve this. See <a href="https://github.com/checkstyle/checkstyle/issues/3170">Github Issue #3170</a>).
|
||||
</p>
|
||||
</section>
|
||||
|
||||
|
|
@ -165,10 +160,6 @@ CLASS_DEF -> CLASS_DEF [5:0]
|
|||
| | | |--NEWLINE -> \n [1:0]
|
||||
| | | |--LEADING_ASTERISK -> * [2:0]
|
||||
| | | |--TEXT -> My [2:2]
|
||||
| | | | |--WS -> [2:2]
|
||||
| | | | |--CHAR -> M [2:3]
|
||||
| | | | |--CHAR -> y [2:4]
|
||||
| | | | `--WS -> [2:5]
|
||||
| | | |--HTML_ELEMENT -> <b>class</b> [2:6]
|
||||
| | | | `--HTML_TAG -> <b>class</b> [2:6]
|
||||
| | | | |--HTML_ELEMENT_OPEN -> <b> [2:6]
|
||||
|
|
@ -176,18 +167,12 @@ CLASS_DEF -> CLASS_DEF [5:0]
|
|||
| | | | | |--HTML_TAG_NAME -> b [2:7]
|
||||
| | | | | `--CLOSE -> > [2:8]
|
||||
| | | | |--TEXT -> class [2:9]
|
||||
| | | | | |--CHAR -> c [2:9]
|
||||
| | | | | |--CHAR -> l [2:10]
|
||||
| | | | | |--CHAR -> a [2:11]
|
||||
| | | | | |--CHAR -> s [2:12]
|
||||
| | | | | `--CHAR -> s [2:13]
|
||||
| | | | `--HTML_ELEMENT_CLOSE -> </b> [2:14]
|
||||
| | | | |--OPEN -> < [2:14]
|
||||
| | | | |--SLASH -> / [2:15]
|
||||
| | | | |--HTML_TAG_NAME -> b [2:16]
|
||||
| | | | `--CLOSE -> > [2:17]
|
||||
| | | |--TEXT -> . [2:18]
|
||||
| | | | `--CHAR -> . [2:18]
|
||||
| | | |--NEWLINE -> \n [2:19]
|
||||
| | | |--LEADING_ASTERISK -> * [3:0]
|
||||
| | | |--WS -> [3:2]
|
||||
|
|
@ -225,10 +210,6 @@ CLASS_DEF -> CLASS_DEF [5:0]
|
|||
JAVADOC -> * My <b>class</b>.\r\n * @see AbstractClass<EOF> [0:0]
|
||||
|--LEADING_ASTERISK -> * [0:0]
|
||||
|--TEXT -> My [0:2]
|
||||
| |--WS -> [0:2]
|
||||
| |--CHAR -> M [0:3]
|
||||
| |--CHAR -> y [0:4]
|
||||
| `--WS -> [0:5]
|
||||
|--HTML_ELEMENT -> <b>class</b> [0:6]
|
||||
| `--HTML_TAG -> <b>class</b> [0:6]
|
||||
| |--HTML_ELEMENT_OPEN -> <b> [0:6]
|
||||
|
|
@ -236,18 +217,12 @@ JAVADOC -> * My <b>class</b>.\r\n * @see AbstractClass<EOF> [0:0]
|
|||
| | |--HTML_TAG_NAME -> b [0:7]
|
||||
| | `--CLOSE -> > [0:8]
|
||||
| |--TEXT -> class [0:9]
|
||||
| | |--CHAR -> c [0:9]
|
||||
| | |--CHAR -> l [0:10]
|
||||
| | |--CHAR -> a [0:11]
|
||||
| | |--CHAR -> s [0:12]
|
||||
| | `--CHAR -> s [0:13]
|
||||
| `--HTML_ELEMENT_CLOSE -> </b> [0:14]
|
||||
| |--OPEN -> < [0:14]
|
||||
| |--SLASH -> / [0:15]
|
||||
| |--HTML_TAG_NAME -> b [0:16]
|
||||
| `--CLOSE -> > [0:17]
|
||||
|--TEXT -> . [0:18]
|
||||
| `--CHAR -> . [0:18]
|
||||
|--NEWLINE -> \r\n [0:19]
|
||||
|--LEADING_ASTERISK -> * [1:0]
|
||||
|--WS -> [1:2]
|
||||
|
|
@ -398,10 +373,6 @@ JAVADOC -> <acronym title="as soon as possible">ASAP</acronym><EOF> [0:0]
|
|||
| | | `--ATTR_VALUE -> "as soon as possible" [0:15]
|
||||
| | `--CLOSE -> > [0:37]
|
||||
| |--TEXT -> ASAP [0:38]
|
||||
| | |--CHAR -> A [0:38]
|
||||
| | |--CHAR -> S [0:39]
|
||||
| | |--CHAR -> A [0:40]
|
||||
| | `--CHAR -> P [0:41]
|
||||
| `--HTML_ELEMENT_CLOSE -> </acronym> [0:42]
|
||||
| |--OPEN -> < [0:42]
|
||||
| |--SLASH -> / [0:43]
|
||||
|
|
@ -449,12 +420,6 @@ JAVADOC -> <p> First\r\n<p> Second<EOF> [0:0]
|
|||
| |--P_HTML_TAG_NAME -> p [0:1]
|
||||
| `--CLOSE -> > [0:2]
|
||||
|--TEXT -> First [0:3]
|
||||
| |--WS -> [0:3]
|
||||
| |--CHAR -> F [0:4]
|
||||
| |--CHAR -> i [0:5]
|
||||
| |--CHAR -> r [0:6]
|
||||
| |--CHAR -> s [0:7]
|
||||
| `--CHAR -> t [0:8]
|
||||
|--NEWLINE -> \r\n [0:9]
|
||||
|--HTML_ELEMENT -> <p> [1:0]
|
||||
| `--P_TAG_OPEN -> <p> [1:0]
|
||||
|
|
@ -462,13 +427,6 @@ JAVADOC -> <p> First\r\n<p> Second<EOF> [0:0]
|
|||
| |--P_HTML_TAG_NAME -> p [1:1]
|
||||
| `--CLOSE -> > [1:2]
|
||||
|--TEXT -> Second [1:3]
|
||||
| |--WS -> [1:3]
|
||||
| |--CHAR -> S [1:4]
|
||||
| |--CHAR -> e [1:5]
|
||||
| |--CHAR -> c [1:6]
|
||||
| |--CHAR -> o [1:7]
|
||||
| |--CHAR -> n [1:8]
|
||||
| `--CHAR -> d [1:9]
|
||||
`--EOF -> <EOF> [1:10]
|
||||
]]></source>
|
||||
</td>
|
||||
|
|
@ -482,13 +440,6 @@ JAVADOC -> <p> First </p>\r\n<p> Second </p><EOF> [0:0]
|
|||
| | |--P_HTML_TAG_NAME -> p [0:1]
|
||||
| | `--CLOSE -> > [0:2]
|
||||
| |--TEXT -> First [0:3]
|
||||
| | |--WS -> [0:3]
|
||||
| | |--CHAR -> F [0:4]
|
||||
| | |--CHAR -> i [0:5]
|
||||
| | |--CHAR -> r [0:6]
|
||||
| | |--CHAR -> s [0:7]
|
||||
| | |--CHAR -> t [0:8]
|
||||
| | `--WS -> [0:9]
|
||||
| `--P_TAG_CLOSE -> </p> [0:10]
|
||||
| |--OPEN -> < [0:10]
|
||||
| |--SLASH -> / [0:11]
|
||||
|
|
@ -502,14 +453,6 @@ JAVADOC -> <p> First </p>\r\n<p> Second </p><EOF> [0:0]
|
|||
| | |--P_HTML_TAG_NAME -> p [1:1]
|
||||
| | `--CLOSE -> > [1:2]
|
||||
| |--TEXT -> Second [1:3]
|
||||
| | |--WS -> [1:3]
|
||||
| | |--CHAR -> S [1:4]
|
||||
| | |--CHAR -> e [1:5]
|
||||
| | |--CHAR -> c [1:6]
|
||||
| | |--CHAR -> o [1:7]
|
||||
| | |--CHAR -> n [1:8]
|
||||
| | |--CHAR -> d [1:9]
|
||||
| | `--WS -> [1:10]
|
||||
| `--P_TAG_CLOSE -> </p> [1:11]
|
||||
| |--OPEN -> < [1:11]
|
||||
| |--SLASH -> / [1:12]
|
||||
|
|
|
|||
Loading…
Reference in New Issue