exports[`test comment-in-comment.input.json 1`] = `
Object {
  "code": "PUG:UNEXPECTED_TOKEN",
  "line": 2,
  "msg": "\`comment\` encountered when already in a comment",
}
`;

exports[`test comments.input.json 1`] = `
Array [
  Object {
    "line": 2,
    "type": "newline",
  },
  Object {
    "buffer": true,
    "line": 2,
    "type": "comment",
    "val": " foo",
  },
  Object {
    "line": 3,
    "type": "newline",
  },
  Object {
    "line": 3,
    "selfClosing": false,
    "type": "tag",
    "val": "ul",
  },
  Object {
    "line": 4,
    "type": "indent",
    "val": 2,
  },
  Object {
    "buffer": true,
    "line": 4,
    "type": "comment",
    "val": " bar",
  },
  Object {
    "line": 5,
    "type": "newline",
  },
  Object {
    "line": 5,
    "selfClosing": false,
    "type": "tag",
    "val": "li",
  },
  Object {
    "line": 5,
    "type": "text",
    "val": "one",
  },
  Object {
    "line": 6,
    "type": "newline",
  },
  Object {
    "buffer": true,
    "line": 6,
    "type": "comment",
    "val": " baz",
  },
  Object {
    "line": 7,
    "type": "newline",
  },
  Object {
    "line": 7,
    "selfClosing": false,
    "type": "tag",
    "val": "li",
  },
  Object {
    "line": 7,
    "type": "text",
    "val": "two",
  },
  Object {
    "line": 9,
    "type": "outdent",
  },
  Object {
    "buffer": true,
    "line": 9,
    "type": "comment",
    "val": "",
  },
  Object {
    "line": 9,
    "type": "start-pipeless-text",
  },
  Object {
    "line": 10,
    "type": "text",
    "val": "ul",
  },
  Object {
    "line": 11,
    "type": "newline",
  },
  Object {
    "line": 11,
    "type": "text",
    "val": "  li foo",
  },
  Object {
    "line": 12,
    "type": "newline",
  },
  Object {
    "line": 12,
    "type": "text",
    "val": "",
  },
  Object {
    "line": 12,
    "type": "end-pipeless-text",
  },
  Object {
    "line": 13,
    "type": "newline",
  },
  Object {
    "buffer": true,
    "line": 13,
    "type": "comment",
    "val": " block",
  },
  Object {
    "line": 13,
    "type": "start-pipeless-text",
  },
  Object {
    "line": 14,
    "type": "text",
    "val": "// inline follow",
  },
  Object {
    "line": 15,
    "type": "newline",
  },
  Object {
    "line": 15,
    "type": "text",
    "val": "li three",
  },
  Object {
    "line": 16,
    "type": "newline",
  },
  Object {
    "line": 16,
    "type": "text",
    "val": "",
  },
  Object {
    "line": 16,
    "type": "end-pipeless-text",
  },
  Object {
    "line": 17,
    "type": "newline",
  },
  Object {
    "buffer": true,
    "line": 17,
    "type": "comment",
    "val": " block",
  },
  Object {
    "line": 17,
    "type": "start-pipeless-text",
  },
  Object {
    "line": 18,
    "type": "text",
    "val": "// inline followed by tags",
  },
  Object {
    "line": 19,
    "type": "newline",
  },
  Object {
    "line": 19,
    "type": "text",
    "val": "ul",
  },
  Object {
    "line": 20,
    "type": "newline",
  },
  Object {
    "line": 20,
    "type": "text",
    "val": "  li four",
  },
  Object {
    "line": 21,
    "type": "newline",
  },
  Object {
    "line": 21,
    "type": "text",
    "val": "",
  },
  Object {
    "line": 21,
    "type": "end-pipeless-text",
  },
  Object {
    "line": 22,
    "type": "newline",
  },
  Object {
    "buffer": true,
    "line": 22,
    "type": "comment",
    "val": "if IE lt 9",
  },
  Object {
    "line": 22,
    "type": "start-pipeless-text",
  },
  Object {
    "line": 23,
    "type": "text",
    "val": "// inline",
  },
  Object {
    "line": 24,
    "type": "newline",
  },
  Object {
    "line": 24,
    "type": "text",
    "val": "script(src=\'/lame.js\')",
  },
  Object {
    "line": 25,
    "type": "newline",
  },
  Object {
    "line": 25,
    "type": "text",
    "val": "// end-inline",
  },
  Object {
    "line": 26,
    "type": "newline",
  },
  Object {
    "line": 26,
    "type": "text",
    "val": "",
  },
  Object {
    "line": 26,
    "type": "end-pipeless-text",
  },
  Object {
    "line": 27,
    "type": "newline",
  },
  Object {
    "line": 31,
    "type": "newline",
  },
  Object {
    "line": 32,
    "type": "newline",
  },
  Object {
    "line": 32,
    "type": "text",
    "val": " ",
  },
  Object {
    "line": 33,
    "type": "newline",
  },
  Object {
    "line": 33,
    "type": "text",
    "val": "asfd",
  },
  Object {
    "line": 35,
    "type": "newline",
  },
  Object {
    "line": 35,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 35,
    "type": "text",
    "val": "five",
  },
  Object {
    "line": 37,
    "type": "newline",
  },
  Object {
    "line": 37,
    "type": "class",
    "val": "foo",
  },
  Object {
    "line": 37,
    "type": "text",
    "val": "// not a comment",
  },
  Object {
    "line": 38,
    "type": "newline",
  },
  Object {
    "line": 38,
    "type": "eos",
  },
]
`;

exports[`test comments.input.json 2`] = `
Array [
  Object {
    "line": 2,
    "type": "newline",
  },
  Object {
    "line": 3,
    "type": "newline",
  },
  Object {
    "line": 3,
    "selfClosing": false,
    "type": "tag",
    "val": "ul",
  },
  Object {
    "line": 4,
    "type": "indent",
    "val": 2,
  },
  Object {
    "line": 5,
    "type": "newline",
  },
  Object {
    "line": 5,
    "selfClosing": false,
    "type": "tag",
    "val": "li",
  },
  Object {
    "line": 5,
    "type": "text",
    "val": "one",
  },
  Object {
    "line": 6,
    "type": "newline",
  },
  Object {
    "line": 7,
    "type": "newline",
  },
  Object {
    "line": 7,
    "selfClosing": false,
    "type": "tag",
    "val": "li",
  },
  Object {
    "line": 7,
    "type": "text",
    "val": "two",
  },
  Object {
    "line": 9,
    "type": "outdent",
  },
  Object {
    "line": 13,
    "type": "newline",
  },
  Object {
    "line": 17,
    "type": "newline",
  },
  Object {
    "line": 22,
    "type": "newline",
  },
  Object {
    "line": 27,
    "type": "newline",
  },
  Object {
    "buffer": false,
    "line": 27,
    "type": "comment",
    "val": "",
  },
  Object {
    "line": 28,
    "type": "text",
    "val": "",
  },
  Object {
    "line": 28,
    "type": "start-pipeless-text",
  },
  Object {
    "line": 29,
    "type": "text",
    "val": "asfd",
  },
  Object {
    "line": 30,
    "type": "newline",
  },
  Object {
    "line": 30,
    "type": "text",
    "val": "",
  },
  Object {
    "line": 30,
    "type": "end-pipeless-text",
  },
  Object {
    "line": 31,
    "type": "newline",
  },
  Object {
    "buffer": false,
    "line": 31,
    "type": "comment",
    "val": "",
  },
  Object {
    "line": 32,
    "type": "newline",
  },
  Object {
    "line": 32,
    "type": "text",
    "val": " ",
  },
  Object {
    "line": 33,
    "type": "newline",
  },
  Object {
    "line": 33,
    "type": "text",
    "val": "asfd",
  },
  Object {
    "line": 35,
    "type": "newline",
  },
  Object {
    "line": 35,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 35,
    "type": "text",
    "val": "five",
  },
  Object {
    "line": 37,
    "type": "newline",
  },
  Object {
    "line": 37,
    "type": "class",
    "val": "foo",
  },
  Object {
    "line": 37,
    "type": "text",
    "val": "// not a comment",
  },
  Object {
    "line": 38,
    "type": "newline",
  },
  Object {
    "line": 38,
    "type": "eos",
  },
]
`;

exports[`test comments.input.json 3`] = `
Array [
  Object {
    "line": 2,
    "type": "newline",
  },
  Object {
    "line": 3,
    "type": "newline",
  },
  Object {
    "line": 3,
    "selfClosing": false,
    "type": "tag",
    "val": "ul",
  },
  Object {
    "line": 4,
    "type": "indent",
    "val": 2,
  },
  Object {
    "line": 5,
    "type": "newline",
  },
  Object {
    "line": 5,
    "selfClosing": false,
    "type": "tag",
    "val": "li",
  },
  Object {
    "line": 5,
    "type": "text",
    "val": "one",
  },
  Object {
    "line": 6,
    "type": "newline",
  },
  Object {
    "line": 7,
    "type": "newline",
  },
  Object {
    "line": 7,
    "selfClosing": false,
    "type": "tag",
    "val": "li",
  },
  Object {
    "line": 7,
    "type": "text",
    "val": "two",
  },
  Object {
    "line": 9,
    "type": "outdent",
  },
  Object {
    "line": 13,
    "type": "newline",
  },
  Object {
    "line": 17,
    "type": "newline",
  },
  Object {
    "line": 22,
    "type": "newline",
  },
  Object {
    "line": 27,
    "type": "newline",
  },
  Object {
    "line": 31,
    "type": "newline",
  },
  Object {
    "line": 32,
    "type": "newline",
  },
  Object {
    "line": 32,
    "type": "text",
    "val": " ",
  },
  Object {
    "line": 33,
    "type": "newline",
  },
  Object {
    "line": 33,
    "type": "text",
    "val": "asfd",
  },
  Object {
    "line": 35,
    "type": "newline",
  },
  Object {
    "line": 35,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 35,
    "type": "text",
    "val": "five",
  },
  Object {
    "line": 37,
    "type": "newline",
  },
  Object {
    "line": 37,
    "type": "class",
    "val": "foo",
  },
  Object {
    "line": 37,
    "type": "text",
    "val": "// not a comment",
  },
  Object {
    "line": 38,
    "type": "newline",
  },
  Object {
    "line": 38,
    "type": "eos",
  },
]
`;

exports[`test comments.source.input.json 1`] = `
Array [
  Object {
    "line": 4,
    "type": "newline",
  },
  Object {
    "line": 6,
    "type": "newline",
  },
  Object {
    "line": 9,
    "type": "eos",
  },
]
`;

exports[`test comments.source.input.json 2`] = `
Array [
  Object {
    "buffer": false,
    "line": 1,
    "type": "comment",
    "val": "",
  },
  Object {
    "line": 1,
    "type": "start-pipeless-text",
  },
  Object {
    "line": 2,
    "type": "text",
    "val": "s/s.",
  },
  Object {
    "line": 3,
    "type": "newline",
  },
  Object {
    "line": 3,
    "type": "text",
    "val": "",
  },
  Object {
    "line": 3,
    "type": "end-pipeless-text",
  },
  Object {
    "line": 4,
    "type": "newline",
  },
  Object {
    "buffer": false,
    "line": 4,
    "type": "comment",
    "val": " test/cases/comments.source.pug",
  },
  Object {
    "line": 5,
    "type": "text",
    "val": "",
  },
  Object {
    "line": 6,
    "type": "newline",
  },
  Object {
    "buffer": false,
    "line": 6,
    "type": "comment",
    "val": "",
  },
  Object {
    "line": 6,
    "type": "start-pipeless-text",
  },
  Object {
    "line": 7,
    "type": "text",
    "val": "test/cases/comments.source.pug",
  },
  Object {
    "line": 8,
    "type": "newline",
  },
  Object {
    "line": 8,
    "type": "text",
    "val": "when",
  },
  Object {
    "line": 9,
    "type": "newline",
  },
  Object {
    "line": 9,
    "type": "text",
    "val": "()",
  },
  Object {
    "line": 9,
    "type": "end-pipeless-text",
  },
  Object {
    "line": 9,
    "type": "eos",
  },
]
`;

exports[`test comments.source.input.json 3`] = `
Array [
  Object {
    "line": 4,
    "type": "newline",
  },
  Object {
    "line": 6,
    "type": "newline",
  },
  Object {
    "line": 9,
    "type": "eos",
  },
]
`;

exports[`test comments-in-case.input.json 1`] = `
Array [
  Object {
    "line": 1,
    "type": "doctype",
    "val": "html",
  },
  Object {
    "line": 2,
    "type": "newline",
  },
  Object {
    "line": 2,
    "selfClosing": false,
    "type": "tag",
    "val": "html",
  },
  Object {
    "line": 3,
    "type": "indent",
    "val": 2,
  },
  Object {
    "line": 3,
    "selfClosing": false,
    "type": "tag",
    "val": "body",
  },
  Object {
    "line": 4,
    "type": "indent",
    "val": 3,
  },
  Object {
    "buffer": false,
    "escape": false,
    "line": 4,
    "type": "code",
    "val": "var s = \'this\'",
  },
  Object {
    "line": 5,
    "type": "newline",
  },
  Object {
    "line": 5,
    "type": "case",
    "val": "s",
  },
  Object {
    "line": 6,
    "type": "indent",
    "val": 5,
  },
  Object {
    "line": 7,
    "type": "newline",
  },
  Object {
    "line": 7,
    "type": "when",
    "val": "\'this\'",
  },
  Object {
    "line": 8,
    "type": "indent",
    "val": 7,
  },
  Object {
    "line": 8,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 8,
    "type": "text",
    "val": "It\'s this!",
  },
  Object {
    "line": 9,
    "type": "outdent",
  },
  Object {
    "line": 9,
    "type": "when",
    "val": "\'that\'",
  },
  Object {
    "line": 10,
    "type": "indent",
    "val": 7,
  },
  Object {
    "line": 10,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 10,
    "type": "text",
    "val": "It\'s that!",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "eos",
  },
]
`;

exports[`test comments-in-case.input.json 2`] = `
Array [
  Object {
    "line": 1,
    "type": "doctype",
    "val": "html",
  },
  Object {
    "line": 2,
    "type": "newline",
  },
  Object {
    "line": 2,
    "selfClosing": false,
    "type": "tag",
    "val": "html",
  },
  Object {
    "line": 3,
    "type": "indent",
    "val": 2,
  },
  Object {
    "line": 3,
    "selfClosing": false,
    "type": "tag",
    "val": "body",
  },
  Object {
    "line": 4,
    "type": "indent",
    "val": 3,
  },
  Object {
    "buffer": false,
    "escape": false,
    "line": 4,
    "type": "code",
    "val": "var s = \'this\'",
  },
  Object {
    "line": 5,
    "type": "newline",
  },
  Object {
    "line": 5,
    "type": "case",
    "val": "s",
  },
  Object {
    "line": 6,
    "type": "indent",
    "val": 5,
  },
  Object {
    "buffer": false,
    "line": 6,
    "type": "comment",
    "val": " Comment",
  },
  Object {
    "line": 7,
    "type": "newline",
  },
  Object {
    "line": 7,
    "type": "when",
    "val": "\'this\'",
  },
  Object {
    "line": 8,
    "type": "indent",
    "val": 7,
  },
  Object {
    "line": 8,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 8,
    "type": "text",
    "val": "It\'s this!",
  },
  Object {
    "line": 9,
    "type": "outdent",
  },
  Object {
    "line": 9,
    "type": "when",
    "val": "\'that\'",
  },
  Object {
    "line": 10,
    "type": "indent",
    "val": 7,
  },
  Object {
    "line": 10,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 10,
    "type": "text",
    "val": "It\'s that!",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "eos",
  },
]
`;

exports[`test comments-in-case.input.json 3`] = `
Array [
  Object {
    "line": 1,
    "type": "doctype",
    "val": "html",
  },
  Object {
    "line": 2,
    "type": "newline",
  },
  Object {
    "line": 2,
    "selfClosing": false,
    "type": "tag",
    "val": "html",
  },
  Object {
    "line": 3,
    "type": "indent",
    "val": 2,
  },
  Object {
    "line": 3,
    "selfClosing": false,
    "type": "tag",
    "val": "body",
  },
  Object {
    "line": 4,
    "type": "indent",
    "val": 3,
  },
  Object {
    "buffer": false,
    "escape": false,
    "line": 4,
    "type": "code",
    "val": "var s = \'this\'",
  },
  Object {
    "line": 5,
    "type": "newline",
  },
  Object {
    "line": 5,
    "type": "case",
    "val": "s",
  },
  Object {
    "line": 6,
    "type": "indent",
    "val": 5,
  },
  Object {
    "line": 7,
    "type": "newline",
  },
  Object {
    "line": 7,
    "type": "when",
    "val": "\'this\'",
  },
  Object {
    "line": 8,
    "type": "indent",
    "val": 7,
  },
  Object {
    "line": 8,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 8,
    "type": "text",
    "val": "It\'s this!",
  },
  Object {
    "line": 9,
    "type": "outdent",
  },
  Object {
    "line": 9,
    "type": "when",
    "val": "\'that\'",
  },
  Object {
    "line": 10,
    "type": "indent",
    "val": 7,
  },
  Object {
    "line": 10,
    "selfClosing": false,
    "type": "tag",
    "val": "p",
  },
  Object {
    "line": 10,
    "type": "text",
    "val": "It\'s that!",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "outdent",
  },
  Object {
    "line": 10,
    "type": "eos",
  },
]
`;

exports[`test end.input.json 1`] = `
Object {
  "code": "PUG:UNEXPECTED_TOKEN",
  "line": 4,
  "msg": "\`end-pipeless-text\` encountered when not in pipeless text mode",
}
`;

exports[`test startstart.input.json 1`] = `
Object {
  "code": "PUG:UNEXPECTED_TOKEN",
  "line": 3,
  "msg": "\`start-pipeless-text\` encountered when already in pipeless text mode",
}
`;