[
    /* Test count: 16 */
    /* Test number: 1 */
    {
        "data": $DATA{ ,12}
            FOO<!-- BAR -->BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  BAR  -->
                "BAZ"
        $DATA
    },
    /* Test number: 2 */
    {
        "data": $DATA{ ,12}
            FOO<!-- BAR --!>BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"},
            {"line": 1, "col": 15, "id": "unexpected-bang-after-double-dash-in-comment"},
            {"line": 1, "col": 16, "id": "incorrectly-closed-comment"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  BAR  -->
                "BAZ"
        $DATA
    },
    /* Test number: 3 */
    {
        "data": $DATA{ ,12}
            FOO<!-- BAR --! >BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"},
            {"line": 1, "col": 21, "id": "eof-in-comment"},
            {"line": 1, "col": 21, "id": "eof-in-comment"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  BAR --! >BAZ -->
        $DATA
    },
    /* Test number: 4 */
    {
        "data": $DATA{ ,12}
            FOO<!-- BAR --!
            >BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"},
            {"line": 2, "col": 5, "id": "eof-in-comment"},
            {"line": 2, "col": 5, "id": "eof-in-comment"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  BAR --!
            >BAZ -->
        $DATA
    },
    /* Test number: 5 */
    {
        "data": $DATA{ ,12}
            FOO<!-- BAR --   >BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"},
            {"line": 1, "col": 21, "id": "eof-in-comment"},
            {"line": 1, "col": 22, "id": "eof-in-comment"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  BAR --   >BAZ -->
        $DATA
    },
    /* Test number: 6 */
    {
        "data": $DATA{ ,12}
            FOO<!-- BAR -- <QUX> -- MUX -->BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  BAR -- <QUX> -- MUX  -->
                "BAZ"
        $DATA
    },
    /* Test number: 7 */
    {
        "data": $DATA{ ,12}
            FOO<!-- BAR -- <QUX> -- MUX --!>BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"},
            {"line": 1, "col": 31, "id": "unexpected-bang-after-double-dash-in-comment"},
            {"line": 1, "col": 32, "id": "incorrectly-closed-comment"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  BAR -- <QUX> -- MUX  -->
                "BAZ"
        $DATA
    },
    /* Test number: 8 */
    {
        "data": $DATA{ ,12}
            FOO<!-- BAR -- <QUX> -- MUX -- >BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"},
            {"line": 1, "col": 35, "id": "eof-in-comment"},
            {"line": 1, "col": 36, "id": "eof-in-comment"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  BAR -- <QUX> -- MUX -- >BAZ -->
        $DATA
    },
    /* Test number: 9 */
    {
        "data": $DATA{ ,12}
            FOO<!---->BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  -->
                "BAZ"
        $DATA
    },
    /* Test number: 10 */
    {
        "data": $DATA{ ,12}
            FOO<!--->BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"},
            {"line": 1, "col": 9, "id": "incorrect-comment"},
            {"line": 1, "col": 9, "id": "abrupt-closing-of-empty-comment"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  -->
                "BAZ"
        $DATA
    },
    /* Test number: 11 */
    {
        "data": $DATA{ ,12}
            FOO<!-->BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"},
            {"line": 1, "col": 8, "id": "incorrect-comment"},
            {"line": 1, "col": 8, "id": "abrupt-closing-of-empty-comment"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!--  -->
                "BAZ"
        $DATA
    },
    /* Test number: 12 */
    {
        "data": $DATA{ ,12}
            <?xml version="1.0">Hi
        $DATA,
        "errors": [
            {"line": 1, "col": 1, "id": "expected-tag-name-but-got-question-mark"},
            {"line": 1, "col": 22, "id": "expected-doctype-but-got-chars"},
            {"line": 1, "col": 2, "id": "unexpected-question-mark-instead-of-tag-name"}
        ],
        "result": $DATA{ ,12}
            <!-- ?xml version="1.0" -->
            <html>
              <head>
              <body>
                "Hi"
        $DATA
    },
    /* Test number: 13 */
    {
        "data": $DATA{ ,12}
            <?xml version="1.0">
        $DATA,
        "errors": [
            {"line": 1, "col": 1, "id": "expected-tag-name-but-got-question-mark"},
            {"line": 1, "col": 20, "id": "expected-doctype-but-got-eof"},
            {"line": 1, "col": 2, "id": "unexpected-question-mark-instead-of-tag-name"}
        ],
        "result": $DATA{ ,12}
            <!-- ?xml version="1.0" -->
            <html>
              <head>
              <body>
        $DATA
    },
    /* Test number: 14 */
    {
        "data": $DATA{ ,12}
            <?xml version
        $DATA,
        "errors": [
            {"line": 1, "col": 1, "id": "expected-tag-name-but-got-question-mark"},
            {"line": 1, "col": 13, "id": "expected-doctype-but-got-eof"},
            {"line": 1, "col": 2, "id": "unexpected-question-mark-instead-of-tag-name"}
        ],
        "result": $DATA{ ,12}
            <!-- ?xml version -->
            <html>
              <head>
              <body>
        $DATA
    },
    /* Test number: 15 */
    {
        "data": $DATA{ ,12}
            FOO<!----->BAZ
        $DATA,
        "errors": [
            {"line": 1, "col": 3, "id": "expected-doctype-but-got-chars"}
        ],
        "result": $DATA{ ,12}
            <html>
              <head>
              <body>
                "FOO"
                <!-- - -->
                "BAZ"
        $DATA
    },
    /* Test number: 16 */
    {
        "data": $DATA{ ,12}
            <html><!-- comment --><title>Comment before head</title>
        $DATA,
        "errors": [
            {"line": 1, "col": 6, "id": "expected-doctype-but-got-start-tag"}
        ],
        "result": $DATA{ ,12}
            <html>
              <!--  comment  -->
              <head>
                <title>
                  "Comment before head"
              <body>
        $DATA
    },
]