aboutsummaryrefslogtreecommitdiff
path: root/src/test/resources/com/puppycrawl/tools/checkstyle/grammars
diff options
context:
space:
mode:
authorPiyush Sharma <ps26oct@gmail.com>2017-08-24 05:38:04 +0530
committerVladislav Lisetskii <vladlis54@gmail.com>2017-08-25 04:34:24 +0300
commit5e00b9c0f2a98e0bfeedda2dc30c5a3cc3f64a56 (patch)
tree626eaf37c6cca51718cdcb2ad41b26c31317d7e1 /src/test/resources/com/puppycrawl/tools/checkstyle/grammars
parente51c3b64f2699e00a4ecf8e9f50a679bfb6c8b7f (diff)
downloadcheckstyle-5e00b9c0f2a98e0bfeedda2dc30c5a3cc3f64a56.tar.gz
Issue #3332: Added HTML void element 'keygen'
Diffstat (limited to 'src/test/resources/com/puppycrawl/tools/checkstyle/grammars')
-rw-r--r--src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/htmlTags/InputHtmlVoidElementKeygen.javadoc42
-rw-r--r--src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/htmlTags/expectedHtmlVoidElementKeygenAst.txt761
2 files changed, 803 insertions, 0 deletions
diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/htmlTags/InputHtmlVoidElementKeygen.javadoc b/src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/htmlTags/InputHtmlVoidElementKeygen.javadoc
new file mode 100644
index 000000000..5fdbb3943
--- /dev/null
+++ b/src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/htmlTags/InputHtmlVoidElementKeygen.javadoc
@@ -0,0 +1,42 @@
+* <p> <keygen> </p>
+* <li> <keygen> </li>
+* <tr> <keygen> </tr>
+* <td> <keygen> </td>
+* <th> <keygen> </th>
+* <body> <keygen> </body>
+* <colgroup> <keygen> </colgroup>
+* <dd> <keygen> </dd>
+* <dt> <keygen> </dt>
+* <head> <keygen> </head>
+* <html> <keygen> </html>
+* <option> <keygen> </option>
+* <tbody> <keygen> </tbody>
+* <thead> <keygen> </thead>
+* <tfoot> <keygen> </tfoot>
+
+* <p> <keygen/> </p>
+* <li> <keygen/> </li>
+* <tr> <keygen/> </tr>
+* <td> <keygen/> </td>
+* <th> <keygen/> </th>
+* <body> <keygen/> </body>
+* <colgroup> <keygen/> </colgroup>
+* <dd> <keygen/> </dd>
+* <dt> <keygen/> </dt>
+* <head> <keygen/> </head>
+* <html> <keygen/> </html>
+* <option> <keygen/> </option>
+* <tbody> <keygen/> </tbody>
+* <thead> <keygen/> </thead>
+* <tfoot> <keygen/> </tfoot>
+
+* <keygen>
+* <keygen/>
+* <keygen attr="something">
+* <keygen attr="something"/>
+* <keygen attr="something" attr2="someotherthing">
+* <keygen attr="something" attr2="someotherthing"/>
+* <keygen attr="something"
+* attr2="someotherting">
+* <keygen attr="something"
+* attr2="someotherting"/> \ No newline at end of file
diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/htmlTags/expectedHtmlVoidElementKeygenAst.txt b/src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/htmlTags/expectedHtmlVoidElementKeygenAst.txt
new file mode 100644
index 000000000..962a4a0f6
--- /dev/null
+++ b/src/test/resources/com/puppycrawl/tools/checkstyle/grammars/javadoc/htmlTags/expectedHtmlVoidElementKeygenAst.txt
@@ -0,0 +1,761 @@
+JAVADOC -> JAVADOC [0:0]
+|--LEADING_ASTERISK -> * [0:0]
+|--TEXT -> [0:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [0:2]
+| `--PARAGRAPH -> PARAGRAPH [0:2]
+| |--P_TAG_START -> P_TAG_START [0:2]
+| | |--START -> < [0:2]
+| | |--P_HTML_TAG_NAME -> p [0:3]
+| | `--END -> > [0:4]
+| |--TEXT -> [0:5]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [0:6]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [0:6]
+| | |--START -> < [0:6]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [0:7]
+| | `--END -> > [0:13]
+| |--TEXT -> [0:14]
+| `--P_TAG_END -> P_TAG_END [0:15]
+| |--START -> < [0:15]
+| |--SLASH -> / [0:16]
+| |--P_HTML_TAG_NAME -> p [0:17]
+| `--END -> > [0:18]
+|--NEWLINE -> \n [0:19]
+|--LEADING_ASTERISK -> * [1:0]
+|--TEXT -> [1:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [1:2]
+| `--LI -> LI [1:2]
+| |--LI_TAG_START -> LI_TAG_START [1:2]
+| | |--START -> < [1:2]
+| | |--LI_HTML_TAG_NAME -> li [1:3]
+| | `--END -> > [1:5]
+| |--TEXT -> [1:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [1:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [1:7]
+| | |--START -> < [1:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [1:8]
+| | `--END -> > [1:14]
+| |--TEXT -> [1:15]
+| `--LI_TAG_END -> LI_TAG_END [1:16]
+| |--START -> < [1:16]
+| |--SLASH -> / [1:17]
+| |--LI_HTML_TAG_NAME -> li [1:18]
+| `--END -> > [1:20]
+|--NEWLINE -> \n [1:21]
+|--LEADING_ASTERISK -> * [2:0]
+|--TEXT -> [2:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [2:2]
+| `--TR -> TR [2:2]
+| |--TR_TAG_START -> TR_TAG_START [2:2]
+| | |--START -> < [2:2]
+| | |--TR_HTML_TAG_NAME -> tr [2:3]
+| | `--END -> > [2:5]
+| |--TEXT -> [2:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [2:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [2:7]
+| | |--START -> < [2:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [2:8]
+| | `--END -> > [2:14]
+| |--TEXT -> [2:15]
+| `--TR_TAG_END -> TR_TAG_END [2:16]
+| |--START -> < [2:16]
+| |--SLASH -> / [2:17]
+| |--TR_HTML_TAG_NAME -> tr [2:18]
+| `--END -> > [2:20]
+|--NEWLINE -> \n [2:21]
+|--LEADING_ASTERISK -> * [3:0]
+|--TEXT -> [3:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [3:2]
+| `--TD -> TD [3:2]
+| |--TD_TAG_START -> TD_TAG_START [3:2]
+| | |--START -> < [3:2]
+| | |--TD_HTML_TAG_NAME -> td [3:3]
+| | `--END -> > [3:5]
+| |--TEXT -> [3:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [3:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [3:7]
+| | |--START -> < [3:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [3:8]
+| | `--END -> > [3:14]
+| |--TEXT -> [3:15]
+| `--TD_TAG_END -> TD_TAG_END [3:16]
+| |--START -> < [3:16]
+| |--SLASH -> / [3:17]
+| |--TD_HTML_TAG_NAME -> td [3:18]
+| `--END -> > [3:20]
+|--NEWLINE -> \n [3:21]
+|--LEADING_ASTERISK -> * [4:0]
+|--TEXT -> [4:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [4:2]
+| `--TH -> TH [4:2]
+| |--TH_TAG_START -> TH_TAG_START [4:2]
+| | |--START -> < [4:2]
+| | |--TH_HTML_TAG_NAME -> th [4:3]
+| | `--END -> > [4:5]
+| |--TEXT -> [4:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [4:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [4:7]
+| | |--START -> < [4:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [4:8]
+| | `--END -> > [4:14]
+| |--TEXT -> [4:15]
+| `--TH_TAG_END -> TH_TAG_END [4:16]
+| |--START -> < [4:16]
+| |--SLASH -> / [4:17]
+| |--TH_HTML_TAG_NAME -> th [4:18]
+| `--END -> > [4:20]
+|--NEWLINE -> \n [4:21]
+|--LEADING_ASTERISK -> * [5:0]
+|--TEXT -> [5:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [5:2]
+| `--BODY -> BODY [5:2]
+| |--BODY_TAG_START -> BODY_TAG_START [5:2]
+| | |--START -> < [5:2]
+| | |--BODY_HTML_TAG_NAME -> body [5:3]
+| | `--END -> > [5:7]
+| |--TEXT -> [5:8]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [5:9]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [5:9]
+| | |--START -> < [5:9]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [5:10]
+| | `--END -> > [5:16]
+| |--TEXT -> [5:17]
+| `--BODY_TAG_END -> BODY_TAG_END [5:18]
+| |--START -> < [5:18]
+| |--SLASH -> / [5:19]
+| |--BODY_HTML_TAG_NAME -> body [5:20]
+| `--END -> > [5:24]
+|--NEWLINE -> \n [5:25]
+|--LEADING_ASTERISK -> * [6:0]
+|--TEXT -> [6:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [6:2]
+| `--COLGROUP -> COLGROUP [6:2]
+| |--COLGROUP_TAG_START -> COLGROUP_TAG_START [6:2]
+| | |--START -> < [6:2]
+| | |--COLGROUP_HTML_TAG_NAME -> colgroup [6:3]
+| | `--END -> > [6:11]
+| |--TEXT -> [6:12]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [6:13]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [6:13]
+| | |--START -> < [6:13]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [6:14]
+| | `--END -> > [6:20]
+| |--TEXT -> [6:21]
+| `--COLGROUP_TAG_END -> COLGROUP_TAG_END [6:22]
+| |--START -> < [6:22]
+| |--SLASH -> / [6:23]
+| |--COLGROUP_HTML_TAG_NAME -> colgroup [6:24]
+| `--END -> > [6:32]
+|--NEWLINE -> \n [6:33]
+|--LEADING_ASTERISK -> * [7:0]
+|--TEXT -> [7:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [7:2]
+| `--DD -> DD [7:2]
+| |--DD_TAG_START -> DD_TAG_START [7:2]
+| | |--START -> < [7:2]
+| | |--DD_HTML_TAG_NAME -> dd [7:3]
+| | `--END -> > [7:5]
+| |--TEXT -> [7:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [7:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [7:7]
+| | |--START -> < [7:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [7:8]
+| | `--END -> > [7:14]
+| |--TEXT -> [7:15]
+| `--DD_TAG_END -> DD_TAG_END [7:16]
+| |--START -> < [7:16]
+| |--SLASH -> / [7:17]
+| |--DD_HTML_TAG_NAME -> dd [7:18]
+| `--END -> > [7:20]
+|--NEWLINE -> \n [7:21]
+|--LEADING_ASTERISK -> * [8:0]
+|--TEXT -> [8:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [8:2]
+| `--DT -> DT [8:2]
+| |--DT_TAG_START -> DT_TAG_START [8:2]
+| | |--START -> < [8:2]
+| | |--DT_HTML_TAG_NAME -> dt [8:3]
+| | `--END -> > [8:5]
+| |--TEXT -> [8:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [8:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [8:7]
+| | |--START -> < [8:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [8:8]
+| | `--END -> > [8:14]
+| |--TEXT -> [8:15]
+| `--DT_TAG_END -> DT_TAG_END [8:16]
+| |--START -> < [8:16]
+| |--SLASH -> / [8:17]
+| |--DT_HTML_TAG_NAME -> dt [8:18]
+| `--END -> > [8:20]
+|--NEWLINE -> \n [8:21]
+|--LEADING_ASTERISK -> * [9:0]
+|--TEXT -> [9:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [9:2]
+| `--HEAD -> HEAD [9:2]
+| |--HEAD_TAG_START -> HEAD_TAG_START [9:2]
+| | |--START -> < [9:2]
+| | |--HEAD_HTML_TAG_NAME -> head [9:3]
+| | `--END -> > [9:7]
+| |--TEXT -> [9:8]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [9:9]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [9:9]
+| | |--START -> < [9:9]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [9:10]
+| | `--END -> > [9:16]
+| |--TEXT -> [9:17]
+| `--HEAD_TAG_END -> HEAD_TAG_END [9:18]
+| |--START -> < [9:18]
+| |--SLASH -> / [9:19]
+| |--HEAD_HTML_TAG_NAME -> head [9:20]
+| `--END -> > [9:24]
+|--NEWLINE -> \n [9:25]
+|--LEADING_ASTERISK -> * [10:0]
+|--TEXT -> [10:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [10:2]
+| `--HTML -> HTML [10:2]
+| |--HTML_TAG_START -> HTML_TAG_START [10:2]
+| | |--START -> < [10:2]
+| | |--HTML_HTML_TAG_NAME -> html [10:3]
+| | `--END -> > [10:7]
+| |--TEXT -> [10:8]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [10:9]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [10:9]
+| | |--START -> < [10:9]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [10:10]
+| | `--END -> > [10:16]
+| |--TEXT -> [10:17]
+| `--HTML_TAG_END -> HTML_TAG_END [10:18]
+| |--START -> < [10:18]
+| |--SLASH -> / [10:19]
+| |--HTML_HTML_TAG_NAME -> html [10:20]
+| `--END -> > [10:24]
+|--NEWLINE -> \n [10:25]
+|--LEADING_ASTERISK -> * [11:0]
+|--TEXT -> [11:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [11:2]
+| `--OPTION -> OPTION [11:2]
+| |--OPTION_TAG_START -> OPTION_TAG_START [11:2]
+| | |--START -> < [11:2]
+| | |--OPTION_HTML_TAG_NAME -> option [11:3]
+| | `--END -> > [11:9]
+| |--TEXT -> [11:10]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [11:11]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [11:11]
+| | |--START -> < [11:11]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [11:12]
+| | `--END -> > [11:18]
+| |--TEXT -> [11:19]
+| `--OPTION_TAG_END -> OPTION_TAG_END [11:20]
+| |--START -> < [11:20]
+| |--SLASH -> / [11:21]
+| |--OPTION_HTML_TAG_NAME -> option [11:22]
+| `--END -> > [11:28]
+|--NEWLINE -> \n [11:29]
+|--LEADING_ASTERISK -> * [12:0]
+|--TEXT -> [12:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [12:2]
+| `--TBODY -> TBODY [12:2]
+| |--TBODY_TAG_START -> TBODY_TAG_START [12:2]
+| | |--START -> < [12:2]
+| | |--TBODY_HTML_TAG_NAME -> tbody [12:3]
+| | `--END -> > [12:8]
+| |--TEXT -> [12:9]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [12:10]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [12:10]
+| | |--START -> < [12:10]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [12:11]
+| | `--END -> > [12:17]
+| |--TEXT -> [12:18]
+| `--TBODY_TAG_END -> TBODY_TAG_END [12:19]
+| |--START -> < [12:19]
+| |--SLASH -> / [12:20]
+| |--TBODY_HTML_TAG_NAME -> tbody [12:21]
+| `--END -> > [12:26]
+|--NEWLINE -> \n [12:27]
+|--LEADING_ASTERISK -> * [13:0]
+|--TEXT -> [13:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [13:2]
+| `--THEAD -> THEAD [13:2]
+| |--THEAD_TAG_START -> THEAD_TAG_START [13:2]
+| | |--START -> < [13:2]
+| | |--THEAD_HTML_TAG_NAME -> thead [13:3]
+| | `--END -> > [13:8]
+| |--TEXT -> [13:9]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [13:10]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [13:10]
+| | |--START -> < [13:10]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [13:11]
+| | `--END -> > [13:17]
+| |--TEXT -> [13:18]
+| `--THEAD_TAG_END -> THEAD_TAG_END [13:19]
+| |--START -> < [13:19]
+| |--SLASH -> / [13:20]
+| |--THEAD_HTML_TAG_NAME -> thead [13:21]
+| `--END -> > [13:26]
+|--NEWLINE -> \n [13:27]
+|--LEADING_ASTERISK -> * [14:0]
+|--TEXT -> [14:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [14:2]
+| `--TFOOT -> TFOOT [14:2]
+| |--TFOOT_TAG_START -> TFOOT_TAG_START [14:2]
+| | |--START -> < [14:2]
+| | |--TFOOT_HTML_TAG_NAME -> tfoot [14:3]
+| | `--END -> > [14:8]
+| |--TEXT -> [14:9]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [14:10]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [14:10]
+| | |--START -> < [14:10]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [14:11]
+| | `--END -> > [14:17]
+| |--TEXT -> [14:18]
+| `--TFOOT_TAG_END -> TFOOT_TAG_END [14:19]
+| |--START -> < [14:19]
+| |--SLASH -> / [14:20]
+| |--TFOOT_HTML_TAG_NAME -> tfoot [14:21]
+| `--END -> > [14:26]
+|--NEWLINE -> \n [14:27]
+|--NEWLINE -> \n [15:0]
+|--LEADING_ASTERISK -> * [16:0]
+|--TEXT -> [16:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [16:2]
+| `--PARAGRAPH -> PARAGRAPH [16:2]
+| |--P_TAG_START -> P_TAG_START [16:2]
+| | |--START -> < [16:2]
+| | |--P_HTML_TAG_NAME -> p [16:3]
+| | `--END -> > [16:4]
+| |--TEXT -> [16:5]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [16:6]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [16:6]
+| | |--START -> < [16:6]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [16:7]
+| | `--SLASH_END -> /> [16:13]
+| |--TEXT -> [16:15]
+| `--P_TAG_END -> P_TAG_END [16:16]
+| |--START -> < [16:16]
+| |--SLASH -> / [16:17]
+| |--P_HTML_TAG_NAME -> p [16:18]
+| `--END -> > [16:19]
+|--NEWLINE -> \n [16:20]
+|--LEADING_ASTERISK -> * [17:0]
+|--TEXT -> [17:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [17:2]
+| `--LI -> LI [17:2]
+| |--LI_TAG_START -> LI_TAG_START [17:2]
+| | |--START -> < [17:2]
+| | |--LI_HTML_TAG_NAME -> li [17:3]
+| | `--END -> > [17:5]
+| |--TEXT -> [17:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [17:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [17:7]
+| | |--START -> < [17:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [17:8]
+| | `--SLASH_END -> /> [17:14]
+| |--TEXT -> [17:16]
+| `--LI_TAG_END -> LI_TAG_END [17:17]
+| |--START -> < [17:17]
+| |--SLASH -> / [17:18]
+| |--LI_HTML_TAG_NAME -> li [17:19]
+| `--END -> > [17:21]
+|--NEWLINE -> \n [17:22]
+|--LEADING_ASTERISK -> * [18:0]
+|--TEXT -> [18:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [18:2]
+| `--TR -> TR [18:2]
+| |--TR_TAG_START -> TR_TAG_START [18:2]
+| | |--START -> < [18:2]
+| | |--TR_HTML_TAG_NAME -> tr [18:3]
+| | `--END -> > [18:5]
+| |--TEXT -> [18:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [18:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [18:7]
+| | |--START -> < [18:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [18:8]
+| | `--SLASH_END -> /> [18:14]
+| |--TEXT -> [18:16]
+| `--TR_TAG_END -> TR_TAG_END [18:17]
+| |--START -> < [18:17]
+| |--SLASH -> / [18:18]
+| |--TR_HTML_TAG_NAME -> tr [18:19]
+| `--END -> > [18:21]
+|--NEWLINE -> \n [18:22]
+|--LEADING_ASTERISK -> * [19:0]
+|--TEXT -> [19:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [19:2]
+| `--TD -> TD [19:2]
+| |--TD_TAG_START -> TD_TAG_START [19:2]
+| | |--START -> < [19:2]
+| | |--TD_HTML_TAG_NAME -> td [19:3]
+| | `--END -> > [19:5]
+| |--TEXT -> [19:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [19:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [19:7]
+| | |--START -> < [19:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [19:8]
+| | `--SLASH_END -> /> [19:14]
+| |--TEXT -> [19:16]
+| `--TD_TAG_END -> TD_TAG_END [19:17]
+| |--START -> < [19:17]
+| |--SLASH -> / [19:18]
+| |--TD_HTML_TAG_NAME -> td [19:19]
+| `--END -> > [19:21]
+|--NEWLINE -> \n [19:22]
+|--LEADING_ASTERISK -> * [20:0]
+|--TEXT -> [20:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [20:2]
+| `--TH -> TH [20:2]
+| |--TH_TAG_START -> TH_TAG_START [20:2]
+| | |--START -> < [20:2]
+| | |--TH_HTML_TAG_NAME -> th [20:3]
+| | `--END -> > [20:5]
+| |--TEXT -> [20:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [20:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [20:7]
+| | |--START -> < [20:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [20:8]
+| | `--SLASH_END -> /> [20:14]
+| |--TEXT -> [20:16]
+| `--TH_TAG_END -> TH_TAG_END [20:17]
+| |--START -> < [20:17]
+| |--SLASH -> / [20:18]
+| |--TH_HTML_TAG_NAME -> th [20:19]
+| `--END -> > [20:21]
+|--NEWLINE -> \n [20:22]
+|--LEADING_ASTERISK -> * [21:0]
+|--TEXT -> [21:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [21:2]
+| `--BODY -> BODY [21:2]
+| |--BODY_TAG_START -> BODY_TAG_START [21:2]
+| | |--START -> < [21:2]
+| | |--BODY_HTML_TAG_NAME -> body [21:3]
+| | `--END -> > [21:7]
+| |--TEXT -> [21:8]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [21:9]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [21:9]
+| | |--START -> < [21:9]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [21:10]
+| | `--SLASH_END -> /> [21:16]
+| |--TEXT -> [21:18]
+| `--BODY_TAG_END -> BODY_TAG_END [21:19]
+| |--START -> < [21:19]
+| |--SLASH -> / [21:20]
+| |--BODY_HTML_TAG_NAME -> body [21:21]
+| `--END -> > [21:25]
+|--NEWLINE -> \n [21:26]
+|--LEADING_ASTERISK -> * [22:0]
+|--TEXT -> [22:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [22:2]
+| `--COLGROUP -> COLGROUP [22:2]
+| |--COLGROUP_TAG_START -> COLGROUP_TAG_START [22:2]
+| | |--START -> < [22:2]
+| | |--COLGROUP_HTML_TAG_NAME -> colgroup [22:3]
+| | `--END -> > [22:11]
+| |--TEXT -> [22:12]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [22:13]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [22:13]
+| | |--START -> < [22:13]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [22:14]
+| | `--SLASH_END -> /> [22:20]
+| |--TEXT -> [22:22]
+| `--COLGROUP_TAG_END -> COLGROUP_TAG_END [22:23]
+| |--START -> < [22:23]
+| |--SLASH -> / [22:24]
+| |--COLGROUP_HTML_TAG_NAME -> colgroup [22:25]
+| `--END -> > [22:33]
+|--NEWLINE -> \n [22:34]
+|--LEADING_ASTERISK -> * [23:0]
+|--TEXT -> [23:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [23:2]
+| `--DD -> DD [23:2]
+| |--DD_TAG_START -> DD_TAG_START [23:2]
+| | |--START -> < [23:2]
+| | |--DD_HTML_TAG_NAME -> dd [23:3]
+| | `--END -> > [23:5]
+| |--TEXT -> [23:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [23:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [23:7]
+| | |--START -> < [23:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [23:8]
+| | `--SLASH_END -> /> [23:14]
+| |--TEXT -> [23:16]
+| `--DD_TAG_END -> DD_TAG_END [23:17]
+| |--START -> < [23:17]
+| |--SLASH -> / [23:18]
+| |--DD_HTML_TAG_NAME -> dd [23:19]
+| `--END -> > [23:21]
+|--NEWLINE -> \n [23:22]
+|--LEADING_ASTERISK -> * [24:0]
+|--TEXT -> [24:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [24:2]
+| `--DT -> DT [24:2]
+| |--DT_TAG_START -> DT_TAG_START [24:2]
+| | |--START -> < [24:2]
+| | |--DT_HTML_TAG_NAME -> dt [24:3]
+| | `--END -> > [24:5]
+| |--TEXT -> [24:6]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [24:7]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [24:7]
+| | |--START -> < [24:7]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [24:8]
+| | `--SLASH_END -> /> [24:14]
+| |--TEXT -> [24:16]
+| `--DT_TAG_END -> DT_TAG_END [24:17]
+| |--START -> < [24:17]
+| |--SLASH -> / [24:18]
+| |--DT_HTML_TAG_NAME -> dt [24:19]
+| `--END -> > [24:21]
+|--NEWLINE -> \n [24:22]
+|--LEADING_ASTERISK -> * [25:0]
+|--TEXT -> [25:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [25:2]
+| `--HEAD -> HEAD [25:2]
+| |--HEAD_TAG_START -> HEAD_TAG_START [25:2]
+| | |--START -> < [25:2]
+| | |--HEAD_HTML_TAG_NAME -> head [25:3]
+| | `--END -> > [25:7]
+| |--TEXT -> [25:8]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [25:9]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [25:9]
+| | |--START -> < [25:9]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [25:10]
+| | `--SLASH_END -> /> [25:16]
+| |--TEXT -> [25:18]
+| `--HEAD_TAG_END -> HEAD_TAG_END [25:19]
+| |--START -> < [25:19]
+| |--SLASH -> / [25:20]
+| |--HEAD_HTML_TAG_NAME -> head [25:21]
+| `--END -> > [25:25]
+|--NEWLINE -> \n [25:26]
+|--LEADING_ASTERISK -> * [26:0]
+|--TEXT -> [26:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [26:2]
+| `--HTML -> HTML [26:2]
+| |--HTML_TAG_START -> HTML_TAG_START [26:2]
+| | |--START -> < [26:2]
+| | |--HTML_HTML_TAG_NAME -> html [26:3]
+| | `--END -> > [26:7]
+| |--TEXT -> [26:8]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [26:9]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [26:9]
+| | |--START -> < [26:9]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [26:10]
+| | `--SLASH_END -> /> [26:16]
+| |--TEXT -> [26:18]
+| `--HTML_TAG_END -> HTML_TAG_END [26:19]
+| |--START -> < [26:19]
+| |--SLASH -> / [26:20]
+| |--HTML_HTML_TAG_NAME -> html [26:21]
+| `--END -> > [26:25]
+|--NEWLINE -> \n [26:26]
+|--LEADING_ASTERISK -> * [27:0]
+|--TEXT -> [27:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [27:2]
+| `--OPTION -> OPTION [27:2]
+| |--OPTION_TAG_START -> OPTION_TAG_START [27:2]
+| | |--START -> < [27:2]
+| | |--OPTION_HTML_TAG_NAME -> option [27:3]
+| | `--END -> > [27:9]
+| |--TEXT -> [27:10]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [27:11]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [27:11]
+| | |--START -> < [27:11]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [27:12]
+| | `--SLASH_END -> /> [27:18]
+| |--TEXT -> [27:20]
+| `--OPTION_TAG_END -> OPTION_TAG_END [27:21]
+| |--START -> < [27:21]
+| |--SLASH -> / [27:22]
+| |--OPTION_HTML_TAG_NAME -> option [27:23]
+| `--END -> > [27:29]
+|--NEWLINE -> \n [27:30]
+|--LEADING_ASTERISK -> * [28:0]
+|--TEXT -> [28:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [28:2]
+| `--TBODY -> TBODY [28:2]
+| |--TBODY_TAG_START -> TBODY_TAG_START [28:2]
+| | |--START -> < [28:2]
+| | |--TBODY_HTML_TAG_NAME -> tbody [28:3]
+| | `--END -> > [28:8]
+| |--TEXT -> [28:9]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [28:10]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [28:10]
+| | |--START -> < [28:10]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [28:11]
+| | `--SLASH_END -> /> [28:17]
+| |--TEXT -> [28:19]
+| `--TBODY_TAG_END -> TBODY_TAG_END [28:20]
+| |--START -> < [28:20]
+| |--SLASH -> / [28:21]
+| |--TBODY_HTML_TAG_NAME -> tbody [28:22]
+| `--END -> > [28:27]
+|--NEWLINE -> \n [28:28]
+|--LEADING_ASTERISK -> * [29:0]
+|--TEXT -> [29:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [29:2]
+| `--THEAD -> THEAD [29:2]
+| |--THEAD_TAG_START -> THEAD_TAG_START [29:2]
+| | |--START -> < [29:2]
+| | |--THEAD_HTML_TAG_NAME -> thead [29:3]
+| | `--END -> > [29:8]
+| |--TEXT -> [29:9]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [29:10]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [29:10]
+| | |--START -> < [29:10]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [29:11]
+| | `--SLASH_END -> /> [29:17]
+| |--TEXT -> [29:19]
+| `--THEAD_TAG_END -> THEAD_TAG_END [29:20]
+| |--START -> < [29:20]
+| |--SLASH -> / [29:21]
+| |--THEAD_HTML_TAG_NAME -> thead [29:22]
+| `--END -> > [29:27]
+|--NEWLINE -> \n [29:28]
+|--LEADING_ASTERISK -> * [30:0]
+|--TEXT -> [30:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [30:2]
+| `--TFOOT -> TFOOT [30:2]
+| |--TFOOT_TAG_START -> TFOOT_TAG_START [30:2]
+| | |--START -> < [30:2]
+| | |--TFOOT_HTML_TAG_NAME -> tfoot [30:3]
+| | `--END -> > [30:8]
+| |--TEXT -> [30:9]
+| |--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [30:10]
+| | `--KEYGEN_TAG -> KEYGEN_TAG [30:10]
+| | |--START -> < [30:10]
+| | |--KEYGEN_HTML_TAG_NAME -> keygen [30:11]
+| | `--SLASH_END -> /> [30:17]
+| |--TEXT -> [30:19]
+| `--TFOOT_TAG_END -> TFOOT_TAG_END [30:20]
+| |--START -> < [30:20]
+| |--SLASH -> / [30:21]
+| |--TFOOT_HTML_TAG_NAME -> tfoot [30:22]
+| `--END -> > [30:27]
+|--NEWLINE -> \n [30:28]
+|--NEWLINE -> \n [31:0]
+|--LEADING_ASTERISK -> * [32:0]
+|--TEXT -> [32:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [32:2]
+| `--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [32:2]
+| `--KEYGEN_TAG -> KEYGEN_TAG [32:2]
+| |--START -> < [32:2]
+| |--KEYGEN_HTML_TAG_NAME -> keygen [32:3]
+| `--END -> > [32:9]
+|--NEWLINE -> \n [32:10]
+|--LEADING_ASTERISK -> * [33:0]
+|--TEXT -> [33:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [33:2]
+| `--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [33:2]
+| `--KEYGEN_TAG -> KEYGEN_TAG [33:2]
+| |--START -> < [33:2]
+| |--KEYGEN_HTML_TAG_NAME -> keygen [33:3]
+| `--SLASH_END -> /> [33:9]
+|--NEWLINE -> \n [33:11]
+|--LEADING_ASTERISK -> * [34:0]
+|--TEXT -> [34:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [34:2]
+| `--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [34:2]
+| `--KEYGEN_TAG -> KEYGEN_TAG [34:2]
+| |--START -> < [34:2]
+| |--KEYGEN_HTML_TAG_NAME -> keygen [34:3]
+| |--WS -> [34:9]
+| |--ATTRIBUTE -> ATTRIBUTE [34:10]
+| | |--HTML_TAG_NAME -> attr [34:10]
+| | |--EQUALS -> = [34:14]
+| | `--ATTR_VALUE -> "something" [34:15]
+| `--END -> > [34:27]
+|--NEWLINE -> \n [34:28]
+|--LEADING_ASTERISK -> * [35:0]
+|--TEXT -> [35:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [35:2]
+| `--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [35:2]
+| `--KEYGEN_TAG -> KEYGEN_TAG [35:2]
+| |--START -> < [35:2]
+| |--KEYGEN_HTML_TAG_NAME -> keygen [35:3]
+| |--WS -> [35:9]
+| |--ATTRIBUTE -> ATTRIBUTE [35:10]
+| | |--HTML_TAG_NAME -> attr [35:10]
+| | |--EQUALS -> = [35:14]
+| | `--ATTR_VALUE -> "something" [35:15]
+| `--SLASH_END -> /> [35:27]
+|--NEWLINE -> \n [35:29]
+|--LEADING_ASTERISK -> * [36:0]
+|--TEXT -> [36:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [36:2]
+| `--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [36:2]
+| `--KEYGEN_TAG -> KEYGEN_TAG [36:2]
+| |--START -> < [36:2]
+| |--KEYGEN_HTML_TAG_NAME -> keygen [36:3]
+| |--WS -> [36:9]
+| |--ATTRIBUTE -> ATTRIBUTE [36:10]
+| | |--HTML_TAG_NAME -> attr [36:10]
+| | |--EQUALS -> = [36:14]
+| | `--ATTR_VALUE -> "something" [36:15]
+| |--WS -> [36:27]
+| |--ATTRIBUTE -> ATTRIBUTE [36:28]
+| | |--HTML_TAG_NAME -> attr2 [36:28]
+| | |--EQUALS -> = [36:33]
+| | `--ATTR_VALUE -> "someotherthing" [36:34]
+| `--END -> > [36:51]
+|--NEWLINE -> \n [36:52]
+|--LEADING_ASTERISK -> * [37:0]
+|--TEXT -> [37:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [37:2]
+| `--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [37:2]
+| `--KEYGEN_TAG -> KEYGEN_TAG [37:2]
+| |--START -> < [37:2]
+| |--KEYGEN_HTML_TAG_NAME -> keygen [37:3]
+| |--WS -> [37:9]
+| |--ATTRIBUTE -> ATTRIBUTE [37:10]
+| | |--HTML_TAG_NAME -> attr [37:10]
+| | |--EQUALS -> = [37:14]
+| | `--ATTR_VALUE -> "something" [37:15]
+| |--WS -> [37:27]
+| |--ATTRIBUTE -> ATTRIBUTE [37:28]
+| | |--HTML_TAG_NAME -> attr2 [37:28]
+| | |--EQUALS -> = [37:33]
+| | `--ATTR_VALUE -> "someotherthing" [37:34]
+| `--SLASH_END -> /> [37:51]
+|--NEWLINE -> \n [37:53]
+|--LEADING_ASTERISK -> * [38:0]
+|--TEXT -> [38:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [38:2]
+| `--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [38:2]
+| `--KEYGEN_TAG -> KEYGEN_TAG [38:2]
+| |--START -> < [38:2]
+| |--KEYGEN_HTML_TAG_NAME -> keygen [38:3]
+| |--WS -> [38:9]
+| |--ATTRIBUTE -> ATTRIBUTE [38:10]
+| | |--HTML_TAG_NAME -> attr [38:10]
+| | |--EQUALS -> = [38:14]
+| | `--ATTR_VALUE -> "something" [38:15]
+| |--WS -> [38:27]
+| |--NEWLINE -> \n [38:28]
+| |--LEADING_ASTERISK -> * [39:0]
+| |--WS -> [39:1]
+| |--ATTRIBUTE -> ATTRIBUTE [39:2]
+| | |--HTML_TAG_NAME -> attr2 [39:2]
+| | |--EQUALS -> = [39:7]
+| | `--ATTR_VALUE -> "someotherting" [39:8]
+| `--END -> > [39:24]
+|--NEWLINE -> \n [39:25]
+|--LEADING_ASTERISK -> * [40:0]
+|--TEXT -> [40:1]
+|--HTML_ELEMENT -> HTML_ELEMENT [40:2]
+| `--SINGLETON_ELEMENT -> SINGLETON_ELEMENT [40:2]
+| `--KEYGEN_TAG -> KEYGEN_TAG [40:2]
+| |--START -> < [40:2]
+| |--KEYGEN_HTML_TAG_NAME -> keygen [40:3]
+| |--WS -> [40:9]
+| |--ATTRIBUTE -> ATTRIBUTE [40:10]
+| | |--HTML_TAG_NAME -> attr [40:10]
+| | |--EQUALS -> = [40:14]
+| | `--ATTR_VALUE -> "something" [40:15]
+| |--WS -> [40:27]
+| |--NEWLINE -> \n [40:28]
+| |--LEADING_ASTERISK -> * [41:0]
+| |--WS -> [41:1]
+| |--ATTRIBUTE -> ATTRIBUTE [41:2]
+| | |--HTML_TAG_NAME -> attr2 [41:2]
+| | |--EQUALS -> = [41:7]
+| | `--ATTR_VALUE -> "someotherting" [41:8]
+| `--SLASH_END -> /> [41:24]
+`--EOF -> <EOF> [41:26]