diff options
author | Rupinder Singh Khokhar <rsk1coder99@gmail.com> | 2014-06-11 09:13:22 +0530 |
---|---|---|
committer | Rupinder Singh Khokhar <rsk1coder99@gmail.com> | 2014-06-11 09:17:12 +0530 |
commit | 42543b07806ca9b9bec73eda91afa657f57c64bc (patch) | |
tree | b08ae0c9371865989ab6a9abb025346a3dbd1204 | |
parent | 7630ae893aad7fbb168d073f405cfa2110ccb530 (diff) | |
download | libhubbub-rupindersingh/test.tar.gz |
Adding the latest test files without fixing the INDEXes or the test interfacesrupindersingh/test
99 files changed, 73246 insertions, 4999 deletions
diff --git a/test/data/AUTHORS.rst b/test/data/AUTHORS.rst new file mode 100644 index 0000000..4a7de17 --- /dev/null +++ b/test/data/AUTHORS.rst @@ -0,0 +1,34 @@ +Credits +======= + +The ``html5lib`` test data is maintained by: + +- James Graham +- Geoffrey Sneddon + + +Contributors +------------ + +- Adam Barth +- Andi Sidwell +- Anne van Kesteren +- David Flanagan +- Edward Z. Yang +- Geoffrey Sneddon +- Henri Sivonen +- Ian Hickson +- Jacques Distler +- James Graham +- Lachlan Hunt +- lantis63 +- Mark Pilgrim +- Mats Palmgren +- Ms2ger +- Nolan Waite +- Philip Taylor +- Rafael Weinstein +- Ryan King +- Sam Ruby +- Simon Pieters +- Thomas Broyer diff --git a/test/data/encoding/chardet/test_big5.txt b/test/data/encoding/chardet/test_big5.txt new file mode 100644 index 0000000..91074c9 --- /dev/null +++ b/test/data/encoding/chardet/test_big5.txt @@ -0,0 +1,51 @@ +老子《道德經》 第一~四十章 + +老子道經 + +第一章 + +道可道,非常道。名可名,非常名。無,名天地之始﹔有,名萬物之母。 +故常無,欲以觀其妙;常有,欲以觀其徼。此兩者,同出而異名,同謂之 +玄。玄之又玄,眾妙之門。 + +第二章 + +天下皆知美之為美,斯惡矣﹔皆知善之為善,斯不善矣。故有無相生,難 +易相成,長短相形,高下相傾,音聲相和,前後相隨。是以聖人處「無為 +」之事,行「不言」之教。萬物作焉而不辭,生而不有,為而不恃,功成 +而弗居。夫唯弗居,是以不去。 + +第三章 + +不尚賢,使民不爭﹔不貴難得之貨,使民不為盜﹔不見可欲,使民心不亂 +。是以「聖人」之治,虛其心,實其腹,弱其志,強其骨。常使民無知無 +欲。使夫智者不敢為也。為「無為」,則無不治。 + +第四章 + +「道」沖,而用之或不盈。淵兮,似萬物之宗﹔挫其銳,解其紛,和其光 +,同其塵﹔湛兮似或存。吾不知誰之子?象帝之先。 + +第五章 + +天地不仁,以萬物為芻狗﹔聖人不仁,以百姓為芻狗。天地之間,其猶橐 +蘥乎?虛而不屈,動而愈出。多言數窮,不如守中。 + +第六章 + +谷神不死,是謂玄牝。玄牝之門,是謂天地根。綿綿若存,用之不勤。 + +第七章 + +天長地久。天地所以能長且久者,以其不自生,故能長久。是以聖人後其 +身而身先,外其身而身存。非以其無私邪?故能成其私。 + +第八章 + +上善若水。水善利萬物而不爭。處眾人之所惡,故幾於道。居善地,心善 +淵,與善仁,言善信,政善治,事善能,動善時。夫唯不爭,故無尤。 + +第九章 + +持而盈之,不如其已﹔揣而銳之,不可長保。金玉滿堂,莫之能守﹔富貴 +而驕,自遺其咎。功遂身退,天之道。 diff --git a/test/data/encoding/test-yahoo-jp.dat b/test/data/encoding/test-yahoo-jp.dat new file mode 100644 index 0000000..3c25ecb --- /dev/null +++ b/test/data/encoding/test-yahoo-jp.dat @@ -0,0 +1,10 @@ +#data +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> +<!--鈭--> +<title>Yahoo! JAPAN</title> +<meta name="description" content="交祆憭抒柴潦踴怒萸扎璊蝝U芥潦胯瑯扼喋乓潦嫘∼潦怒喋乓瑯扼喋啜芥80隞乩柴萸潦嫘撅芥桃瘣颯鞊怒押扎颯具喋詻喋格艾整"> +<style type="text/css" media="all"> +#encoding +euc_jp diff --git a/test/data/encoding/tests1.dat b/test/data/encoding/tests1.dat new file mode 100644 index 0000000..5b585e7 --- /dev/null +++ b/test/data/encoding/tests1.dat @@ -0,0 +1,394 @@ +#data +<!DOCTYPE HTML> +<!-- (control test - for the other tests to work, this should pass - you may have to set your defaults appropriately) --> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta charset="ISO-8859-1"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta charset='iso8859-2'> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta charset=iso8859-2> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta +charset=iso8859-2> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<metacharset=iso8859-2> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta http-equiv="Content-Type" content="text/html; charset=iso8859-2"> +<!-- XXX this is a tough one, not sure how to do this one, unless we explictly do content= processing --> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type"> +<!-- XXX this is a tough one, not sure how to do this one, unless we explictly do content= processing --> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta http-equiv="Content-Type" content=text/html; charset=iso8859-2> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta http-equiv="Content-Type content="text/html; charset=iso8859-2"> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta http-equiv="Content-Type " content="text/html; charset=iso8859-2"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type "> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta http-equiv="Content-Type>" content="text/html; charset=iso8859-2"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta content="text/html; charset=iso8859-2" http-equiv="Content-Type>"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta http-equiv="Content-Style-Type" content="text/html; charset=iso8859-2"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta content="text/html; charset=iso8859-2" http-equiv="Content-Style-Type"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta name="Content-Style-Type" content="text/html; charset=iso8859-2"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta content="text/html; charset=iso8859-2" name="Content-Style-Type"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta content="text/html; charset=iso8859-2"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta content=" text/html; charset = iso8859-2 "> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta content=" +text/html; charset=iso8859-2 +" http-equiv="Content-Type"> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta charset=" +iso8859-2 +"> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta charset= +iso8859-2 +> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta charset="iso8859-2> +<p>"</p> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta charset=iso8859-2"> +<p>"</p> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta " charset=iso8859-2> +<p>"</p> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta test" charset=iso8859-2> +<p>"</p> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta test=" charset=iso8859-2> +<p>"</p> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta test="' charset=iso8859-2> +<p>"'</p> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta test='" charset=iso8859-2> +<p>'"</p> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta test="" charset=iso8859-2> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta test=x" charset=iso8859-2> +<p>"</p> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<head></head><p title="x> +<meta test=x" charset=iso8859-2> +<p>"</p> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<head></head><p title="x> +<meta test=x charset=iso8859-2> +<p>"</p> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<head></head><p title="x> +<meta charset=iso8859-2> +<p>"</p> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<head></head><p title="x>"> +<meta charset=iso8859-2> +<p>"</p> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta charset="ISO-8859-1"> +<meta charset="iso8859-2"> +#encoding +Windows-1252 + +#data +<!DOCTYPE HTML> +<meta charset="iso8859-2"> +<meta charset="ISO-8859-1"> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<!--<meta charset="ISO-8859-1">--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<!--<meta charset="iso8859-2">--> +<meta charset="ISO-8859-1"> +#encoding +Windows-1252 + +#data +嚜<!DOCTYPE HTML> +<!-- Starts with UTF-8 BOM --> +#encoding +UTF-8 + +#data +嚜<!DOCTYPE HTML> +<meta charset="ISO-8859-1"> +<!-- Starts with UTF-8 BOM --> +#encoding +UTF-8 + +#data +<!-- 511 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 512 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 1024 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 1025 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 2048 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 2049 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 4096 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 4097 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 8192 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- 8193 characters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxz--> +<meta charset="iso8859-2"> +#encoding +iso8859-2 + +#data +<!-- multi-script test --> +<script>alert('step 1 of 3 ("")')</script> +<!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ --> +<script>alert('step 2 of 3 ("")')</script> +<meta charset="iso8859-2"> +<script>alert('step 3 of 3 ("")')</script> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<script>document.write('<meta charset="ISO-8859-' + '2">')</script> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<script>document.write('<meta charset="iso8859-2">')</script> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<script type="text/plain"><meta charset="iso8859-2"></script> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<style type="text/plain"><meta charset="iso8859-2"></style> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<p><meta charset="iso8859-2"></p> +#encoding +iso8859-2 + +#data +<!DOCTYPE HTML> +<meta charset="bogus"> +<meta charset="iso8859-2"> +#encoding +iso8859-2 diff --git a/test/data/encoding/tests2.dat b/test/data/encoding/tests2.dat new file mode 100644 index 0000000..eee4498 --- /dev/null +++ b/test/data/encoding/tests2.dat @@ -0,0 +1,115 @@ +#data +<meta +#encoding +windows-1252 + +#data +< +#encoding +windows-1252 + +#data +<! +#encoding +windows-1252 + +#data +<meta charset = " +#encoding +windows-1252 + +#data +<meta charset=euc_jp +#encoding +windows-1252 + +#data +<meta <meta charset='euc_jp'> +#encoding +euc_jp + +#data +<meta charset = 'euc_jp'> +#encoding +euc_jp + +#data +<!-- --> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +#encoding +utf-8 + +#data +<!-- --> +<meta http-equiv="Content-Type" content="text/html; charset=utf +#encoding +windows-1252 + +#data +<meta http-equiv="Content-Type<meta charset="utf-8"> +#encoding +windows-1252 + +#data +<meta http-equiv="Content-Type" content="text/html; charset='utf-8'"> +#encoding +utf-8 + +#data +<meta http-equiv="Content-Type" content="text/html; charset='utf-8"> +#encoding +windows-1252 + +#data +<meta +#encoding +windows-1252 + +#data +<meta charset = +#encoding +windows-1252 + +#data +<meta charset= utf-8 +> +#encoding +utf-8 + +#data +<meta content = "text/html; +#encoding +windows-1252 + +#data +<meta charset="UTF-16"> +#encoding +utf-8 + +#data +<meta charset="UTF-16LE"> +#encoding +utf-8 + +#data +<meta charset="UTF-16BE"> +#encoding +utf-8 + +#data +<html a=簽> +<meta charset="utf-8"> +#encoding +utf-8 + +#data +<html 簽> +<meta charset="utf-8"> +#encoding +utf-8 + +#data +<html>簽 +<meta charset="utf-8"> +#encoding +utf-8 diff --git a/test/data/sanitizer/tests1.dat b/test/data/sanitizer/tests1.dat new file mode 100644 index 0000000..c741cb8 --- /dev/null +++ b/test/data/sanitizer/tests1.dat @@ -0,0 +1,501 @@ +[ + { + "name": "IE_Comments", + "input": "<!--[if gte IE 4]><script>alert('XSS');</script><![endif]-->", + "output": "" + }, + + { + "name": "IE_Comments_2", + "input": "<![if !IE 5]><script>alert('XSS');</script><![endif]>", + "output": "<script>alert('XSS');</script>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "allow_colons_in_path_component", + "input": "<a href=\"./this:that\">foo</a>", + "output": "<a href='./this:that'>foo</a>" + }, + + { + "name": "background_attribute", + "input": "<div background=\"javascript:alert('XSS')\"></div>", + "output": "<div/>", + "xhtml": "<div></div>", + "rexml": "<div></div>" + }, + + { + "name": "bgsound", + "input": "<bgsound src=\"javascript:alert('XSS');\" />", + "output": "<bgsound src=\"javascript:alert('XSS');\"/>", + "rexml": "<bgsound src=\"javascript:alert('XSS');\"></bgsound>" + }, + + { + "name": "div_background_image_unicode_encoded", + "input": "<div style=\"background-image:\u00a5\u00a2\u006C\u0028'\u006a\u0061\u00a6\u0061\u00a3\u0063\u00a2\u0069\u00a0\u00a4\u003a\u0061\u006c\u0065\u00a2\u00a4\u0028.1027\u0058.1053\u0053\u0027\u0029'\u0029\">foo</div>", + "output": "<div style=''>foo</div>" + }, + + { + "name": "div_expression", + "input": "<div style=\"width: expression(alert('XSS'));\">foo</div>", + "output": "<div style=''>foo</div>" + }, + + { + "name": "double_open_angle_brackets", + "input": "<img src=http://ha.ckers.org/scriptlet.html <", + "output": "<img src='http://ha.ckers.org/scriptlet.html'>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "double_open_angle_brackets_2", + "input": "<script src=http://ha.ckers.org/scriptlet.html <", + "output": "<script src=\"http://ha.ckers.org/scriptlet.html\" <=\"\">", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "grave_accents", + "input": "<img src=`javascript:alert('XSS')` />", + "output": "<img/>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "img_dynsrc_lowsrc", + "input": "<img dynsrc=\"javascript:alert('XSS')\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "img_vbscript", + "input": "<img src='vbscript:msgbox(\"XSS\")' />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "input_image", + "input": "<input type=\"image\" src=\"javascript:alert('XSS');\" />", + "output": "<input type='image'/>", + "rexml": "<input type='image' />" + }, + + { + "name": "link_stylesheets", + "input": "<link rel=\"stylesheet\" href=\"javascript:alert('XSS');\" />", + "output": "<link rel=\"stylesheet\" href=\"javascript:alert('XSS');\"/>", + "rexml": "<link href=\"javascript:alert('XSS');\" rel=\"stylesheet\"/>" + }, + + { + "name": "link_stylesheets_2", + "input": "<link rel=\"stylesheet\" href=\"http://ha.ckers.org/xss.css\" />", + "output": "<link rel=\"stylesheet\" href=\"http://ha.ckers.org/xss.css\"/>", + "rexml": "<link href=\"http://ha.ckers.org/xss.css\" rel=\"stylesheet\"/>" + }, + + { + "name": "list_style_image", + "input": "<li style=\"list-style-image: url(javascript:alert('XSS'))\">foo</li>", + "output": "<li style=''>foo</li>" + }, + + { + "name": "no_closing_script_tags", + "input": "<script src=http://ha.ckers.org/xss.js?<b>", + "output": "<script src=\"http://ha.ckers.org/xss.js?&lt;b\">", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "non_alpha_non_digit", + "input": "<script/XSS src=\"http://ha.ckers.org/xss.js\"></script>", + "output": "<script XSS=\"\" src=\"http://ha.ckers.org/xss.js\"></script>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "non_alpha_non_digit_2", + "input": "<a onclick!\\#$%&()*~+-_.,:;?@[/|\\]^`=alert(\"XSS\")>foo</a>", + "output": "<a>foo</a>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "non_alpha_non_digit_3", + "input": "<img/src=\"http://ha.ckers.org/xss.js\"/>", + "output": "<img src='http://ha.ckers.org/xss.js'/>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "non_alpha_non_digit_II", + "input": "<a href!\\#$%&()*~+-_.,:;?@[/|]^`=alert('XSS')>foo</a>", + "output": "<a>foo</a>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "non_alpha_non_digit_III", + "input": "<a/href=\"javascript:alert('XSS');\">foo</a>", + "output": "<a>foo</a>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "platypus", + "input": "<a href=\"http://www.ragingplatypus.com/\" style=\"display:block; position:absolute; left:0; top:0; width:100%; height:100%; z-index:1; background-color:black; background-image:url(http://www.ragingplatypus.com/i/cam-full.jpg); background-x:center; background-y:center; background-repeat:repeat;\">never trust your upstream platypus</a>", + "output": "<a href='http://www.ragingplatypus.com/' style='display: block; width: 100%; height: 100%; background-color: black; background-x: center; background-y: center;'>never trust your upstream platypus</a>" + }, + + { + "name": "protocol_resolution_in_script_tag", + "input": "<script src=//ha.ckers.org/.j></script>", + "output": "<script src=\"//ha.ckers.org/.j\"></script>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_allow_anchors", + "input": "<a href='foo' onclick='bar'><script>baz</script></a>", + "output": "<a href='foo'><script>baz</script></a>" + }, + + { + "name": "should_allow_image_alt_attribute", + "input": "<img alt='foo' onclick='bar' />", + "output": "<img alt='foo'/>", + "rexml": "<img alt='foo' />" + }, + + { + "name": "should_allow_image_height_attribute", + "input": "<img height='foo' onclick='bar' />", + "output": "<img height='foo'/>", + "rexml": "<img height='foo' />" + }, + + { + "name": "should_allow_image_src_attribute", + "input": "<img src='foo' onclick='bar' />", + "output": "<img src='foo'/>", + "rexml": "<img src='foo' />" + }, + + { + "name": "should_allow_image_width_attribute", + "input": "<img width='foo' onclick='bar' />", + "output": "<img width='foo'/>", + "rexml": "<img width='foo' />" + }, + + { + "name": "should_handle_blank_text", + "input": "", + "output": "" + }, + + { + "name": "should_handle_malformed_image_tags", + "input": "<img \"\"\"><script>alert(\"XSS\")</script>\">", + "output": "<img/><script>alert(\"XSS\")</script>\">", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_handle_non_html", + "input": "abc", + "output": "abc" + }, + + { + "name": "should_not_fall_for_ridiculous_hack", + "input": "<img\nsrc\n=\n\"\nj\na\nv\na\ns\nc\nr\ni\np\nt\n:\na\nl\ne\nr\nt\n(\n'\nX\nS\nS\n'\n)\n\"\n />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_0", + "input": "<img src=\"javascript:alert('XSS');\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_1", + "input": "<img src=javascript:alert('XSS') />", + "output": "<img/>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_not_fall_for_xss_image_hack_10", + "input": "<img src=\"jav
ascript:alert('XSS');\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_11", + "input": "<img src=\"jav
ascript:alert('XSS');\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_12", + "input": "<img src=\"  javascript:alert('XSS');\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_13", + "input": "<img src=\" javascript:alert('XSS');\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_14", + "input": "<img src=\" javascript:alert('XSS');\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_2", + "input": "<img src=\"JaVaScRiPt:alert('XSS')\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_3", + "input": "<img src='javascript:alert("XSS")' />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_4", + "input": "<img src='javascript:alert(String.fromCharCode(88,83,83))' />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_5", + "input": "<img src='javascript:alert('XSS')' />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_6", + "input": "<img src='javascript:alert('XSS')' />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_7", + "input": "<img src='javascript:alert('XSS')' />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_8", + "input": "<img src=\"jav\tascript:alert('XSS');\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_not_fall_for_xss_image_hack_9", + "input": "<img src=\"jav	ascript:alert('XSS');\" />", + "output": "<img/>", + "rexml": "<img />" + }, + + { + "name": "should_sanitize_half_open_scripts", + "input": "<img src=\"javascript:alert('XSS')\"", + "output": "<img/>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_sanitize_invalid_script_tag", + "input": "<script/XSS SRC=\"http://ha.ckers.org/xss.js\"></script>", + "output": "<script XSS=\"\" SRC=\"http://ha.ckers.org/xss.js\"></script>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_sanitize_script_tag_with_multiple_open_brackets", + "input": "<<script>alert(\"XSS\");//<</script>", + "output": "<<script>alert(\"XSS\");//<</script>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_sanitize_script_tag_with_multiple_open_brackets_2", + "input": "<iframe src=http://ha.ckers.org/scriptlet.html\n<", + "output": "<iframe src=\"http://ha.ckers.org/scriptlet.html\" <=\"\">", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_sanitize_tag_broken_up_by_null", + "input": "<scr\u0000ipt>alert(\"XSS\")</scr\u0000ipt>", + "output": "<scr\ufffdipt>alert(\"XSS\")</scr\ufffdipt>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_sanitize_unclosed_script", + "input": "<script src=http://ha.ckers.org/xss.js?<b>", + "output": "<script src=\"http://ha.ckers.org/xss.js?&lt;b\">", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "should_strip_href_attribute_in_a_with_bad_protocols", + "input": "<a href=\"javascript:XSS\" title=\"1\">boo</a>", + "output": "<a title='1'>boo</a>" + }, + + { + "name": "should_strip_href_attribute_in_a_with_bad_protocols_and_whitespace", + "input": "<a href=\" javascript:XSS\" title=\"1\">boo</a>", + "output": "<a title='1'>boo</a>" + }, + + { + "name": "should_strip_src_attribute_in_img_with_bad_protocols", + "input": "<img src=\"javascript:XSS\" title=\"1\">boo</img>", + "output": "<img title='1'/>boo", + "rexml": "<img title='1' />" + }, + + { + "name": "should_strip_src_attribute_in_img_with_bad_protocols_and_whitespace", + "input": "<img src=\" javascript:XSS\" title=\"1\">boo</img>", + "output": "<img title='1'/>boo", + "rexml": "<img title='1' />" + }, + + { + "name": "xml_base", + "input": "<div xml:base=\"javascript:alert('XSS');//\">foo</div>", + "output": "<div>foo</div>" + }, + + { + "name": "xul", + "input": "<p style=\"-moz-binding:url('http://ha.ckers.org/xssmoz.xml#xss')\">fubar</p>", + "output": "<p style=''>fubar</p>" + }, + + { + "name": "quotes_in_attributes", + "input": "<img src='foo' title='\"foo\" bar' />", + "rexml": "<img src='foo' title='\"foo\" bar' />", + "output": "<img title='"foo" bar' src='foo'/>" + }, + + { + "name": "uri_refs_in_svg_attributes", + "input": "<rect fill='url(#foo)' />", + "rexml": "<rect fill='url(#foo)'></rect>", + "xhtml": "<rect fill='url(#foo)'></rect>", + "output": "<rect fill='url(#foo)'/>" + }, + + { + "name": "absolute_uri_refs_in_svg_attributes", + "input": "<rect fill='url(http://bad.com/) #fff' />", + "rexml": "<rect fill=' #fff'></rect>", + "xhtml": "<rect fill=' #fff'></rect>", + "output": "<rect fill=' #fff'/>" + }, + + { + "name": "uri_ref_with_space_in svg_attribute", + "input": "<rect fill='url(\n#foo)' />", + "rexml": "<rect fill='url(\n#foo)'></rect>", + "xhtml": "<rect fill='url(\n#foo)'></rect>", + "output": "<rect fill='url(\n#foo)'/>" + }, + + { + "name": "absolute_uri_ref_with_space_in svg_attribute", + "input": "<rect fill=\"url(\nhttp://bad.com/)\" />", + "rexml": "<rect fill=' '></rect>", + "xhtml": "<rect fill=' '></rect>", + "output": "<rect fill=' '/>" + }, + + { + "name": "allow_html5_image_tag", + "input": "<image src='foo' />", + "rexml": "<image src=\"foo\"></image>", + "output": "<image src=\"foo\"/>" + }, + + { + "name": "style_attr_end_with_nothing", + "input": "<div style=\"color: blue\" />", + "output": "<div style='color: blue;'/>", + "xhtml": "<div style='color: blue;'></div>", + "rexml": "<div style='color: blue;'></div>" + }, + + { + "name": "style_attr_end_with_space", + "input": "<div style=\"color: blue \" />", + "output": "<div style='color: blue ;'/>", + "xhtml": "<div style='color: blue ;'></div>", + "rexml": "<div style='color: blue ;'></div>" + }, + + { + "name": "style_attr_end_with_semicolon", + "input": "<div style=\"color: blue;\" />", + "output": "<div style='color: blue;'/>", + "xhtml": "<div style='color: blue;'></div>", + "rexml": "<div style='color: blue;'></div>" + }, + + { + "name": "style_attr_end_with_semicolon_space", + "input": "<div style=\"color: blue; \" />", + "output": "<div style='color: blue;'/>", + "xhtml": "<div style='color: blue;'></div>", + "rexml": "<div style='color: blue;'></div>" + }, + + { + "name": "attributes_with_embedded_quotes", + "input": "<img src=doesntexist.jpg\"'onerror=\"alert(1) />", + "output": "<img src='doesntexist.jpg"'onerror="alert(1)'/>", + "rexml": "Ill-formed XHTML!" + }, + + { + "name": "attributes_with_embedded_quotes_II", + "input": "<img src=notthere.jpg\"\"onerror=\"alert(2) />", + "output": "<img src='notthere.jpg""onerror="alert(2)'/>", + "rexml": "Ill-formed XHTML!" + } +] diff --git a/test/data/serializer/core.test b/test/data/serializer/core.test new file mode 100644 index 0000000..c0b4222 --- /dev/null +++ b/test/data/serializer/core.test @@ -0,0 +1,125 @@ +{"tests": [
+
+{"description": "proper attribute value escaping",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "test \"with\" ""}]]],
+ "expected": ["<span title='test \"with\" &quot;'>"]
+},
+
+{"description": "proper attribute value non-quoting",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo"}]]],
+ "expected": ["<span title=foo>"],
+ "xhtml": ["<span title=\"foo\">"]
+},
+
+{"description": "proper attribute value non-quoting (with <)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo<bar"}]]],
+ "expected": ["<span title=foo<bar>"],
+ "xhtml": ["<span title=\"foo<bar\">"]
+},
+
+{"description": "proper attribute value quoting (with =)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo=bar"}]]],
+ "expected": ["<span title=\"foo=bar\">"]
+},
+
+{"description": "proper attribute value quoting (with >)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo>bar"}]]],
+ "expected": ["<span title=\"foo>bar\">"]
+},
+
+{"description": "proper attribute value quoting (with \")",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\"bar"}]]],
+ "expected": ["<span title='foo\"bar'>"]
+},
+
+{"description": "proper attribute value quoting (with ')",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar"}]]],
+ "expected": ["<span title=\"foo'bar\">"]
+},
+
+{"description": "proper attribute value quoting (with both \" and ')",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo'bar\"baz"}]]],
+ "expected": ["<span title=\"foo'bar"baz\">"]
+},
+
+{"description": "proper attribute value quoting (with space)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo bar"}]]],
+ "expected": ["<span title=\"foo bar\">"]
+},
+
+{"description": "proper attribute value quoting (with tab)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\tbar"}]]],
+ "expected": ["<span title=\"foo\tbar\">"]
+},
+
+{"description": "proper attribute value quoting (with LF)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\nbar"}]]],
+ "expected": ["<span title=\"foo\nbar\">"]
+},
+
+{"description": "proper attribute value quoting (with CR)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\rbar"}]]],
+ "expected": ["<span title=\"foo\rbar\">"]
+},
+
+{"description": "proper attribute value non-quoting (with linetab)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Bbar"}]]],
+ "expected": ["<span title=foo\u000Bbar>"],
+ "xhtml": ["<span title=\"foo\u000Bbar\">"]
+},
+
+{"description": "proper attribute value quoting (with form feed)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "foo\u000Cbar"}]]],
+ "expected": ["<span title=\"foo\u000Cbar\">"]
+},
+
+{"description": "void element (as EmptyTag token)",
+ "input": [["EmptyTag", "img", {}]],
+ "expected": ["<img>"],
+ "xhtml": ["<img />"]
+},
+
+{"description": "void element (as StartTag token)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "img", {}]],
+ "expected": ["<img>"],
+ "xhtml": ["<img />"]
+},
+
+{"description": "doctype in error",
+ "input": [["Doctype", "foo"]],
+ "expected": ["<!DOCTYPE foo>"]
+},
+
+{"description": "character data",
+ "options": {"encoding":"utf-8"},
+ "input": [["Characters", "a<b>c&d"]],
+ "expected": ["a<b>c&d"]
+},
+
+{"description": "rcdata",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "a<b>c&d"]],
+ "expected": ["<script>a<b>c&d"],
+ "xhtml": ["<script>a<b>c&d"]
+},
+
+{"description": "doctype",
+ "input": [["Doctype", "HTML"]],
+ "expected": ["<!DOCTYPE HTML>"]
+},
+
+{"description": "HTML 4.01 DOCTYPE",
+ "input": [["Doctype", "HTML", "-//W3C//DTD HTML 4.01//EN", "http://www.w3.org/TR/html4/strict.dtd"]],
+ "expected": ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">"]
+},
+
+{"description": "HTML 4.01 DOCTYPE without system identifer",
+ "input": [["Doctype", "HTML", "-//W3C//DTD HTML 4.01//EN"]],
+ "expected": ["<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">"]
+},
+
+{"description": "IBM DOCTYPE without public identifer",
+ "input": [["Doctype", "html", "", "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"]],
+ "expected": ["<!DOCTYPE html SYSTEM \"http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd\">"]
+}
+
+]}
diff --git a/test/data/serializer/injectmeta.test b/test/data/serializer/injectmeta.test new file mode 100644 index 0000000..feaaa44 --- /dev/null +++ b/test/data/serializer/injectmeta.test @@ -0,0 +1,66 @@ +{"tests": [
+
+{"description": "no encoding",
+ "options": {"inject_meta_charset": true},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": [""],
+ "xhtml": ["<head></head>"]
+},
+
+{"description": "empytag head",
+ "options": {"inject_meta_charset": true, "encoding":"utf-8"},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": ["<meta charset=utf-8>"],
+ "xhtml": ["<head><meta charset=\"utf-8\" /></head>"]
+},
+
+{"description": "head w/title",
+ "options": {"inject_meta_charset": true, "encoding":"utf-8"},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["StartTag", "http://www.w3.org/1999/xhtml","title",{}], ["Characters", "foo"],["EndTag", "http://www.w3.org/1999/xhtml", "title"], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": ["<meta charset=utf-8><title>foo</title>"],
+ "xhtml": ["<head><meta charset=\"utf-8\" /><title>foo</title></head>"]
+},
+
+{"description": "head w/meta-charset",
+ "options": {"inject_meta_charset": true, "encoding":"utf-8"},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": ["<meta charset=utf-8>"],
+ "xhtml": ["<head><meta charset=\"utf-8\" /></head>"]
+},
+
+{"description": "head w/ two meta-charset",
+ "options": {"inject_meta_charset": true, "encoding":"utf-8"},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": ["<meta charset=utf-8><meta charset=utf-8>", "<head><meta charset=utf-8><meta charset=ascii>"],
+ "xhtml": ["<head><meta charset=\"utf-8\" /><meta charset=\"utf-8\" /></head>", "<head><meta charset=\"utf-8\" /><meta charset=\"ascii\" /></head>"]
+},
+
+{"description": "head w/robots",
+ "options": {"inject_meta_charset": true, "encoding":"utf-8"},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": ["<meta charset=utf-8><meta content=noindex name=robots>"],
+ "xhtml": ["<head><meta charset=\"utf-8\" /><meta content=\"noindex\" name=\"robots\" /></head>"]
+},
+
+{"description": "head w/robots & charset",
+ "options": {"inject_meta_charset": true, "encoding":"utf-8"},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EmptyTag","meta",[{"namespace": null, "name": "charset", "value": "ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": ["<meta content=noindex name=robots><meta charset=utf-8>"],
+ "xhtml": ["<head><meta content=\"noindex\" name=\"robots\" /><meta charset=\"utf-8\" /></head>"]
+},
+
+{"description": "head w/ charset in http-equiv content-type",
+ "options": {"inject_meta_charset": true, "encoding":"utf-8"},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "http-equiv", "value": "content-type"}, {"namespace": null, "name": "content", "value": "text/html; charset=ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": ["<meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"],
+ "xhtml": ["<head><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /></head>"]
+},
+
+{"description": "head w/robots & charset in http-equiv content-type",
+ "options": {"inject_meta_charset": true, "encoding":"utf-8"},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag","meta",[{"namespace": null, "name": "name", "value": "robots"},{"namespace": null, "name": "content", "value": "noindex"}]], ["EmptyTag","meta",[{"namespace": null, "name": "http-equiv", "value": "content-type"}, {"namespace": null, "name": "content", "value": "text/html; charset=ascii"}]], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": ["<meta content=noindex name=robots><meta content=\"text/html; charset=utf-8\" http-equiv=content-type>"],
+ "xhtml": ["<head><meta content=\"noindex\" name=\"robots\" /><meta content=\"text/html; charset=utf-8\" http-equiv=\"content-type\" /></head>"]
+}
+
+]}
diff --git a/test/data/serializer/optionaltags.test b/test/data/serializer/optionaltags.test new file mode 100644 index 0000000..80a5edf --- /dev/null +++ b/test/data/serializer/optionaltags.test @@ -0,0 +1,965 @@ +{"tests": [
+
+{"description": "html start-tag followed by text, with attributes",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", [{"namespace": null, "name": "lang", "value": "en"}]], ["Characters", "foo"]],
+ "expected": ["<html lang=en>foo"]
+},
+
+
+
+{"description": "html start-tag followed by comment",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Comment", "foo"]],
+ "expected": ["<html><!--foo-->"]
+},
+
+{"description": "html start-tag followed by space character",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Characters", " foo"]],
+ "expected": ["<html> foo"]
+},
+
+{"description": "html start-tag followed by text",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["Characters", "foo"]],
+ "expected": ["foo"]
+},
+
+{"description": "html start-tag followed by start-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<foo>"]
+},
+
+{"description": "html start-tag followed by end-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "html start-tag at EOF (shouldn't ever happen?!)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "html", {}]],
+ "expected": [""]
+},
+
+
+
+{"description": "html end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Comment", "foo"]],
+ "expected": ["</html><!--foo-->"]
+},
+
+{"description": "html end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Characters", " foo"]],
+ "expected": ["</html> foo"]
+},
+
+{"description": "html end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["Characters", "foo"]],
+ "expected": ["foo"]
+},
+
+{"description": "html end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<foo>"]
+},
+
+{"description": "html end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "html end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "html"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "head start-tag followed by comment",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Comment", "foo"]],
+ "expected": ["<head><!--foo-->"]
+},
+
+{"description": "head start-tag followed by space character",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Characters", " foo"]],
+ "expected": ["<head> foo"]
+},
+
+{"description": "head start-tag followed by text",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["Characters", "foo"]],
+ "expected": ["<head>foo"]
+},
+
+{"description": "head start-tag followed by start-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<foo>"]
+},
+
+{"description": "head start-tag followed by end-tag (shouldn't ever happen?!)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["<head></foo>", "</foo>"]
+},
+
+{"description": "empty head element",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": [""]
+},
+
+{"description": "head start-tag followed by empty-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}], ["EmptyTag", "foo", {}]],
+ "expected": ["<foo>"]
+},
+
+{"description": "head start-tag at EOF (shouldn't ever happen?!)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "head", {}]],
+ "expected": ["<head>", ""]
+},
+
+
+
+{"description": "head end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Comment", "foo"]],
+ "expected": ["</head><!--foo-->"]
+},
+
+{"description": "head end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Characters", " foo"]],
+ "expected": ["</head> foo"]
+},
+
+{"description": "head end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["Characters", "foo"]],
+ "expected": ["foo"]
+},
+
+{"description": "head end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<foo>"]
+},
+
+{"description": "head end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "head end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "head"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "body start-tag followed by comment",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Comment", "foo"]],
+ "expected": ["<body><!--foo-->"]
+},
+
+{"description": "body start-tag followed by space character",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Characters", " foo"]],
+ "expected": ["<body> foo"]
+},
+
+{"description": "body start-tag followed by text",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["Characters", "foo"]],
+ "expected": ["foo"]
+},
+
+{"description": "body start-tag followed by start-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<foo>"]
+},
+
+{"description": "body start-tag followed by end-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "body start-tag at EOF (shouldn't ever happen?!)",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "body", {}]],
+ "expected": [""]
+},
+
+
+
+{"description": "body end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Comment", "foo"]],
+ "expected": ["</body><!--foo-->"]
+},
+
+{"description": "body end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Characters", " foo"]],
+ "expected": ["</body> foo"]
+},
+
+{"description": "body end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["Characters", "foo"]],
+ "expected": ["foo"]
+},
+
+{"description": "body end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<foo>"]
+},
+
+{"description": "body end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "body end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "body"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "li end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Comment", "foo"]],
+ "expected": ["</li><!--foo-->"]
+},
+
+{"description": "li end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Characters", " foo"]],
+ "expected": ["</li> foo"]
+},
+
+{"description": "li end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["Characters", "foo"]],
+ "expected": ["</li>foo"]
+},
+
+{"description": "li end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</li><foo>"]
+},
+
+{"description": "li end-tag followed by li start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["StartTag", "http://www.w3.org/1999/xhtml", "li", {}]],
+ "expected": ["<li>"]
+},
+
+{"description": "li end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "li end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "li"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "dt end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Comment", "foo"]],
+ "expected": ["</dt><!--foo-->"]
+},
+
+{"description": "dt end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Characters", " foo"]],
+ "expected": ["</dt> foo"]
+},
+
+{"description": "dt end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["Characters", "foo"]],
+ "expected": ["</dt>foo"]
+},
+
+{"description": "dt end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</dt><foo>"]
+},
+
+{"description": "dt end-tag followed by dt start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "dt", {}]],
+ "expected": ["<dt>"]
+},
+
+{"description": "dt end-tag followed by dd start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["StartTag", "http://www.w3.org/1999/xhtml", "dd", {}]],
+ "expected": ["<dd>"]
+},
+
+{"description": "dt end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</dt></foo>"]
+},
+
+{"description": "dt end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dt"]],
+ "expected": ["</dt>"]
+},
+
+
+
+
+{"description": "dd end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Comment", "foo"]],
+ "expected": ["</dd><!--foo-->"]
+},
+
+{"description": "dd end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Characters", " foo"]],
+ "expected": ["</dd> foo"]
+},
+
+{"description": "dd end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["Characters", "foo"]],
+ "expected": ["</dd>foo"]
+},
+
+{"description": "dd end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</dd><foo>"]
+},
+
+{"description": "dd end-tag followed by dd start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "dd", {}]],
+ "expected": ["<dd>"]
+},
+
+{"description": "dd end-tag followed by dt start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["StartTag", "http://www.w3.org/1999/xhtml", "dt", {}]],
+ "expected": ["<dt>"]
+},
+
+{"description": "dd end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "dd end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "dd"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "p end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Comment", "foo"]],
+ "expected": ["</p><!--foo-->"]
+},
+
+{"description": "p end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Characters", " foo"]],
+ "expected": ["</p> foo"]
+},
+
+{"description": "p end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["Characters", "foo"]],
+ "expected": ["</p>foo"]
+},
+
+{"description": "p end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</p><foo>"]
+},
+
+{"description": "p end-tag followed by address start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "address", {}]],
+ "expected": ["<address>"]
+},
+
+{"description": "p end-tag followed by article start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "article", {}]],
+ "expected": ["<article>"]
+},
+
+{"description": "p end-tag followed by aside start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "aside", {}]],
+ "expected": ["<aside>"]
+},
+
+{"description": "p end-tag followed by blockquote start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "blockquote", {}]],
+ "expected": ["<blockquote>"]
+},
+
+{"description": "p end-tag followed by datagrid start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "datagrid", {}]],
+ "expected": ["<datagrid>"]
+},
+
+{"description": "p end-tag followed by dialog start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dialog", {}]],
+ "expected": ["<dialog>"]
+},
+
+{"description": "p end-tag followed by dir start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dir", {}]],
+ "expected": ["<dir>"]
+},
+
+{"description": "p end-tag followed by div start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "div", {}]],
+ "expected": ["<div>"]
+},
+
+{"description": "p end-tag followed by dl start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "dl", {}]],
+ "expected": ["<dl>"]
+},
+
+{"description": "p end-tag followed by fieldset start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "fieldset", {}]],
+ "expected": ["<fieldset>"]
+},
+
+{"description": "p end-tag followed by footer start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "footer", {}]],
+ "expected": ["<footer>"]
+},
+
+{"description": "p end-tag followed by form start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "form", {}]],
+ "expected": ["<form>"]
+},
+
+{"description": "p end-tag followed by h1 start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h1", {}]],
+ "expected": ["<h1>"]
+},
+
+{"description": "p end-tag followed by h2 start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h2", {}]],
+ "expected": ["<h2>"]
+},
+
+{"description": "p end-tag followed by h3 start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h3", {}]],
+ "expected": ["<h3>"]
+},
+
+{"description": "p end-tag followed by h4 start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h4", {}]],
+ "expected": ["<h4>"]
+},
+
+{"description": "p end-tag followed by h5 start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h5", {}]],
+ "expected": ["<h5>"]
+},
+
+{"description": "p end-tag followed by h6 start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "h6", {}]],
+ "expected": ["<h6>"]
+},
+
+{"description": "p end-tag followed by header start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "header", {}]],
+ "expected": ["<header>"]
+},
+
+{"description": "p end-tag followed by hr empty-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["EmptyTag", "hr", {}]],
+ "expected": ["<hr>"]
+},
+
+{"description": "p end-tag followed by menu start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "menu", {}]],
+ "expected": ["<menu>"]
+},
+
+{"description": "p end-tag followed by nav start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "nav", {}]],
+ "expected": ["<nav>"]
+},
+
+{"description": "p end-tag followed by ol start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "ol", {}]],
+ "expected": ["<ol>"]
+},
+
+{"description": "p end-tag followed by p start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "p", {}]],
+ "expected": ["<p>"]
+},
+
+{"description": "p end-tag followed by pre start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}]],
+ "expected": ["<pre>"]
+},
+
+{"description": "p end-tag followed by section start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "section", {}]],
+ "expected": ["<section>"]
+},
+
+{"description": "p end-tag followed by table start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "table", {}]],
+ "expected": ["<table>"]
+},
+
+{"description": "p end-tag followed by ul start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["StartTag", "http://www.w3.org/1999/xhtml", "ul", {}]],
+ "expected": ["<ul>"]
+},
+
+{"description": "p end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "p end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "p"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "optgroup end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Comment", "foo"]],
+ "expected": ["</optgroup><!--foo-->"]
+},
+
+{"description": "optgroup end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Characters", " foo"]],
+ "expected": ["</optgroup> foo"]
+},
+
+{"description": "optgroup end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["Characters", "foo"]],
+ "expected": ["</optgroup>foo"]
+},
+
+{"description": "optgroup end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</optgroup><foo>"]
+},
+
+{"description": "optgroup end-tag followed by optgroup start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "optgroup", {}]],
+ "expected": ["<optgroup>"]
+},
+
+{"description": "optgroup end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "optgroup end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "optgroup"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "option end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Comment", "foo"]],
+ "expected": ["</option><!--foo-->"]
+},
+
+{"description": "option end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Characters", " foo"]],
+ "expected": ["</option> foo"]
+},
+
+{"description": "option end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["Characters", "foo"]],
+ "expected": ["</option>foo"]
+},
+
+{"description": "option end-tag followed by optgroup start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "optgroup", {}]],
+ "expected": ["<optgroup>"]
+},
+
+{"description": "option end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</option><foo>"]
+},
+
+{"description": "option end-tag followed by option start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["StartTag", "http://www.w3.org/1999/xhtml", "option", {}]],
+ "expected": ["<option>"]
+},
+
+{"description": "option end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "option end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "option"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "colgroup start-tag followed by comment",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Comment", "foo"]],
+ "expected": ["<colgroup><!--foo-->"]
+},
+
+{"description": "colgroup start-tag followed by space character",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Characters", " foo"]],
+ "expected": ["<colgroup> foo"]
+},
+
+{"description": "colgroup start-tag followed by text",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["Characters", "foo"]],
+ "expected": ["<colgroup>foo"]
+},
+
+{"description": "colgroup start-tag followed by start-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<colgroup><foo>"]
+},
+
+{"description": "first colgroup in a table with a col child",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "table", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["EmptyTag", "col", {}]],
+ "expected": ["<table><col>"]
+},
+
+{"description": "colgroup with a col child, following another colgroup",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "col", {}]],
+ "expected": ["</colgroup><col>", "<colgroup><col>"]
+},
+
+{"description": "colgroup start-tag followed by end-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["<colgroup></foo>"]
+},
+
+{"description": "colgroup start-tag at EOF",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "colgroup", {}]],
+ "expected": ["<colgroup>"]
+},
+
+
+
+{"description": "colgroup end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Comment", "foo"]],
+ "expected": ["</colgroup><!--foo-->"]
+},
+
+{"description": "colgroup end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Characters", " foo"]],
+ "expected": ["</colgroup> foo"]
+},
+
+{"description": "colgroup end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["Characters", "foo"]],
+ "expected": ["foo"]
+},
+
+{"description": "colgroup end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<foo>"]
+},
+
+{"description": "colgroup end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "colgroup end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "colgroup"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "thead end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Comment", "foo"]],
+ "expected": ["</thead><!--foo-->"]
+},
+
+{"description": "thead end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Characters", " foo"]],
+ "expected": ["</thead> foo"]
+},
+
+{"description": "thead end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["Characters", "foo"]],
+ "expected": ["</thead>foo"]
+},
+
+{"description": "thead end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</thead><foo>"]
+},
+
+{"description": "thead end-tag followed by tbody start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
+ "expected": ["<tbody>"]
+},
+
+{"description": "thead end-tag followed by tfoot start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tfoot", {}]],
+ "expected": ["<tfoot>"]
+},
+
+{"description": "thead end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</thead></foo>"]
+},
+
+{"description": "thead end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"]],
+ "expected": ["</thead>"]
+},
+
+
+
+
+{"description": "tbody start-tag followed by comment",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Comment", "foo"]],
+ "expected": ["<tbody><!--foo-->"]
+},
+
+{"description": "tbody start-tag followed by space character",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Characters", " foo"]],
+ "expected": ["<tbody> foo"]
+},
+
+{"description": "tbody start-tag followed by text",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["Characters", "foo"]],
+ "expected": ["<tbody>foo"]
+},
+
+{"description": "tbody start-tag followed by start-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["<tbody><foo>"]
+},
+
+{"description": "first tbody in a table with a tr child",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "table", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
+ "expected": ["<table><tr>"]
+},
+
+{"description": "tbody with a tr child, following another tbody",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
+ "expected": ["<tbody><tr>", "</tbody><tr>"]
+},
+
+{"description": "tbody with a tr child, following a thead",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "thead"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
+ "expected": ["<tbody><tr>", "</thead><tr>"]
+},
+
+{"description": "tbody with a tr child, following a tfoot",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
+ "expected": ["<tbody><tr>", "</tfoot><tr>"]
+},
+
+{"description": "tbody start-tag followed by end-tag",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["<tbody></foo>"]
+},
+
+{"description": "tbody start-tag at EOF",
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
+ "expected": ["<tbody>"]
+},
+
+
+
+{"description": "tbody end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Comment", "foo"]],
+ "expected": ["</tbody><!--foo-->"]
+},
+
+{"description": "tbody end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Characters", " foo"]],
+ "expected": ["</tbody> foo"]
+},
+
+{"description": "tbody end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["Characters", "foo"]],
+ "expected": ["</tbody>foo"]
+},
+
+{"description": "tbody end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</tbody><foo>"]
+},
+
+{"description": "tbody end-tag followed by tbody start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
+ "expected": ["<tbody>", "</tbody>"]
+},
+
+{"description": "tbody end-tag followed by tfoot start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["StartTag", "http://www.w3.org/1999/xhtml", "tfoot", {}]],
+ "expected": ["<tfoot>"]
+},
+
+{"description": "tbody end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "tbody end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tbody"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "tfoot end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Comment", "foo"]],
+ "expected": ["</tfoot><!--foo-->"]
+},
+
+{"description": "tfoot end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Characters", " foo"]],
+ "expected": ["</tfoot> foo"]
+},
+
+{"description": "tfoot end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["Characters", "foo"]],
+ "expected": ["</tfoot>foo"]
+},
+
+{"description": "tfoot end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</tfoot><foo>"]
+},
+
+{"description": "tfoot end-tag followed by tbody start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["StartTag", "http://www.w3.org/1999/xhtml", "tbody", {}]],
+ "expected": ["<tbody>", "</tfoot>"]
+},
+
+{"description": "tfoot end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "tfoot end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tfoot"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "tr end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Comment", "foo"]],
+ "expected": ["</tr><!--foo-->"]
+},
+
+{"description": "tr end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Characters", " foo"]],
+ "expected": ["</tr> foo"]
+},
+
+{"description": "tr end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["Characters", "foo"]],
+ "expected": ["</tr>foo"]
+},
+
+{"description": "tr end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</tr><foo>"]
+},
+
+{"description": "tr end-tag followed by tr start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["StartTag", "http://www.w3.org/1999/xhtml", "tr", {}]],
+ "expected": ["<tr>", "</tr>"]
+},
+
+{"description": "tr end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "tr end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "tr"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "td end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Comment", "foo"]],
+ "expected": ["</td><!--foo-->"]
+},
+
+{"description": "td end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Characters", " foo"]],
+ "expected": ["</td> foo"]
+},
+
+{"description": "td end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["Characters", "foo"]],
+ "expected": ["</td>foo"]
+},
+
+{"description": "td end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</td><foo>"]
+},
+
+{"description": "td end-tag followed by td start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "td", {}]],
+ "expected": ["<td>", "</td>"]
+},
+
+{"description": "td end-tag followed by th start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["StartTag", "http://www.w3.org/1999/xhtml", "th", {}]],
+ "expected": ["<th>", "</td>"]
+},
+
+{"description": "td end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "td end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "td"]],
+ "expected": [""]
+},
+
+
+
+
+{"description": "th end-tag followed by comment",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Comment", "foo"]],
+ "expected": ["</th><!--foo-->"]
+},
+
+{"description": "th end-tag followed by space character",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Characters", " foo"]],
+ "expected": ["</th> foo"]
+},
+
+{"description": "th end-tag followed by text",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["Characters", "foo"]],
+ "expected": ["</th>foo"]
+},
+
+{"description": "th end-tag followed by start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "foo", {}]],
+ "expected": ["</th><foo>"]
+},
+
+{"description": "th end-tag followed by th start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "th", {}]],
+ "expected": ["<th>", "</th>"]
+},
+
+{"description": "th end-tag followed by td start-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["StartTag", "http://www.w3.org/1999/xhtml", "td", {}]],
+ "expected": ["<td>", "</th>"]
+},
+
+{"description": "th end-tag followed by end-tag",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml", "th"], ["EndTag", "http://www.w3.org/1999/xhtml", "foo"]],
+ "expected": ["</foo>"]
+},
+
+{"description": "th end-tag at EOF",
+ "input": [["EndTag", "http://www.w3.org/1999/xhtml" , "th"]],
+ "expected": [""]
+}
+
+]}
diff --git a/test/data/serializer/options.test b/test/data/serializer/options.test new file mode 100644 index 0000000..6f342dd --- /dev/null +++ b/test/data/serializer/options.test @@ -0,0 +1,60 @@ +{"tests":[ + +{"description": "quote_char=\"'\"", + "options": {"quote_char": "'"}, + "input": [["StartTag", "http://www.w3.org/1999/xhtml", "span", [{"namespace": null, "name": "title", "value": "test 'with' quote_char"}]]], + "expected": ["<span title='test 'with' quote_char'>"] +}, + +{"description": "quote_attr_values=true", + "options": {"quote_attr_values": true}, + "input": [["StartTag", "http://www.w3.org/1999/xhtml", "button", [{"namespace": null, "name": "disabled", "value" :"disabled"}]]], + "expected": ["<button disabled>"], + "xhtml": ["<button disabled=\"disabled\">"] +}, + +{"description": "quote_attr_values=true with irrelevant", + "options": {"quote_attr_values": true}, + "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :"irrelevant"}]]], + "expected": ["<div irrelevant>"], + "xhtml": ["<div irrelevant=\"irrelevant\">"] +}, + +{"description": "use_trailing_solidus=true with void element", + "options": {"use_trailing_solidus": true}, + "input": [["EmptyTag", "img", {}]], + "expected": ["<img />"] +}, + +{"description": "use_trailing_solidus=true with non-void element", + "options": {"use_trailing_solidus": true}, + "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", {}]], + "expected": ["<div>"] +}, + +{"description": "minimize_boolean_attributes=false", + "options": {"minimize_boolean_attributes": false}, + "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :"irrelevant"}]]], + "expected": ["<div irrelevant=irrelevant>"], + "xhtml": ["<div irrelevant=\"irrelevant\">"] +}, + +{"description": "minimize_boolean_attributes=false with empty value", + "options": {"minimize_boolean_attributes": false}, + "input": [["StartTag", "http://www.w3.org/1999/xhtml", "div", [{"namespace": null, "name": "irrelevant", "value" :""}]]], + "expected": ["<div irrelevant=\"\">"] +}, + +{"description": "escape less than signs in attribute values", + "options": {"escape_lt_in_attrs": true}, + "input": [["StartTag", "http://www.w3.org/1999/xhtml", "a", [{"namespace": null, "name": "title", "value": "a<b>c&d"}]]], + "expected": ["<a title=\"a<b>c&d\">"] +}, + +{"description": "rcdata", + "options": {"escape_rcdata": true}, + "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "a<b>c&d"]], + "expected": ["<script>a<b>c&d"] +} + +]} diff --git a/test/data/serializer/whitespace.test b/test/data/serializer/whitespace.test new file mode 100644 index 0000000..e5d050d --- /dev/null +++ b/test/data/serializer/whitespace.test @@ -0,0 +1,51 @@ +{"tests": [
+
+{"description": "bare text with leading spaces",
+ "options": {"strip_whitespace": true},
+ "input": [["Characters", "\t\r\n\u000C foo"]],
+ "expected": [" foo"]
+},
+
+{"description": "bare text with trailing spaces",
+ "options": {"strip_whitespace": true},
+ "input": [["Characters", "foo \t\r\n\u000C"]],
+ "expected": ["foo "]
+},
+
+{"description": "bare text with inner spaces",
+ "options": {"strip_whitespace": true},
+ "input": [["Characters", "foo \t\r\n\u000C bar"]],
+ "expected": ["foo bar"]
+},
+
+{"description": "text within <pre>",
+ "options": {"strip_whitespace": true},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "pre"]],
+ "expected": ["<pre>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</pre>"]
+},
+
+{"description": "text within <pre>, with inner markup",
+ "options": {"strip_whitespace": true},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "pre", {}], ["Characters", "\t\r\n\u000C fo"], ["StartTag", "http://www.w3.org/1999/xhtml", "span", {}], ["Characters", "o \t\r\n\u000C b"], ["EndTag", "http://www.w3.org/1999/xhtml", "span"], ["Characters", "ar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "pre"]],
+ "expected": ["<pre>\t\r\n\u000C fo<span>o \t\r\n\u000C b</span>ar \t\r\n\u000C</pre>"]
+},
+
+{"description": "text within <textarea>",
+ "options": {"strip_whitespace": true},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "textarea", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "textarea"]],
+ "expected": ["<textarea>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</textarea>"]
+},
+
+{"description": "text within <script>",
+ "options": {"strip_whitespace": true},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "script", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "script"]],
+ "expected": ["<script>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</script>"]
+},
+
+{"description": "text within <style>",
+ "options": {"strip_whitespace": true},
+ "input": [["StartTag", "http://www.w3.org/1999/xhtml", "style", {}], ["Characters", "\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C"], ["EndTag", "http://www.w3.org/1999/xhtml", "style"]],
+ "expected": ["<style>\t\r\n\u000C foo \t\r\n\u000C bar \t\r\n\u000C</style>"]
+}
+
+]}
\ No newline at end of file diff --git a/test/data/sniffer/htmlOrFeed.json b/test/data/sniffer/htmlOrFeed.json new file mode 100644 index 0000000..c1506db --- /dev/null +++ b/test/data/sniffer/htmlOrFeed.json @@ -0,0 +1,43 @@ +[ + {"type": "text/html", "input": ""}, + {"type": "text/html", "input": "<!---->"}, + {"type": "text/html", "input": "<!--asdfaslkjdf;laksjdf as;dkfjsd-->"}, + {"type": "text/html", "input": "<!"}, + {"type": "text/html", "input": "\t"}, + {"type": "text/html", "input": "<!>"}, + {"type": "text/html", "input": "<?"}, + {"type": "text/html", "input": "<??>"}, + {"type": "application/rss+xml", "input": "<rss"}, + {"type": "application/atom+xml", "input": "<feed"}, + {"type": "text/html", "input": "<html"}, + {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>302 Found</title>\n</head><body>\n<h1>Found</h1>\n<p>The document has moved <a href=\"http://feeds.feedburner.com/gofug\">here</a>.</p>\n</body></html>\n"}, + {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">\r\n<HTML><HEAD>\r\n <link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/289619328/feed.css\" /><link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/431602649/feed.css\" />\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/382549546/feed.css\" />\r\n<link rel=\"stylesheet\" type=\"text/css\" href=\"http://cache.blogads.com/314618017/feed.css\" /><META http-equiv=\"expires\" content="}, + {"type": "text/html", "input": "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\r\n<html>\r\n<head>\r\n<title>Xiaxue - Chicken pie blogger.</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"><style type=\"text/css\">\r\n<style type=\"text/css\">\r\n<!--\r\nbody {\r\n background-color: #FFF2F2;\r\n}\r\n.style1 {font-family: Georgia, \"Times New Roman\", Times, serif}\r\n.style2 {\r\n color: #8a567c;\r\n font-size: 14px;\r\n font-family: Georgia, \"Times New Roman\", Times, serif;\r\n}\r"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head> \r\n<title>Google Operating System</title>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"Description\" content=\"Unofficial news and tips about Google. A blog that watches Google's latest developments and the attempts to move your operating system online.\" />\r\n<meta name=\"generator\" c"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head>\r\n <title>Assimilated Press</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Assimilated Press - Atom\" href=\"http://assimila"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<head>\r\n <title>PostSecret</title>\r\n<META name=\"keywords\" Content=\"secrets, postcard, secret, postcards, postsecret, postsecrets,online confessional, post secret, post secrets, artomatic, post a secret\"><META name=\"discription\" Content=\"See a Secret...Share a Secret\"> <meta http-equiv=\"Content-Type\" content=\"te"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'>\n <head>\n \n <meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/>\n <meta content='true' name='MSSmartTagsPreventParsing'/>\n <meta content='blogger' name='generator'/>\n <link rel=\"alternate\" typ"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"ja\">\n<head profile=\"http://gmpg.org/xfn/11\"> \n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /> \n<title> CMS Lever</title><link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"http://s.wordpress.com/wp-content/themes/pub/twenty-eight/2813.css\"/>\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" h"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title> Park Avenue Peerage</title>\t<meta name=\"generator\" content=\"WordPress.com\" />\t<!-- feeds -->\n\t<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://parkavenuepeerage.wordpress.com/feed/\" />\t<link rel=\"pingback\" href="}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"ja\"><head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n<title> \u884c\u96f2\u6d41\u6c34 -like a floating clouds and running water-</title>\t<meta name=\"generator\" content=\"WordPress.com\" />\t<!-- feeds -->\n\t<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS 2.0\" href=\"http://shw4.wordpress.com/feed/\" />\t<li"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n<title>Go Fug Yourself</title><link rel=\"stylesheet\" href=\"http://gofugyourself.typepad.com/go_fug_yourself/styles.css\" type=\"text/css\" />\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Atom\" "}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\"><head profile=\"http://gmpg.org/xfn/11\">\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><title> Ladies…</title><meta name=\"generator\" content=\"WordPress.com\" /> <!-- leave this for stats --><link rel=\"stylesheet\" href=\"http://s.wordpress.com/wp-content/themes/default/style.css?1\" type=\"tex"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\r\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\r\n<head>\r\n <title>The Sartorialist</title> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"The Sartorialist - Atom\" href=\"http://thesartorialist.blogspot"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\" />\n<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n<title>Creating Passionate Users</title><link rel=\"stylesheet\" href=\"http://headrush.typepad.com/creating_passionate_users/styles.css\" type=\"text/css\" />\n<link rel=\"alternate\" type"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" id=\"sixapart-standard\">\n<head>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n\t\n\t\n <meta name=\"keywords\" content=\"marketing, blog, seth, ideas, respect, permission\" />\n <meta name=\"description\" content=\"Seth Godin's riffs on marketing, respect, and the "}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n\t\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" id=\"sixapart-standard\">\n<head>\n\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n\t<meta name=\"generator\" content=\"http://www.typepad.com/\" />\n\t\n\t\n \n <meta name=\"description\" content=\" Western Civilization hangs in the balance. This blog is part of the solution,the cure. Get your heads out of the sand and Fight the G"}, + {"type": "text/html", "input": "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\" dir=\"ltr\" lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=pahrefhttpwwwfeedburnercomtarget_blankimgsrchttpwwwfeedburnercomfbimagespubpowered_by_fbgifaltPoweredbyFeedBurnerstyleborder0ap\" />\n<title> From Under the Rotunda</title>\n<link rel=\"stylesheet\" href=\"http://s.wordpress.com/wp-content/themes/pub/andreas04/style.css\" type=\"text/css\""}, + {"type": "application/atom+xml", "input": "<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href=\"http://www.blogger.com/styles/atom.css\" type=\"text/css\"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-10861780</id><updated>2007-07-27T12:38:50.888-07:00</updated><title type='text'>Official Google Blog</title><link rel='alternate' type='text/html' href='http://googleblog.blogspot.com/'/><link rel='next' type='application/atom+xml' href='http://googleblog.blogs"}, + {"type": "application/rss+xml", "input": "<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' version='2.0'><channel><atom:id>tag:blogger.com,1999:blog-10861780</atom:id><lastBuildDate>Fri, 27 Jul 2007 19:38:50 +0000</lastBuildDate><title>Official Google Blog</title><description/><link>http://googleblog.blogspot.com/</link><managingEditor>Eric Case</managingEditor><generator>Blogger</generator><openSearch:totalResults>729</openSearch:totalResults><openSearc"}, + {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"pahrefhttpwwwfeedburnercomtarget_blankimgsrchttpwwwfeedburnercomfbimagespubpowered_by_fbgifaltPoweredbyFeedBurnerstyleborder0ap\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>From Under the Rotunda</title>\n\t<link>http://dannybernardi.wordpress.com</link>\n\t<description>The Monographs of Danny Ber"}, + {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>CMS Lever</title>\n\t<link>http://kanaguri.wordpress.com</link>\n\t<description>CMS\u306e\u6c17\u306b\u306a\u3063\u305f\u3053\u3068</description>\n\t<pubDate>Wed, 18 Jul 2007 21:26:22 +0000</pubDate>\n\t<generator>http://wordpress.org/?v=MU</generator>\n\t<language>ja</languag"}, + {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:thr=\"http://purl.org/syndication/thread/1.0\">\n <title>Atlas Shrugs</title>\n <link rel=\"self\" type=\"application/atom+xml\" href=\"http://atlasshrugs2000.typepad.com/atlas_shrugs/atom.xml\" />\n <link rel=\"alternate\" type=\"text/html\" href=\"http://atlasshrugs2000.typepad.com/atlas_shrugs/\" />\n <id>tag:typepad.com,2003:weblog-132946</id>\n <updated>2007-08-15T16:07:34-04"}, + {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:thr=\"http://purl.org/syndication/thread/1.0\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\">\r\n <title>Creating Passionate Users</title>\r\n "}, + {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\">\r\n <title>Seth's Blog</title>\r\n <link rel=\"alternate\" type=\"text/html\" href=\"http://sethgodin.typepad.com/seths_blog/\" />\r\n <link rel=\"s"}, + {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atom10full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://www.w3.org/2005/Atom\" xmlns:openSearch=\"http://a9.com/-/spec/opensearchrss/1.0/\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\"><id>tag:blogger.com,1999:blog-32454861</id><updated>2007-07-31T21:44:09.867+02:00</upd"}, + {"type": "application/atom+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/atomfull.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><feed xmlns=\"http://purl.org/atom/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"0.3\">\r\n <title>Go Fug Yourself</title>\r\n <link rel=\"alternate\" type=\"text/html\" href=\"http://go"}, + {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/rss2full.xsl\" type=\"text/xsl\" media=\"screen\"?><?xml-stylesheet href=\"http://feeds.feedburner.com/~d/styles/itemcontent.css\" type=\"text/css\" media=\"screen\"?><rss xmlns:creativeCommons=\"http://backend.userland.com/creativeCommonsRssModule\" xmlns:feedburner=\"http://rssnamespace.org/feedburner/ext/1.0\" version=\"2.0\"><channel><title>Google Operating System</title><link>http://googlesystem.blogspot.com/</link>"}, + {"type": "application/rss+xml", "input": "<?xml version=\"1.0\" encoding=\"\"?>\n<!-- generator=\"wordpress/MU\" -->\n<rss version=\"2.0\"\n\txmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n\txmlns:wfw=\"http://wellformedweb.org/CommentAPI/\"\n\txmlns:dc=\"http://purl.org/dc/elements/1.1/\"\n\t><channel>\n\t<title>Nunublog</title>\n\t<link>http://nunubh.wordpress.com</link>\n\t<description>Just Newbie Blog!</description>\n\t<pubDate>Mon, 09 Jul 2007 18:54:09 +0000</pubDate>\n\t<generator>http://wordpress.org/?v=MU</generator>\n\t<language>id</language>\n\t\t\t<item>\n\t\t<ti"}, + {"type": "text/html", "input": "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\">\r\n<HEAD>\r\n<TITLE>Design*Sponge</TITLE><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\r\n<meta name=\"MSSmartTagsPreventParsing\" content=\"true\" />\r\n<meta name=\"generator\" content=\"Blogger\" />\r\n<link rel=\"alternate\" type=\"application/atom+xml\" title=\"Design*Sponge - Atom\" href=\"http://designsponge.blogspot.com/feeds/posts/default\" />\r\n<link rel=\"alternate\" type=\"application/rss+xml\" title=\"Design*Sponge - RSS\" href="}, + {"type": "text/html", "input": "<HTML>\n<HEAD>\n<TITLE>Moved Temporarily</TITLE>\n</HEAD>\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n<H1>Moved Temporarily</H1>\nThe document has moved <A HREF=\"http://feeds.feedburner.com/thesecretdiaryofstevejobs\">here</A>.\n</BODY>\n</HTML>\n"} +]
\ No newline at end of file diff --git a/test/data/tokeniser2/INDEX b/test/data/tokeniser2/INDEX index f16feb4..67475c4 100644 --- a/test/data/tokeniser2/INDEX +++ b/test/data/tokeniser2/INDEX @@ -3,13 +3,18 @@ # Test Description test1.test html5lib tests (part 1) -test2.test html5lib tests (part 2) -test3.test html5lib tests (part 3) -test4.test html5lib tests (part 4) -contentModelFlags.test html5lib content model tests -entities.test html5lib entity tests -escapeFlag.test html5lib escape flag tests -numericEntities.test html5lib numeric entities tests +#test2.test html5lib tests (part 2) +#test3.test html5lib tests (part 3) +#test4.test html5lib tests (part 4) +#contentModelFlags.test html5lib content model tests +#entities.test html5lib entity tests +#escapeFlag.test html5lib escape flag tests +#numericEntities.test html5lib numeric entities tests #unicodeChars.test html5lib unicode character tests cdata.test CDATA section tests -regression.test Regression tests +#regression.test Regression tests +#domjs.test NA +#namedEntities.test html5lib named entities tests +#pendingSpecChanges.test NA +#unicodeCharsProblematic.test NA +#xmlViolation.test NA diff --git a/test/data/tokeniser2/README.md b/test/data/tokeniser2/README.md new file mode 100644 index 0000000..4218c26 --- /dev/null +++ b/test/data/tokeniser2/README.md @@ -0,0 +1,104 @@ +Tokenizer tests +=============== + +The test format is [JSON](http://www.json.org/). This has the advantage +that the syntax allows backward-compatible extensions to the tests and +the disadvantage that it is relatively verbose. + +Basic Structure +--------------- + + {"tests":[ + {"description": "Test description", + "input": "input_string", + "output": [expected_output_tokens], + "initialStates": [initial_states], + "lastStartTag": last_start_tag, + "ignoreErrorOrder": ignore_error_order + } + ]} + +Multiple tests per file are allowed simply by adding more objects to the +"tests" list. + +`description`, `input` and `output` are always present. The other values +are optional. + +### Test set-up + +`test.input` is a string containing the characters to pass to the +tokenizer. Specifically, it represents the characters of the **input +stream**, and so implementations are expected to perform the processing +described in the spec's **Preprocessing the input stream** section +before feeding the result to the tokenizer. + +If `test.doubleEscaped` is present and `true`, then `test.input` is not +quite as described above. Instead, it must first be subjected to another +round of unescaping (i.e., in addition to any unescaping involved in the +JSON import), and the result of *that* represents the characters of the +input stream. Currently, the only unescaping required by this option is +to convert each sequence of the form \\uHHHH (where H is a hex digit) +into the corresponding Unicode code point. (Note that this option also +affects the interpretation of `test.output`.) + +`test.initialStates` is a list of strings, each being the name of a +tokenizer state. The test should be run once for each string, using it +to set the tokenizer's initial state for that run. If +`test.initialStates` is omitted, it defaults to `["data state"]`. + +`test.lastStartTag` is a lowercase string that should be used as "the +tag name of the last start tag to have been emitted from this +tokenizer", referenced in the spec's definition of **appropriate end tag +token**. If it is omitted, it is treated as if "no start tag has been +emitted from this tokenizer". + +### Test results + +`test.output` is a list of tokens, ordered with the first produced by +the tokenizer the first (leftmost) in the list. The list must mach the +**complete** list of tokens that the tokenizer should produce. Valid +tokens are: + + ["DOCTYPE",name,public_id,system_id,correctness] + ["StartTag",name,{attributes}*, true*] + ["StartTag",name,{attributes}] + ["EndTag",name] + ["Comment",data] + ["Character",data] + "ParseError" + +`public_id` and `system_id` are either strings or `null`. `correctness` +is either `true` or `false`; `true` corresponds to the force-quirks flag +being false, and vice-versa. + +When the self-closing flag is set, the `StartTag` array has `true` as +its fourth entry. When the flag is not set, the array has only three +entries for backwards compatibility. + +All adjacent character tokens are coalesced into a single +`["Character", data]` token. + +If `test.doubleEscaped` is present and `true`, then every string within +`test.output` must be further unescaped (as described above) before +comparing with the tokenizer's output. + +`test.ignoreErrorOrder` is a boolean value indicating that the order of +`ParseError` tokens relative to other tokens in the output stream is +unimportant, and implementations should ignore such differences between +their output and `expected_output_tokens`. (This is used for errors +emitted by the input stream preprocessing stage, since it is useful to +test that code but it is undefined when the errors occur). If it is +omitted, it defaults to `false`. + +xmlViolation tests +------------------ + +`tokenizer/xmlViolation.test` differs from the above in a couple of +ways: + +- The name of the single member of the top-level JSON object is + "xmlViolationTests" instead of "tests". +- Each test's expected output assumes that implementation is applying + the tweaks given in the spec's "Coercing an HTML DOM into an + infoset" section. + diff --git a/test/data/tokeniser2/contentModelFlags.test b/test/data/tokeniser2/contentModelFlags.test index 1dec3e8..a8b1695 100644 --- a/test/data/tokeniser2/contentModelFlags.test +++ b/test/data/tokeniser2/contentModelFlags.test @@ -1,73 +1,73 @@ {"tests": [ {"description":"PLAINTEXT content model flag", -"contentModelFlags":["PLAINTEXT"], +"initialStates":["PLAINTEXT state"], "lastStartTag":"plaintext", "input":"<head>&body;", "output":[["Character", "<head>&body;"]]}, -{"description":"End tag closing RCDATA or CDATA", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag closing RCDATA or RAWTEXT", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo</xmp>", "output":[["Character", "foo"], ["EndTag", "xmp"]]}, -{"description":"End tag closing RCDATA or CDATA (case-insensitivity)", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag closing RCDATA or RAWTEXT (case-insensitivity)", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo</xMp>", "output":[["Character", "foo"], ["EndTag", "xmp"]]}, -{"description":"End tag closing RCDATA or CDATA (ending with space)", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag closing RCDATA or RAWTEXT (ending with space)", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo</xmp ", -"output":[["Character", "foo"], "ParseError", ["EndTag", "xmp"]]}, +"output":[["Character", "foo"], "ParseError"]}, -{"description":"End tag closing RCDATA or CDATA (ending with EOF)", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag closing RCDATA or RAWTEXT (ending with EOF)", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo</xmp", -"output":[["Character", "foo"], "ParseError", ["EndTag", "xmp"]]}, +"output":[["Character", "foo</xmp"]]}, -{"description":"End tag closing RCDATA or CDATA (ending with slash)", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag closing RCDATA or RAWTEXT (ending with slash)", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo</xmp/", -"output":[["Character", "foo"], "ParseError", ["EndTag", "xmp"]]}, +"output":[["Character", "foo"], "ParseError"]}, -{"description":"End tag not closing RCDATA or CDATA (ending with left-angle-bracket)", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag not closing RCDATA or RAWTEXT (ending with left-angle-bracket)", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo</xmp<", "output":[["Character", "foo</xmp<"]]}, -{"description":"End tag with incorrect name in RCDATA or CDATA", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag with incorrect name in RCDATA or RAWTEXT", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"</foo>bar</xmp>", "output":[["Character", "</foo>bar"], ["EndTag", "xmp"]]}, -{"description":"End tag with incorrect name in RCDATA or CDATA (starting like correct name)", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag with incorrect name in RCDATA or RAWTEXT (starting like correct name)", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"</foo>bar</xmpaar>", "output":[["Character", "</foo>bar</xmpaar>"]]}, -{"description":"End tag closing RCDATA or CDATA, switching back to PCDATA", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag closing RCDATA or RAWTEXT, switching back to PCDATA", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo</xmp></baz>", "output":[["Character", "foo"], ["EndTag", "xmp"], ["EndTag", "baz"]]}, -{"description":"CDATA w/ something looking like an entity", -"contentModelFlags":["CDATA"], +{"description":"RAWTEXT w/ something looking like an entity", +"initialStates":["RAWTEXT state"], "lastStartTag":"xmp", "input":"&foo;", "output":[["Character", "&foo;"]]}, {"description":"RCDATA w/ an entity", -"contentModelFlags":["RCDATA"], +"initialStates":["RCDATA state"], "lastStartTag":"textarea", "input":"<", "output":[["Character", "<"]]} diff --git a/test/data/tokeniser2/domjs.test b/test/data/tokeniser2/domjs.test new file mode 100644 index 0000000..b9e650c --- /dev/null +++ b/test/data/tokeniser2/domjs.test @@ -0,0 +1,91 @@ +{ + "tests": [ + { + "description":"CR in bogus comment state", + "input":"<?\u000d", + "output":["ParseError", ["Comment", "?\u000a"]] + }, + { + "description":"CRLF in bogus comment state", + "input":"<?\u000d\u000a", + "output":["ParseError", ["Comment", "?\u000a"]] + }, + { + "description":"NUL in RCDATA and RAWTEXT", + "doubleEscaped":true, + "initialStates":["RCDATA state", "RAWTEXT state"], + "input":"\\u0000", + "output":["ParseError", ["Character", "\\uFFFD"]] + }, + { + "description":"leading U+FEFF must pass through", + "doubleEscaped":true, + "input":"\\uFEFFfoo\\uFEFFbar", + "output":[["Character", "\\uFEFFfoo\\uFEFFbar"]] + }, + { + "description":"Non BMP-charref in in RCDATA", + "initialStates":["RCDATA state"], + "input":"≂̸", + "output":[["Character", "\u2242\u0338"]] + }, + { + "description":"Bad charref in in RCDATA", + "initialStates":["RCDATA state"], + "input":"&NotEqualTild;", + "output":["ParseError", ["Character", "&NotEqualTild;"]] + }, + { + "description":"lowercase endtags in RCDATA and RAWTEXT", + "initialStates":["RCDATA state", "RAWTEXT state"], + "lastStartTag":"xmp", + "input":"</XMP>", + "output":[["EndTag","xmp"]] + }, + { + "description":"bad endtag in RCDATA and RAWTEXT", + "initialStates":["RCDATA state", "RAWTEXT state"], + "lastStartTag":"xmp", + "input":"</ XMP>", + "output":[["Character","</ XMP>"]] + }, + { + "description":"bad endtag in RCDATA and RAWTEXT", + "initialStates":["RCDATA state", "RAWTEXT state"], + "lastStartTag":"xmp", + "input":"</xm>", + "output":[["Character","</xm>"]] + }, + { + "description":"bad endtag in RCDATA and RAWTEXT", + "initialStates":["RCDATA state", "RAWTEXT state"], + "lastStartTag":"xmp", + "input":"</xm ", + "output":[["Character","</xm "]] + }, + { + "description":"bad endtag in RCDATA and RAWTEXT", + "initialStates":["RCDATA state", "RAWTEXT state"], + "lastStartTag":"xmp", + "input":"</xm/", + "output":[["Character","</xm/"]] + }, + { + "description":"Non BMP-charref in attribute", + "input":"<p id=\"≂̸\">", + "output":[["StartTag", "p", {"id":"\u2242\u0338"}]] + }, + { + "description":"--!NUL in comment ", + "doubleEscaped":true, + "input":"<!----!\\u0000-->", + "output":["ParseError", "ParseError", ["Comment", "--!\\uFFFD"]] + }, + { + "description":"space EOF after doctype ", + "input":"<!DOCTYPE html ", + "output":["ParseError", ["DOCTYPE", "html", null, null , false]] + } + + ] +} diff --git a/test/data/tokeniser2/entities.test b/test/data/tokeniser2/entities.test index 8b8d352..27b85a1 100644 --- a/test/data/tokeniser2/entities.test +++ b/test/data/tokeniser2/entities.test @@ -2,2091 +2,19 @@ {"description": "Undefined named entity in attribute value ending in semicolon and whose name starts with a known entity name.", "input":"<h a='¬i;'>", -"output": ["ParseError", ["StartTag", "h", {"a": "¬i;"}]]}, +"output": [["StartTag", "h", {"a": "¬i;"}]]}, -{"description": "Named entity: AElig with a semi-colon.", -"input":"Æ", -"output": [["Character", "\u00C6"]]}, - -{"description": "Named entity: AElig without a semi-colon.", -"input":"Æ", -"output": ["ParseError", ["Character", "\u00C6"]]}, - -{"description": "Named entity: AMP with a semi-colon.", -"input":"&", -"output": [["Character", "\u0026"]]}, - -{"description": "Named entity: AMP without a semi-colon.", -"input":"&", -"output": ["ParseError", ["Character", "\u0026"]]}, - -{"description": "Named entity: Aacute with a semi-colon.", -"input":"Á", -"output": [["Character", "\u00C1"]]}, - -{"description": "Named entity: Aacute without a semi-colon.", -"input":"Á", -"output": ["ParseError", ["Character", "\u00C1"]]}, - -{"description": "Named entity: Acirc with a semi-colon.", -"input":"Â", -"output": [["Character", "\u00C2"]]}, - -{"description": "Named entity: Acirc without a semi-colon.", -"input":"Â", -"output": ["ParseError", ["Character", "\u00C2"]]}, - -{"description": "Named entity: Agrave with a semi-colon.", -"input":"À", -"output": [["Character", "\u00C0"]]}, - -{"description": "Named entity: Agrave without a semi-colon.", -"input":"À", -"output": ["ParseError", ["Character", "\u00C0"]]}, - -{"description": "Named entity: Alpha with a semi-colon.", -"input":"Α", -"output": [["Character", "\u0391"]]}, - -{"description": "Named entity: Aring with a semi-colon.", -"input":"Å", -"output": [["Character", "\u00C5"]]}, - -{"description": "Named entity: Aring without a semi-colon.", -"input":"Å", -"output": ["ParseError", ["Character", "\u00C5"]]}, - -{"description": "Named entity: Atilde with a semi-colon.", -"input":"Ã", -"output": [["Character", "\u00C3"]]}, - -{"description": "Named entity: Atilde without a semi-colon.", -"input":"Ã", -"output": ["ParseError", ["Character", "\u00C3"]]}, - -{"description": "Named entity: Auml with a semi-colon.", -"input":"Ä", -"output": [["Character", "\u00C4"]]}, - -{"description": "Named entity: Auml without a semi-colon.", -"input":"Ä", -"output": ["ParseError", ["Character", "\u00C4"]]}, - -{"description": "Named entity: Beta with a semi-colon.", -"input":"Β", -"output": [["Character", "\u0392"]]}, - -{"description": "Named entity: COPY with a semi-colon.", -"input":"©", -"output": [["Character", "\u00A9"]]}, - -{"description": "Named entity: COPY without a semi-colon.", -"input":"©", -"output": ["ParseError", ["Character", "\u00A9"]]}, - -{"description": "Named entity: Ccedil with a semi-colon.", -"input":"Ç", -"output": [["Character", "\u00C7"]]}, - -{"description": "Named entity: Ccedil without a semi-colon.", -"input":"Ç", -"output": ["ParseError", ["Character", "\u00C7"]]}, - -{"description": "Named entity: Chi with a semi-colon.", -"input":"Χ", -"output": [["Character", "\u03A7"]]}, - -{"description": "Named entity: Dagger with a semi-colon.", -"input":"‡", -"output": [["Character", "\u2021"]]}, - -{"description": "Named entity: Delta with a semi-colon.", -"input":"Δ", -"output": [["Character", "\u0394"]]}, - -{"description": "Named entity: ETH with a semi-colon.", -"input":"Ð", -"output": [["Character", "\u00D0"]]}, - -{"description": "Named entity: ETH without a semi-colon.", -"input":"Ð", -"output": ["ParseError", ["Character", "\u00D0"]]}, - -{"description": "Named entity: Eacute with a semi-colon.", -"input":"É", -"output": [["Character", "\u00C9"]]}, - -{"description": "Named entity: Eacute without a semi-colon.", -"input":"É", -"output": ["ParseError", ["Character", "\u00C9"]]}, - -{"description": "Named entity: Ecirc with a semi-colon.", -"input":"Ê", -"output": [["Character", "\u00CA"]]}, - -{"description": "Named entity: Ecirc without a semi-colon.", -"input":"Ê", -"output": ["ParseError", ["Character", "\u00CA"]]}, - -{"description": "Named entity: Egrave with a semi-colon.", -"input":"È", -"output": [["Character", "\u00C8"]]}, - -{"description": "Named entity: Egrave without a semi-colon.", -"input":"È", -"output": ["ParseError", ["Character", "\u00C8"]]}, - -{"description": "Named entity: Epsilon with a semi-colon.", -"input":"Ε", -"output": [["Character", "\u0395"]]}, - -{"description": "Named entity: Eta with a semi-colon.", -"input":"Η", -"output": [["Character", "\u0397"]]}, - -{"description": "Named entity: Euml with a semi-colon.", -"input":"Ë", -"output": [["Character", "\u00CB"]]}, - -{"description": "Named entity: Euml without a semi-colon.", -"input":"Ë", -"output": ["ParseError", ["Character", "\u00CB"]]}, - -{"description": "Named entity: GT with a semi-colon.", -"input":">", -"output": [["Character", "\u003E"]]}, - -{"description": "Named entity: GT without a semi-colon.", -"input":">", -"output": ["ParseError", ["Character", "\u003E"]]}, - -{"description": "Named entity: Gamma with a semi-colon.", -"input":"Γ", -"output": [["Character", "\u0393"]]}, - -{"description": "Named entity: Iacute with a semi-colon.", -"input":"Í", -"output": [["Character", "\u00CD"]]}, - -{"description": "Named entity: Iacute without a semi-colon.", -"input":"Í", -"output": ["ParseError", ["Character", "\u00CD"]]}, - -{"description": "Named entity: Icirc with a semi-colon.", -"input":"Î", -"output": [["Character", "\u00CE"]]}, - -{"description": "Named entity: Icirc without a semi-colon.", -"input":"Î", -"output": ["ParseError", ["Character", "\u00CE"]]}, - -{"description": "Named entity: Igrave with a semi-colon.", -"input":"Ì", -"output": [["Character", "\u00CC"]]}, - -{"description": "Named entity: Igrave without a semi-colon.", -"input":"Ì", -"output": ["ParseError", ["Character", "\u00CC"]]}, - -{"description": "Named entity: Iota with a semi-colon.", -"input":"Ι", -"output": [["Character", "\u0399"]]}, - -{"description": "Named entity: Iuml with a semi-colon.", -"input":"Ï", -"output": [["Character", "\u00CF"]]}, - -{"description": "Named entity: Iuml without a semi-colon.", -"input":"Ï", -"output": ["ParseError", ["Character", "\u00CF"]]}, - -{"description": "Named entity: Kappa with a semi-colon.", -"input":"Κ", -"output": [["Character", "\u039A"]]}, - -{"description": "Named entity: LT with a semi-colon.", -"input":"<", -"output": [["Character", "\u003C"]]}, - -{"description": "Named entity: LT without a semi-colon.", -"input":"<", -"output": ["ParseError", ["Character", "\u003C"]]}, - -{"description": "Named entity: Lambda with a semi-colon.", -"input":"Λ", -"output": [["Character", "\u039B"]]}, - -{"description": "Named entity: Mu with a semi-colon.", -"input":"Μ", -"output": [["Character", "\u039C"]]}, - -{"description": "Named entity: Ntilde with a semi-colon.", -"input":"Ñ", -"output": [["Character", "\u00D1"]]}, - -{"description": "Named entity: Ntilde without a semi-colon.", -"input":"Ñ", -"output": ["ParseError", ["Character", "\u00D1"]]}, - -{"description": "Named entity: Nu with a semi-colon.", -"input":"Ν", -"output": [["Character", "\u039D"]]}, - -{"description": "Named entity: OElig with a semi-colon.", -"input":"Œ", -"output": [["Character", "\u0152"]]}, - -{"description": "Named entity: Oacute with a semi-colon.", -"input":"Ó", -"output": [["Character", "\u00D3"]]}, - -{"description": "Named entity: Oacute without a semi-colon.", -"input":"Ó", -"output": ["ParseError", ["Character", "\u00D3"]]}, - -{"description": "Named entity: Ocirc with a semi-colon.", -"input":"Ô", -"output": [["Character", "\u00D4"]]}, - -{"description": "Named entity: Ocirc without a semi-colon.", -"input":"Ô", -"output": ["ParseError", ["Character", "\u00D4"]]}, - -{"description": "Named entity: Ograve with a semi-colon.", -"input":"Ò", -"output": [["Character", "\u00D2"]]}, - -{"description": "Named entity: Ograve without a semi-colon.", -"input":"Ò", -"output": ["ParseError", ["Character", "\u00D2"]]}, - -{"description": "Named entity: Omega with a semi-colon.", -"input":"Ω", -"output": [["Character", "\u03A9"]]}, - -{"description": "Named entity: Omicron with a semi-colon.", -"input":"Ο", -"output": [["Character", "\u039F"]]}, - -{"description": "Named entity: Oslash with a semi-colon.", -"input":"Ø", -"output": [["Character", "\u00D8"]]}, - -{"description": "Named entity: Oslash without a semi-colon.", -"input":"Ø", -"output": ["ParseError", ["Character", "\u00D8"]]}, - -{"description": "Named entity: Otilde with a semi-colon.", -"input":"Õ", -"output": [["Character", "\u00D5"]]}, - -{"description": "Named entity: Otilde without a semi-colon.", -"input":"Õ", -"output": ["ParseError", ["Character", "\u00D5"]]}, - -{"description": "Named entity: Ouml with a semi-colon.", -"input":"Ö", -"output": [["Character", "\u00D6"]]}, - -{"description": "Named entity: Ouml without a semi-colon.", -"input":"Ö", -"output": ["ParseError", ["Character", "\u00D6"]]}, - -{"description": "Named entity: Phi with a semi-colon.", -"input":"Φ", -"output": [["Character", "\u03A6"]]}, - -{"description": "Named entity: Pi with a semi-colon.", -"input":"Π", -"output": [["Character", "\u03A0"]]}, - -{"description": "Named entity: Prime with a semi-colon.", -"input":"″", -"output": [["Character", "\u2033"]]}, - -{"description": "Named entity: Psi with a semi-colon.", -"input":"Ψ", -"output": [["Character", "\u03A8"]]}, - -{"description": "Named entity: QUOT with a semi-colon.", -"input":""", -"output": [["Character", "\u0022"]]}, - -{"description": "Named entity: QUOT without a semi-colon.", -"input":""", -"output": ["ParseError", ["Character", "\u0022"]]}, - -{"description": "Named entity: REG with a semi-colon.", -"input":"®", -"output": [["Character", "\u00AE"]]}, - -{"description": "Named entity: REG without a semi-colon.", -"input":"®", -"output": ["ParseError", ["Character", "\u00AE"]]}, - -{"description": "Named entity: Rho with a semi-colon.", -"input":"Ρ", -"output": [["Character", "\u03A1"]]}, - -{"description": "Named entity: Scaron with a semi-colon.", -"input":"Š", -"output": [["Character", "\u0160"]]}, - -{"description": "Named entity: Sigma with a semi-colon.", -"input":"Σ", -"output": [["Character", "\u03A3"]]}, - -{"description": "Named entity: THORN with a semi-colon.", -"input":"Þ", -"output": [["Character", "\u00DE"]]}, - -{"description": "Named entity: THORN without a semi-colon.", -"input":"Þ", -"output": ["ParseError", ["Character", "\u00DE"]]}, - -{"description": "Named entity: TRADE with a semi-colon.", -"input":"™", -"output": [["Character", "\u2122"]]}, - -{"description": "Named entity: Tau with a semi-colon.", -"input":"Τ", -"output": [["Character", "\u03A4"]]}, - -{"description": "Named entity: Theta with a semi-colon.", -"input":"Θ", -"output": [["Character", "\u0398"]]}, - -{"description": "Named entity: Uacute with a semi-colon.", -"input":"Ú", -"output": [["Character", "\u00DA"]]}, - -{"description": "Named entity: Uacute without a semi-colon.", -"input":"Ú", -"output": ["ParseError", ["Character", "\u00DA"]]}, - -{"description": "Named entity: Ucirc with a semi-colon.", -"input":"Û", -"output": [["Character", "\u00DB"]]}, - -{"description": "Named entity: Ucirc without a semi-colon.", -"input":"Û", -"output": ["ParseError", ["Character", "\u00DB"]]}, - -{"description": "Named entity: Ugrave with a semi-colon.", -"input":"Ù", -"output": [["Character", "\u00D9"]]}, - -{"description": "Named entity: Ugrave without a semi-colon.", -"input":"Ù", -"output": ["ParseError", ["Character", "\u00D9"]]}, - -{"description": "Named entity: Upsilon with a semi-colon.", -"input":"Υ", -"output": [["Character", "\u03A5"]]}, - -{"description": "Named entity: Uuml with a semi-colon.", -"input":"Ü", -"output": [["Character", "\u00DC"]]}, - -{"description": "Named entity: Uuml without a semi-colon.", -"input":"Ü", -"output": ["ParseError", ["Character", "\u00DC"]]}, - -{"description": "Named entity: Xi with a semi-colon.", -"input":"Ξ", -"output": [["Character", "\u039E"]]}, - -{"description": "Named entity: Yacute with a semi-colon.", -"input":"Ý", -"output": [["Character", "\u00DD"]]}, - -{"description": "Named entity: Yacute without a semi-colon.", -"input":"Ý", -"output": ["ParseError", ["Character", "\u00DD"]]}, - -{"description": "Named entity: Yuml with a semi-colon.", -"input":"Ÿ", -"output": [["Character", "\u0178"]]}, - -{"description": "Named entity: Zeta with a semi-colon.", -"input":"Ζ", -"output": [["Character", "\u0396"]]}, - -{"description": "Named entity: aacute with a semi-colon.", -"input":"á", -"output": [["Character", "\u00E1"]]}, - -{"description": "Named entity: aacute without a semi-colon.", -"input":"á", -"output": ["ParseError", ["Character", "\u00E1"]]}, - -{"description": "Named entity: acirc with a semi-colon.", -"input":"â", -"output": [["Character", "\u00E2"]]}, - -{"description": "Named entity: acirc without a semi-colon.", -"input":"â", -"output": ["ParseError", ["Character", "\u00E2"]]}, - -{"description": "Named entity: acute with a semi-colon.", -"input":"´", -"output": [["Character", "\u00B4"]]}, - -{"description": "Named entity: acute without a semi-colon.", -"input":"´", -"output": ["ParseError", ["Character", "\u00B4"]]}, - -{"description": "Named entity: aelig with a semi-colon.", -"input":"æ", -"output": [["Character", "\u00E6"]]}, - -{"description": "Named entity: aelig without a semi-colon.", -"input":"æ", -"output": ["ParseError", ["Character", "\u00E6"]]}, - -{"description": "Named entity: agrave with a semi-colon.", -"input":"à", -"output": [["Character", "\u00E0"]]}, - -{"description": "Named entity: agrave without a semi-colon.", -"input":"à", -"output": ["ParseError", ["Character", "\u00E0"]]}, - -{"description": "Named entity: alefsym with a semi-colon.", -"input":"ℵ", -"output": [["Character", "\u2135"]]}, - -{"description": "Named entity: alpha with a semi-colon.", -"input":"α", -"output": [["Character", "\u03B1"]]}, - -{"description": "Named entity: amp with a semi-colon.", -"input":"&", -"output": [["Character", "\u0026"]]}, - -{"description": "Named entity: amp without a semi-colon.", -"input":"&", -"output": ["ParseError", ["Character", "\u0026"]]}, - -{"description": "Named entity: and with a semi-colon.", -"input":"∧", -"output": [["Character", "\u2227"]]}, - -{"description": "Named entity: ang with a semi-colon.", -"input":"∠", -"output": [["Character", "\u2220"]]}, - -{"description": "Named entity: apos with a semi-colon.", -"input":"'", -"output": [["Character", "\u0027"]]}, - -{"description": "Named entity: aring with a semi-colon.", -"input":"å", -"output": [["Character", "\u00E5"]]}, - -{"description": "Named entity: aring without a semi-colon.", -"input":"å", -"output": ["ParseError", ["Character", "\u00E5"]]}, - -{"description": "Named entity: asymp with a semi-colon.", -"input":"≈", -"output": [["Character", "\u2248"]]}, - -{"description": "Named entity: atilde with a semi-colon.", -"input":"ã", -"output": [["Character", "\u00E3"]]}, - -{"description": "Named entity: atilde without a semi-colon.", -"input":"ã", -"output": ["ParseError", ["Character", "\u00E3"]]}, - -{"description": "Named entity: auml with a semi-colon.", -"input":"ä", -"output": [["Character", "\u00E4"]]}, - -{"description": "Named entity: auml without a semi-colon.", -"input":"ä", -"output": ["ParseError", ["Character", "\u00E4"]]}, - -{"description": "Named entity: bdquo with a semi-colon.", -"input":"„", -"output": [["Character", "\u201E"]]}, - -{"description": "Named entity: beta with a semi-colon.", -"input":"β", -"output": [["Character", "\u03B2"]]}, - -{"description": "Named entity: brvbar with a semi-colon.", -"input":"¦", -"output": [["Character", "\u00A6"]]}, - -{"description": "Named entity: brvbar without a semi-colon.", -"input":"¦", -"output": ["ParseError", ["Character", "\u00A6"]]}, - -{"description": "Named entity: bull with a semi-colon.", -"input":"•", -"output": [["Character", "\u2022"]]}, - -{"description": "Named entity: cap with a semi-colon.", -"input":"∩", -"output": [["Character", "\u2229"]]}, - -{"description": "Named entity: ccedil with a semi-colon.", -"input":"ç", -"output": [["Character", "\u00E7"]]}, - -{"description": "Named entity: ccedil without a semi-colon.", -"input":"ç", -"output": ["ParseError", ["Character", "\u00E7"]]}, - -{"description": "Named entity: cedil with a semi-colon.", -"input":"¸", -"output": [["Character", "\u00B8"]]}, - -{"description": "Named entity: cedil without a semi-colon.", -"input":"¸", -"output": ["ParseError", ["Character", "\u00B8"]]}, - -{"description": "Named entity: cent with a semi-colon.", -"input":"¢", -"output": [["Character", "\u00A2"]]}, - -{"description": "Named entity: cent without a semi-colon.", -"input":"¢", -"output": ["ParseError", ["Character", "\u00A2"]]}, - -{"description": "Named entity: chi with a semi-colon.", -"input":"χ", -"output": [["Character", "\u03C7"]]}, - -{"description": "Named entity: circ with a semi-colon.", -"input":"ˆ", -"output": [["Character", "\u02C6"]]}, - -{"description": "Named entity: clubs with a semi-colon.", -"input":"♣", -"output": [["Character", "\u2663"]]}, - -{"description": "Named entity: cong with a semi-colon.", -"input":"≅", -"output": [["Character", "\u2245"]]}, - -{"description": "Named entity: copy with a semi-colon.", -"input":"©", -"output": [["Character", "\u00A9"]]}, - -{"description": "Named entity: copy without a semi-colon.", -"input":"©", -"output": ["ParseError", ["Character", "\u00A9"]]}, - -{"description": "Named entity: crarr with a semi-colon.", -"input":"↵", -"output": [["Character", "\u21B5"]]}, - -{"description": "Named entity: cup with a semi-colon.", -"input":"∪", -"output": [["Character", "\u222A"]]}, - -{"description": "Named entity: curren with a semi-colon.", -"input":"¤", -"output": [["Character", "\u00A4"]]}, - -{"description": "Named entity: curren without a semi-colon.", -"input":"¤", -"output": ["ParseError", ["Character", "\u00A4"]]}, - -{"description": "Named entity: dArr with a semi-colon.", -"input":"⇓", -"output": [["Character", "\u21D3"]]}, - -{"description": "Named entity: dagger with a semi-colon.", -"input":"†", -"output": [["Character", "\u2020"]]}, - -{"description": "Named entity: darr with a semi-colon.", -"input":"↓", -"output": [["Character", "\u2193"]]}, - -{"description": "Named entity: deg with a semi-colon.", -"input":"°", -"output": [["Character", "\u00B0"]]}, - -{"description": "Named entity: deg without a semi-colon.", -"input":"°", -"output": ["ParseError", ["Character", "\u00B0"]]}, - -{"description": "Named entity: delta with a semi-colon.", -"input":"δ", -"output": [["Character", "\u03B4"]]}, - -{"description": "Named entity: diams with a semi-colon.", -"input":"♦", -"output": [["Character", "\u2666"]]}, - -{"description": "Named entity: divide with a semi-colon.", -"input":"÷", -"output": [["Character", "\u00F7"]]}, - -{"description": "Named entity: divide without a semi-colon.", -"input":"÷", -"output": ["ParseError", ["Character", "\u00F7"]]}, - -{"description": "Named entity: eacute with a semi-colon.", -"input":"é", -"output": [["Character", "\u00E9"]]}, - -{"description": "Named entity: eacute without a semi-colon.", -"input":"é", -"output": ["ParseError", ["Character", "\u00E9"]]}, - -{"description": "Named entity: ecirc with a semi-colon.", -"input":"ê", -"output": [["Character", "\u00EA"]]}, - -{"description": "Named entity: ecirc without a semi-colon.", -"input":"ê", -"output": ["ParseError", ["Character", "\u00EA"]]}, - -{"description": "Named entity: egrave with a semi-colon.", -"input":"è", -"output": [["Character", "\u00E8"]]}, - -{"description": "Named entity: egrave without a semi-colon.", -"input":"è", -"output": ["ParseError", ["Character", "\u00E8"]]}, - -{"description": "Named entity: empty with a semi-colon.", -"input":"∅", -"output": [["Character", "\u2205"]]}, - -{"description": "Named entity: emsp with a semi-colon.", -"input":" ", -"output": [["Character", "\u2003"]]}, - -{"description": "Named entity: ensp with a semi-colon.", -"input":" ", -"output": [["Character", "\u2002"]]}, - -{"description": "Named entity: epsilon with a semi-colon.", -"input":"ε", -"output": [["Character", "\u03B5"]]}, - -{"description": "Named entity: equiv with a semi-colon.", -"input":"≡", -"output": [["Character", "\u2261"]]}, - -{"description": "Named entity: eta with a semi-colon.", -"input":"η", -"output": [["Character", "\u03B7"]]}, - -{"description": "Named entity: eth with a semi-colon.", -"input":"ð", -"output": [["Character", "\u00F0"]]}, - -{"description": "Named entity: eth without a semi-colon.", -"input":"ð", -"output": ["ParseError", ["Character", "\u00F0"]]}, - -{"description": "Named entity: euml with a semi-colon.", -"input":"ë", -"output": [["Character", "\u00EB"]]}, - -{"description": "Named entity: euml without a semi-colon.", -"input":"ë", -"output": ["ParseError", ["Character", "\u00EB"]]}, - -{"description": "Named entity: euro with a semi-colon.", -"input":"€", -"output": [["Character", "\u20AC"]]}, - -{"description": "Named entity: exist with a semi-colon.", -"input":"∃", -"output": [["Character", "\u2203"]]}, - -{"description": "Named entity: fnof with a semi-colon.", -"input":"ƒ", -"output": [["Character", "\u0192"]]}, - -{"description": "Named entity: forall with a semi-colon.", -"input":"∀", -"output": [["Character", "\u2200"]]}, - -{"description": "Named entity: frac12 with a semi-colon.", -"input":"½", -"output": [["Character", "\u00BD"]]}, - -{"description": "Named entity: frac12 without a semi-colon.", -"input":"½", -"output": ["ParseError", ["Character", "\u00BD"]]}, - -{"description": "Named entity: frac14 with a semi-colon.", -"input":"¼", -"output": [["Character", "\u00BC"]]}, - -{"description": "Named entity: frac14 without a semi-colon.", -"input":"¼", -"output": ["ParseError", ["Character", "\u00BC"]]}, - -{"description": "Named entity: frac34 with a semi-colon.", -"input":"¾", -"output": [["Character", "\u00BE"]]}, - -{"description": "Named entity: frac34 without a semi-colon.", -"input":"¾", -"output": ["ParseError", ["Character", "\u00BE"]]}, - -{"description": "Named entity: frasl with a semi-colon.", -"input":"⁄", -"output": [["Character", "\u2044"]]}, - -{"description": "Named entity: gamma with a semi-colon.", -"input":"γ", -"output": [["Character", "\u03B3"]]}, - -{"description": "Named entity: ge with a semi-colon.", -"input":"≥", -"output": [["Character", "\u2265"]]}, - -{"description": "Named entity: gt with a semi-colon.", -"input":">", -"output": [["Character", "\u003E"]]}, - -{"description": "Named entity: gt without a semi-colon.", -"input":">", -"output": ["ParseError", ["Character", "\u003E"]]}, - -{"description": "Named entity: hArr with a semi-colon.", -"input":"⇔", -"output": [["Character", "\u21D4"]]}, - -{"description": "Named entity: harr with a semi-colon.", -"input":"↔", -"output": [["Character", "\u2194"]]}, - -{"description": "Named entity: hearts with a semi-colon.", -"input":"♥", -"output": [["Character", "\u2665"]]}, - -{"description": "Named entity: hellip with a semi-colon.", -"input":"…", -"output": [["Character", "\u2026"]]}, - -{"description": "Named entity: iacute with a semi-colon.", -"input":"í", -"output": [["Character", "\u00ED"]]}, - -{"description": "Named entity: iacute without a semi-colon.", -"input":"í", -"output": ["ParseError", ["Character", "\u00ED"]]}, - -{"description": "Named entity: icirc with a semi-colon.", -"input":"î", -"output": [["Character", "\u00EE"]]}, - -{"description": "Named entity: icirc without a semi-colon.", -"input":"î", -"output": ["ParseError", ["Character", "\u00EE"]]}, - -{"description": "Named entity: iexcl with a semi-colon.", -"input":"¡", -"output": [["Character", "\u00A1"]]}, - -{"description": "Named entity: iexcl without a semi-colon.", -"input":"¡", -"output": ["ParseError", ["Character", "\u00A1"]]}, - -{"description": "Named entity: igrave with a semi-colon.", -"input":"ì", -"output": [["Character", "\u00EC"]]}, - -{"description": "Named entity: igrave without a semi-colon.", -"input":"ì", -"output": ["ParseError", ["Character", "\u00EC"]]}, - -{"description": "Named entity: image with a semi-colon.", -"input":"ℑ", -"output": [["Character", "\u2111"]]}, - -{"description": "Named entity: infin with a semi-colon.", -"input":"∞", -"output": [["Character", "\u221E"]]}, - -{"description": "Named entity: int with a semi-colon.", -"input":"∫", -"output": [["Character", "\u222B"]]}, - -{"description": "Named entity: iota with a semi-colon.", -"input":"ι", -"output": [["Character", "\u03B9"]]}, - -{"description": "Named entity: iquest with a semi-colon.", -"input":"¿", -"output": [["Character", "\u00BF"]]}, - -{"description": "Named entity: iquest without a semi-colon.", -"input":"¿", -"output": ["ParseError", ["Character", "\u00BF"]]}, - -{"description": "Named entity: isin with a semi-colon.", -"input":"∈", -"output": [["Character", "\u2208"]]}, - -{"description": "Named entity: iuml with a semi-colon.", -"input":"ï", -"output": [["Character", "\u00EF"]]}, - -{"description": "Named entity: iuml without a semi-colon.", -"input":"ï", -"output": ["ParseError", ["Character", "\u00EF"]]}, - -{"description": "Named entity: kappa with a semi-colon.", -"input":"κ", -"output": [["Character", "\u03BA"]]}, - -{"description": "Named entity: lArr with a semi-colon.", -"input":"⇐", -"output": [["Character", "\u21D0"]]}, - -{"description": "Named entity: lambda with a semi-colon.", -"input":"λ", -"output": [["Character", "\u03BB"]]}, - -{"description": "Named entity: lang with a semi-colon.", -"input":"⟨", -"output": [["Character", "\u27E8"]]}, - -{"description": "Named entity: laquo with a semi-colon.", -"input":"«", -"output": [["Character", "\u00AB"]]}, - -{"description": "Named entity: laquo without a semi-colon.", -"input":"«", -"output": ["ParseError", ["Character", "\u00AB"]]}, - -{"description": "Named entity: larr with a semi-colon.", -"input":"←", -"output": [["Character", "\u2190"]]}, - -{"description": "Named entity: lceil with a semi-colon.", -"input":"⌈", -"output": [["Character", "\u2308"]]}, - -{"description": "Named entity: ldquo with a semi-colon.", -"input":"“", -"output": [["Character", "\u201C"]]}, - -{"description": "Named entity: le with a semi-colon.", -"input":"≤", -"output": [["Character", "\u2264"]]}, - -{"description": "Named entity: lfloor with a semi-colon.", -"input":"⌊", -"output": [["Character", "\u230A"]]}, - -{"description": "Named entity: lowast with a semi-colon.", -"input":"∗", -"output": [["Character", "\u2217"]]}, - -{"description": "Named entity: loz with a semi-colon.", -"input":"◊", -"output": [["Character", "\u25CA"]]}, - -{"description": "Named entity: lrm with a semi-colon.", -"input":"‎", -"output": [["Character", "\u200E"]]}, - -{"description": "Named entity: lsaquo with a semi-colon.", -"input":"‹", -"output": [["Character", "\u2039"]]}, - -{"description": "Named entity: lsquo with a semi-colon.", -"input":"‘", -"output": [["Character", "\u2018"]]}, - -{"description": "Named entity: lt with a semi-colon.", -"input":"<", -"output": [["Character", "\u003C"]]}, - -{"description": "Named entity: lt without a semi-colon.", -"input":"<", -"output": ["ParseError", ["Character", "\u003C"]]}, - -{"description": "Named entity: macr with a semi-colon.", -"input":"¯", -"output": [["Character", "\u00AF"]]}, - -{"description": "Named entity: macr without a semi-colon.", -"input":"¯", -"output": ["ParseError", ["Character", "\u00AF"]]}, - -{"description": "Named entity: mdash with a semi-colon.", -"input":"—", -"output": [["Character", "\u2014"]]}, - -{"description": "Named entity: micro with a semi-colon.", -"input":"µ", -"output": [["Character", "\u00B5"]]}, - -{"description": "Named entity: micro without a semi-colon.", -"input":"µ", -"output": ["ParseError", ["Character", "\u00B5"]]}, - -{"description": "Named entity: middot with a semi-colon.", -"input":"·", -"output": [["Character", "\u00B7"]]}, - -{"description": "Named entity: middot without a semi-colon.", -"input":"·", -"output": ["ParseError", ["Character", "\u00B7"]]}, - -{"description": "Named entity: minus with a semi-colon.", -"input":"−", -"output": [["Character", "\u2212"]]}, - -{"description": "Named entity: mu with a semi-colon.", -"input":"μ", -"output": [["Character", "\u03BC"]]}, - -{"description": "Named entity: nabla with a semi-colon.", -"input":"∇", -"output": [["Character", "\u2207"]]}, - -{"description": "Named entity: nbsp with a semi-colon.", -"input":" ", -"output": [["Character", "\u00A0"]]}, - -{"description": "Named entity: nbsp without a semi-colon.", -"input":" ", -"output": ["ParseError", ["Character", "\u00A0"]]}, - -{"description": "Named entity: ndash with a semi-colon.", -"input":"–", -"output": [["Character", "\u2013"]]}, - -{"description": "Named entity: ne with a semi-colon.", -"input":"≠", -"output": [["Character", "\u2260"]]}, - -{"description": "Named entity: ni with a semi-colon.", -"input":"∋", -"output": [["Character", "\u220B"]]}, - -{"description": "Named entity: not with a semi-colon.", -"input":"¬", -"output": [["Character", "\u00AC"]]}, - -{"description": "Named entity: not without a semi-colon.", -"input":"¬", -"output": ["ParseError", ["Character", "\u00AC"]]}, - -{"description": "Named entity: notin with a semi-colon.", -"input":"∉", -"output": [["Character", "\u2209"]]}, - -{"description": "Named entity: nsub with a semi-colon.", -"input":"⊄", -"output": [["Character", "\u2284"]]}, - -{"description": "Named entity: ntilde with a semi-colon.", -"input":"ñ", -"output": [["Character", "\u00F1"]]}, - -{"description": "Named entity: ntilde without a semi-colon.", -"input":"ñ", -"output": ["ParseError", ["Character", "\u00F1"]]}, - -{"description": "Named entity: nu with a semi-colon.", -"input":"ν", -"output": [["Character", "\u03BD"]]}, - -{"description": "Named entity: oacute with a semi-colon.", -"input":"ó", -"output": [["Character", "\u00F3"]]}, - -{"description": "Named entity: oacute without a semi-colon.", -"input":"ó", -"output": ["ParseError", ["Character", "\u00F3"]]}, - -{"description": "Named entity: ocirc with a semi-colon.", -"input":"ô", -"output": [["Character", "\u00F4"]]}, - -{"description": "Named entity: ocirc without a semi-colon.", -"input":"ô", -"output": ["ParseError", ["Character", "\u00F4"]]}, - -{"description": "Named entity: oelig with a semi-colon.", -"input":"œ", -"output": [["Character", "\u0153"]]}, - -{"description": "Named entity: ograve with a semi-colon.", -"input":"ò", -"output": [["Character", "\u00F2"]]}, - -{"description": "Named entity: ograve without a semi-colon.", -"input":"ò", -"output": ["ParseError", ["Character", "\u00F2"]]}, - -{"description": "Named entity: oline with a semi-colon.", -"input":"‾", -"output": [["Character", "\u203E"]]}, - -{"description": "Named entity: omega with a semi-colon.", -"input":"ω", -"output": [["Character", "\u03C9"]]}, - -{"description": "Named entity: omicron with a semi-colon.", -"input":"ο", -"output": [["Character", "\u03BF"]]}, - -{"description": "Named entity: oplus with a semi-colon.", -"input":"⊕", -"output": [["Character", "\u2295"]]}, - -{"description": "Named entity: or with a semi-colon.", -"input":"∨", -"output": [["Character", "\u2228"]]}, - -{"description": "Named entity: ordf with a semi-colon.", -"input":"ª", -"output": [["Character", "\u00AA"]]}, - -{"description": "Named entity: ordf without a semi-colon.", -"input":"ª", -"output": ["ParseError", ["Character", "\u00AA"]]}, - -{"description": "Named entity: ordm with a semi-colon.", -"input":"º", -"output": [["Character", "\u00BA"]]}, - -{"description": "Named entity: ordm without a semi-colon.", -"input":"º", -"output": ["ParseError", ["Character", "\u00BA"]]}, - -{"description": "Named entity: oslash with a semi-colon.", -"input":"ø", -"output": [["Character", "\u00F8"]]}, - -{"description": "Named entity: oslash without a semi-colon.", -"input":"ø", -"output": ["ParseError", ["Character", "\u00F8"]]}, - -{"description": "Named entity: otilde with a semi-colon.", -"input":"õ", -"output": [["Character", "\u00F5"]]}, - -{"description": "Named entity: otilde without a semi-colon.", -"input":"õ", -"output": ["ParseError", ["Character", "\u00F5"]]}, - -{"description": "Named entity: otimes with a semi-colon.", -"input":"⊗", -"output": [["Character", "\u2297"]]}, - -{"description": "Named entity: ouml with a semi-colon.", -"input":"ö", -"output": [["Character", "\u00F6"]]}, - -{"description": "Named entity: ouml without a semi-colon.", -"input":"ö", -"output": ["ParseError", ["Character", "\u00F6"]]}, - -{"description": "Named entity: para with a semi-colon.", -"input":"¶", -"output": [["Character", "\u00B6"]]}, - -{"description": "Named entity: para without a semi-colon.", -"input":"¶", -"output": ["ParseError", ["Character", "\u00B6"]]}, - -{"description": "Named entity: part with a semi-colon.", -"input":"∂", -"output": [["Character", "\u2202"]]}, - -{"description": "Named entity: permil with a semi-colon.", -"input":"‰", -"output": [["Character", "\u2030"]]}, - -{"description": "Named entity: perp with a semi-colon.", -"input":"⊥", -"output": [["Character", "\u22A5"]]}, - -{"description": "Named entity: phi with a semi-colon.", -"input":"φ", -"output": [["Character", "\u03C6"]]}, - -{"description": "Named entity: pi with a semi-colon.", -"input":"π", -"output": [["Character", "\u03C0"]]}, - -{"description": "Named entity: piv with a semi-colon.", -"input":"ϖ", -"output": [["Character", "\u03D6"]]}, - -{"description": "Named entity: plusmn with a semi-colon.", -"input":"±", -"output": [["Character", "\u00B1"]]}, - -{"description": "Named entity: plusmn without a semi-colon.", -"input":"±", -"output": ["ParseError", ["Character", "\u00B1"]]}, - -{"description": "Named entity: pound with a semi-colon.", -"input":"£", -"output": [["Character", "\u00A3"]]}, - -{"description": "Named entity: pound without a semi-colon.", -"input":"£", -"output": ["ParseError", ["Character", "\u00A3"]]}, - -{"description": "Named entity: prime with a semi-colon.", -"input":"′", -"output": [["Character", "\u2032"]]}, - -{"description": "Named entity: prod with a semi-colon.", -"input":"∏", -"output": [["Character", "\u220F"]]}, - -{"description": "Named entity: prop with a semi-colon.", -"input":"∝", -"output": [["Character", "\u221D"]]}, - -{"description": "Named entity: psi with a semi-colon.", -"input":"ψ", -"output": [["Character", "\u03C8"]]}, - -{"description": "Named entity: quot with a semi-colon.", -"input":""", -"output": [["Character", "\u0022"]]}, - -{"description": "Named entity: quot without a semi-colon.", -"input":""", -"output": ["ParseError", ["Character", "\u0022"]]}, - -{"description": "Named entity: rArr with a semi-colon.", -"input":"⇒", -"output": [["Character", "\u21D2"]]}, - -{"description": "Named entity: radic with a semi-colon.", -"input":"√", -"output": [["Character", "\u221A"]]}, - -{"description": "Named entity: rang with a semi-colon.", -"input":"⟩", -"output": [["Character", "\u27E9"]]}, - -{"description": "Named entity: raquo with a semi-colon.", -"input":"»", -"output": [["Character", "\u00BB"]]}, - -{"description": "Named entity: raquo without a semi-colon.", -"input":"»", -"output": ["ParseError", ["Character", "\u00BB"]]}, - -{"description": "Named entity: rarr with a semi-colon.", -"input":"→", -"output": [["Character", "\u2192"]]}, - -{"description": "Named entity: rceil with a semi-colon.", -"input":"⌉", -"output": [["Character", "\u2309"]]}, - -{"description": "Named entity: rdquo with a semi-colon.", -"input":"”", -"output": [["Character", "\u201D"]]}, - -{"description": "Named entity: real with a semi-colon.", -"input":"ℜ", -"output": [["Character", "\u211C"]]}, - -{"description": "Named entity: reg with a semi-colon.", -"input":"®", -"output": [["Character", "\u00AE"]]}, - -{"description": "Named entity: reg without a semi-colon.", -"input":"®", -"output": ["ParseError", ["Character", "\u00AE"]]}, - -{"description": "Named entity: rfloor with a semi-colon.", -"input":"⌋", -"output": [["Character", "\u230B"]]}, - -{"description": "Named entity: rho with a semi-colon.", -"input":"ρ", -"output": [["Character", "\u03C1"]]}, - -{"description": "Named entity: rlm with a semi-colon.", -"input":"‏", -"output": [["Character", "\u200F"]]}, - -{"description": "Named entity: rsaquo with a semi-colon.", -"input":"›", -"output": [["Character", "\u203A"]]}, - -{"description": "Named entity: rsquo with a semi-colon.", -"input":"’", -"output": [["Character", "\u2019"]]}, - -{"description": "Named entity: sbquo with a semi-colon.", -"input":"‚", -"output": [["Character", "\u201A"]]}, - -{"description": "Named entity: scaron with a semi-colon.", -"input":"š", -"output": [["Character", "\u0161"]]}, - -{"description": "Named entity: sdot with a semi-colon.", -"input":"⋅", -"output": [["Character", "\u22C5"]]}, - -{"description": "Named entity: sect with a semi-colon.", -"input":"§", -"output": [["Character", "\u00A7"]]}, - -{"description": "Named entity: sect without a semi-colon.", -"input":"§", -"output": ["ParseError", ["Character", "\u00A7"]]}, - -{"description": "Named entity: shy with a semi-colon.", -"input":"­", -"output": [["Character", "\u00AD"]]}, - -{"description": "Named entity: shy without a semi-colon.", -"input":"­", -"output": ["ParseError", ["Character", "\u00AD"]]}, - -{"description": "Named entity: sigma with a semi-colon.", -"input":"σ", -"output": [["Character", "\u03C3"]]}, - -{"description": "Named entity: sigmaf with a semi-colon.", -"input":"ς", -"output": [["Character", "\u03C2"]]}, - -{"description": "Named entity: sim with a semi-colon.", -"input":"∼", -"output": [["Character", "\u223C"]]}, - -{"description": "Named entity: spades with a semi-colon.", -"input":"♠", -"output": [["Character", "\u2660"]]}, - -{"description": "Named entity: sub with a semi-colon.", -"input":"⊂", -"output": [["Character", "\u2282"]]}, - -{"description": "Named entity: sube with a semi-colon.", -"input":"⊆", -"output": [["Character", "\u2286"]]}, - -{"description": "Named entity: sum with a semi-colon.", -"input":"∑", -"output": [["Character", "\u2211"]]}, - -{"description": "Named entity: sup1 with a semi-colon.", -"input":"¹", -"output": [["Character", "\u00B9"]]}, - -{"description": "Named entity: sup1 without a semi-colon.", -"input":"¹", -"output": ["ParseError", ["Character", "\u00B9"]]}, - -{"description": "Named entity: sup2 with a semi-colon.", -"input":"²", -"output": [["Character", "\u00B2"]]}, - -{"description": "Named entity: sup2 without a semi-colon.", -"input":"²", -"output": ["ParseError", ["Character", "\u00B2"]]}, - -{"description": "Named entity: sup3 with a semi-colon.", -"input":"³", -"output": [["Character", "\u00B3"]]}, - -{"description": "Named entity: sup3 without a semi-colon.", -"input":"³", -"output": ["ParseError", ["Character", "\u00B3"]]}, - -{"description": "Named entity: sup with a semi-colon.", -"input":"⊃", -"output": [["Character", "\u2283"]]}, - -{"description": "Named entity: supe with a semi-colon.", -"input":"⊇", -"output": [["Character", "\u2287"]]}, - -{"description": "Named entity: szlig with a semi-colon.", -"input":"ß", -"output": [["Character", "\u00DF"]]}, - -{"description": "Named entity: szlig without a semi-colon.", -"input":"ß", -"output": ["ParseError", ["Character", "\u00DF"]]}, - -{"description": "Named entity: tau with a semi-colon.", -"input":"τ", -"output": [["Character", "\u03C4"]]}, - -{"description": "Named entity: there4 with a semi-colon.", -"input":"∴", -"output": [["Character", "\u2234"]]}, - -{"description": "Named entity: theta with a semi-colon.", -"input":"θ", -"output": [["Character", "\u03B8"]]}, - -{"description": "Named entity: thetasym with a semi-colon.", -"input":"ϑ", -"output": [["Character", "\u03D1"]]}, - -{"description": "Named entity: thinsp with a semi-colon.", -"input":" ", -"output": [["Character", "\u2009"]]}, - -{"description": "Named entity: thorn with a semi-colon.", -"input":"þ", -"output": [["Character", "\u00FE"]]}, - -{"description": "Named entity: thorn without a semi-colon.", -"input":"þ", -"output": ["ParseError", ["Character", "\u00FE"]]}, - -{"description": "Named entity: tilde with a semi-colon.", -"input":"˜", -"output": [["Character", "\u02DC"]]}, - -{"description": "Named entity: times with a semi-colon.", -"input":"×", -"output": [["Character", "\u00D7"]]}, - -{"description": "Named entity: times without a semi-colon.", -"input":"×", -"output": ["ParseError", ["Character", "\u00D7"]]}, - -{"description": "Named entity: trade with a semi-colon.", -"input":"™", -"output": [["Character", "\u2122"]]}, - -{"description": "Named entity: uArr with a semi-colon.", -"input":"⇑", -"output": [["Character", "\u21D1"]]}, - -{"description": "Named entity: uacute with a semi-colon.", -"input":"ú", -"output": [["Character", "\u00FA"]]}, - -{"description": "Named entity: uacute without a semi-colon.", -"input":"ú", -"output": ["ParseError", ["Character", "\u00FA"]]}, - -{"description": "Named entity: uarr with a semi-colon.", -"input":"↑", -"output": [["Character", "\u2191"]]}, - -{"description": "Named entity: ucirc with a semi-colon.", -"input":"û", -"output": [["Character", "\u00FB"]]}, - -{"description": "Named entity: ucirc without a semi-colon.", -"input":"û", -"output": ["ParseError", ["Character", "\u00FB"]]}, - -{"description": "Named entity: ugrave with a semi-colon.", -"input":"ù", -"output": [["Character", "\u00F9"]]}, - -{"description": "Named entity: ugrave without a semi-colon.", -"input":"ù", -"output": ["ParseError", ["Character", "\u00F9"]]}, - -{"description": "Named entity: uml with a semi-colon.", -"input":"¨", -"output": [["Character", "\u00A8"]]}, - -{"description": "Named entity: uml without a semi-colon.", -"input":"¨", -"output": ["ParseError", ["Character", "\u00A8"]]}, - -{"description": "Named entity: upsih with a semi-colon.", -"input":"ϒ", -"output": [["Character", "\u03D2"]]}, - -{"description": "Named entity: upsilon with a semi-colon.", -"input":"υ", -"output": [["Character", "\u03C5"]]}, - -{"description": "Named entity: uuml with a semi-colon.", -"input":"ü", -"output": [["Character", "\u00FC"]]}, - -{"description": "Named entity: uuml without a semi-colon.", -"input":"ü", -"output": ["ParseError", ["Character", "\u00FC"]]}, - -{"description": "Named entity: weierp with a semi-colon.", -"input":"℘", -"output": [["Character", "\u2118"]]}, - -{"description": "Named entity: xi with a semi-colon.", -"input":"ξ", -"output": [["Character", "\u03BE"]]}, - -{"description": "Named entity: yacute with a semi-colon.", -"input":"ý", -"output": [["Character", "\u00FD"]]}, - -{"description": "Named entity: yacute without a semi-colon.", -"input":"ý", -"output": ["ParseError", ["Character", "\u00FD"]]}, - -{"description": "Named entity: yen with a semi-colon.", -"input":"¥", -"output": [["Character", "\u00A5"]]}, - -{"description": "Named entity: yen without a semi-colon.", -"input":"¥", -"output": ["ParseError", ["Character", "\u00A5"]]}, - -{"description": "Named entity: yuml with a semi-colon.", -"input":"ÿ", -"output": [["Character", "\u00FF"]]}, - -{"description": "Named entity: yuml without a semi-colon.", -"input":"ÿ", -"output": ["ParseError", ["Character", "\u00FF"]]}, - -{"description": "Named entity: zeta with a semi-colon.", -"input":"ζ", -"output": [["Character", "\u03B6"]]}, - -{"description": "Named entity: zwj with a semi-colon.", -"input":"‍", -"output": [["Character", "\u200D"]]}, - -{"description": "Named entity: zwnj with a semi-colon.", -"input":"‌", -"output": [["Character", "\u200C"]]}, - -{"description": "Bad named entity: Alpha without a semi-colon.", -"input":"&Alpha", -"output": ["ParseError", ["Character", "&Alpha"]]}, - -{"description": "Bad named entity: alpha without a semi-colon.", -"input":"&alpha", -"output": ["ParseError", ["Character", "&alpha"]]}, - -{"description": "Bad named entity: and without a semi-colon.", -"input":"&and", -"output": ["ParseError", ["Character", "&and"]]}, - -{"description": "Bad named entity: ang without a semi-colon.", -"input":"&ang", -"output": ["ParseError", ["Character", "&ang"]]}, - -{"description": "Bad named entity: apos without a semi-colon.", -"input":"&apos", -"output": ["ParseError", ["Character", "&apos"]]}, - -{"description": "Bad named entity: asymp without a semi-colon.", -"input":"&asymp", -"output": ["ParseError", ["Character", "&asymp"]]}, - -{"description": "Bad named entity: bdquo without a semi-colon.", -"input":"&bdquo", -"output": ["ParseError", ["Character", "&bdquo"]]}, - -{"description": "Bad named entity: Beta without a semi-colon.", -"input":"&Beta", -"output": ["ParseError", ["Character", "&Beta"]]}, - -{"description": "Bad named entity: beta without a semi-colon.", -"input":"&beta", -"output": ["ParseError", ["Character", "&beta"]]}, - -{"description": "Bad named entity: bull without a semi-colon.", -"input":"&bull", -"output": ["ParseError", ["Character", "&bull"]]}, - -{"description": "Bad named entity: cap without a semi-colon.", -"input":"&cap", -"output": ["ParseError", ["Character", "&cap"]]}, - -{"description": "Bad named entity: Chi without a semi-colon.", -"input":"&Chi", -"output": ["ParseError", ["Character", "&Chi"]]}, - -{"description": "Bad named entity: chi without a semi-colon.", -"input":"&chi", -"output": ["ParseError", ["Character", "&chi"]]}, - -{"description": "Bad named entity: circ without a semi-colon.", -"input":"&circ", -"output": ["ParseError", ["Character", "&circ"]]}, - -{"description": "Bad named entity: clubs without a semi-colon.", -"input":"&clubs", -"output": ["ParseError", ["Character", "&clubs"]]}, - -{"description": "Bad named entity: cong without a semi-colon.", -"input":"&cong", -"output": ["ParseError", ["Character", "&cong"]]}, - -{"description": "Bad named entity: crarr without a semi-colon.", -"input":"&crarr", -"output": ["ParseError", ["Character", "&crarr"]]}, - -{"description": "Bad named entity: cup without a semi-colon.", -"input":"&cup", -"output": ["ParseError", ["Character", "&cup"]]}, - -{"description": "Bad named entity: dagger without a semi-colon.", -"input":"&dagger", -"output": ["ParseError", ["Character", "&dagger"]]}, - -{"description": "Bad named entity: dagger without a semi-colon.", -"input":"&dagger", -"output": ["ParseError", ["Character", "&dagger"]]}, - -{"description": "Bad named entity: darr without a semi-colon.", -"input":"&darr", -"output": ["ParseError", ["Character", "&darr"]]}, - -{"description": "Bad named entity: darr without a semi-colon.", -"input":"&darr", -"output": ["ParseError", ["Character", "&darr"]]}, - -{"description": "Bad named entity: Delta without a semi-colon.", -"input":"&Delta", -"output": ["ParseError", ["Character", "&Delta"]]}, - -{"description": "Bad named entity: delta without a semi-colon.", -"input":"&delta", -"output": ["ParseError", ["Character", "&delta"]]}, - -{"description": "Bad named entity: diams without a semi-colon.", -"input":"&diams", -"output": ["ParseError", ["Character", "&diams"]]}, - -{"description": "Bad named entity: empty without a semi-colon.", -"input":"&empty", -"output": ["ParseError", ["Character", "&empty"]]}, - -{"description": "Bad named entity: emsp without a semi-colon.", -"input":"&emsp", -"output": ["ParseError", ["Character", "&emsp"]]}, - -{"description": "Bad named entity: ensp without a semi-colon.", -"input":"&ensp", -"output": ["ParseError", ["Character", "&ensp"]]}, - -{"description": "Bad named entity: Epsilon without a semi-colon.", -"input":"&Epsilon", -"output": ["ParseError", ["Character", "&Epsilon"]]}, - -{"description": "Bad named entity: epsilon without a semi-colon.", -"input":"&epsilon", -"output": ["ParseError", ["Character", "&epsilon"]]}, - -{"description": "Bad named entity: equiv without a semi-colon.", -"input":"&equiv", -"output": ["ParseError", ["Character", "&equiv"]]}, - -{"description": "Bad named entity: Eta without a semi-colon.", -"input":"&Eta", -"output": ["ParseError", ["Character", "&Eta"]]}, - -{"description": "Bad named entity: eta without a semi-colon.", -"input":"&eta", -"output": ["ParseError", ["Character", "&eta"]]}, - -{"description": "Bad named entity: euro without a semi-colon.", -"input":"&euro", -"output": ["ParseError", ["Character", "&euro"]]}, - -{"description": "Bad named entity: exist without a semi-colon.", -"input":"&exist", -"output": ["ParseError", ["Character", "&exist"]]}, - -{"description": "Bad named entity: fnof without a semi-colon.", -"input":"&fnof", -"output": ["ParseError", ["Character", "&fnof"]]}, - -{"description": "Bad named entity: forall without a semi-colon.", -"input":"&forall", -"output": ["ParseError", ["Character", "&forall"]]}, - -{"description": "Bad named entity: frasl without a semi-colon.", -"input":"&frasl", -"output": ["ParseError", ["Character", "&frasl"]]}, - -{"description": "Bad named entity: Gamma without a semi-colon.", -"input":"&Gamma", -"output": ["ParseError", ["Character", "&Gamma"]]}, - -{"description": "Bad named entity: gamma without a semi-colon.", -"input":"&gamma", -"output": ["ParseError", ["Character", "&gamma"]]}, - -{"description": "Bad named entity: ge without a semi-colon.", -"input":"&ge", -"output": ["ParseError", ["Character", "&ge"]]}, - -{"description": "Bad named entity: harr without a semi-colon.", -"input":"&harr", -"output": ["ParseError", ["Character", "&harr"]]}, - -{"description": "Bad named entity: harr without a semi-colon.", -"input":"&harr", -"output": ["ParseError", ["Character", "&harr"]]}, - -{"description": "Bad named entity: hearts without a semi-colon.", -"input":"&hearts", -"output": ["ParseError", ["Character", "&hearts"]]}, - -{"description": "Bad named entity: hellip without a semi-colon.", -"input":"&hellip", -"output": ["ParseError", ["Character", "&hellip"]]}, - -{"description": "Bad named entity: image without a semi-colon.", -"input":"&image", -"output": ["ParseError", ["Character", "&image"]]}, - -{"description": "Bad named entity: infin without a semi-colon.", -"input":"&infin", -"output": ["ParseError", ["Character", "&infin"]]}, - -{"description": "Bad named entity: int without a semi-colon.", -"input":"&int", -"output": ["ParseError", ["Character", "&int"]]}, - -{"description": "Bad named entity: Iota without a semi-colon.", -"input":"&Iota", -"output": ["ParseError", ["Character", "&Iota"]]}, - -{"description": "Bad named entity: iota without a semi-colon.", -"input":"&iota", -"output": ["ParseError", ["Character", "&iota"]]}, - -{"description": "Bad named entity: isin without a semi-colon.", -"input":"&isin", -"output": ["ParseError", ["Character", "&isin"]]}, - -{"description": "Bad named entity: Kappa without a semi-colon.", -"input":"&Kappa", -"output": ["ParseError", ["Character", "&Kappa"]]}, - -{"description": "Bad named entity: kappa without a semi-colon.", -"input":"&kappa", -"output": ["ParseError", ["Character", "&kappa"]]}, - -{"description": "Bad named entity: Lambda without a semi-colon.", -"input":"&Lambda", -"output": ["ParseError", ["Character", "&Lambda"]]}, - -{"description": "Bad named entity: lambda without a semi-colon.", -"input":"&lambda", -"output": ["ParseError", ["Character", "&lambda"]]}, - -{"description": "Bad named entity: lang without a semi-colon.", -"input":"&lang", -"output": ["ParseError", ["Character", "&lang"]]}, - -{"description": "Bad named entity: larr without a semi-colon.", -"input":"&larr", -"output": ["ParseError", ["Character", "&larr"]]}, - -{"description": "Bad named entity: larr without a semi-colon.", -"input":"&larr", -"output": ["ParseError", ["Character", "&larr"]]}, - -{"description": "Bad named entity: lceil without a semi-colon.", -"input":"&lceil", -"output": ["ParseError", ["Character", "&lceil"]]}, - -{"description": "Bad named entity: ldquo without a semi-colon.", -"input":"&ldquo", -"output": ["ParseError", ["Character", "&ldquo"]]}, - -{"description": "Bad named entity: le without a semi-colon.", -"input":"&le", -"output": ["ParseError", ["Character", "&le"]]}, - -{"description": "Bad named entity: lfloor without a semi-colon.", -"input":"&lfloor", -"output": ["ParseError", ["Character", "&lfloor"]]}, - -{"description": "Bad named entity: lowast without a semi-colon.", -"input":"&lowast", -"output": ["ParseError", ["Character", "&lowast"]]}, - -{"description": "Bad named entity: loz without a semi-colon.", -"input":"&loz", -"output": ["ParseError", ["Character", "&loz"]]}, - -{"description": "Bad named entity: lrm without a semi-colon.", -"input":"&lrm", -"output": ["ParseError", ["Character", "&lrm"]]}, - -{"description": "Bad named entity: lsaquo without a semi-colon.", -"input":"&lsaquo", -"output": ["ParseError", ["Character", "&lsaquo"]]}, - -{"description": "Bad named entity: lsquo without a semi-colon.", -"input":"&lsquo", -"output": ["ParseError", ["Character", "&lsquo"]]}, - -{"description": "Bad named entity: mdash without a semi-colon.", -"input":"&mdash", -"output": ["ParseError", ["Character", "&mdash"]]}, - -{"description": "Bad named entity: minus without a semi-colon.", -"input":"&minus", -"output": ["ParseError", ["Character", "&minus"]]}, - -{"description": "Bad named entity: Mu without a semi-colon.", -"input":"&Mu", -"output": ["ParseError", ["Character", "&Mu"]]}, - -{"description": "Bad named entity: mu without a semi-colon.", -"input":"&mu", -"output": ["ParseError", ["Character", "&mu"]]}, - -{"description": "Bad named entity: nabla without a semi-colon.", -"input":"&nabla", -"output": ["ParseError", ["Character", "&nabla"]]}, - -{"description": "Bad named entity: ndash without a semi-colon.", -"input":"&ndash", -"output": ["ParseError", ["Character", "&ndash"]]}, - -{"description": "Bad named entity: ne without a semi-colon.", -"input":"&ne", -"output": ["ParseError", ["Character", "&ne"]]}, - -{"description": "Bad named entity: ni without a semi-colon.", -"input":"&ni", -"output": ["ParseError", ["Character", "&ni"]]}, - -{"description": "Bad named entity: notin without a semi-colon.", -"input":"¬in", -"output": ["ParseError", ["Character", "\u00ACin"]]}, - -{"description": "Bad named entity: nsub without a semi-colon.", -"input":"&nsub", -"output": ["ParseError", ["Character", "&nsub"]]}, - -{"description": "Bad named entity: Nu without a semi-colon.", -"input":"&Nu", -"output": ["ParseError", ["Character", "&Nu"]]}, - -{"description": "Bad named entity: nu without a semi-colon.", -"input":"&nu", -"output": ["ParseError", ["Character", "&nu"]]}, - -{"description": "Bad named entity: OElig without a semi-colon.", -"input":"&OElig", -"output": ["ParseError", ["Character", "&OElig"]]}, - -{"description": "Bad named entity: oelig without a semi-colon.", -"input":"&oelig", -"output": ["ParseError", ["Character", "&oelig"]]}, - -{"description": "Bad named entity: oline without a semi-colon.", -"input":"&oline", -"output": ["ParseError", ["Character", "&oline"]]}, - -{"description": "Bad named entity: Omega without a semi-colon.", -"input":"&Omega", -"output": ["ParseError", ["Character", "&Omega"]]}, - -{"description": "Bad named entity: omega without a semi-colon.", -"input":"&omega", -"output": ["ParseError", ["Character", "&omega"]]}, - -{"description": "Bad named entity: Omicron without a semi-colon.", -"input":"&Omicron", -"output": ["ParseError", ["Character", "&Omicron"]]}, - -{"description": "Bad named entity: omicron without a semi-colon.", -"input":"&omicron", -"output": ["ParseError", ["Character", "&omicron"]]}, - -{"description": "Bad named entity: oplus without a semi-colon.", -"input":"&oplus", -"output": ["ParseError", ["Character", "&oplus"]]}, - -{"description": "Bad named entity: or without a semi-colon.", -"input":"&or", -"output": ["ParseError", ["Character", "&or"]]}, - -{"description": "Bad named entity: otimes without a semi-colon.", -"input":"&otimes", -"output": ["ParseError", ["Character", "&otimes"]]}, - -{"description": "Bad named entity: part without a semi-colon.", -"input":"&part", -"output": ["ParseError", ["Character", "&part"]]}, - -{"description": "Bad named entity: permil without a semi-colon.", -"input":"&permil", -"output": ["ParseError", ["Character", "&permil"]]}, - -{"description": "Bad named entity: perp without a semi-colon.", -"input":"&perp", -"output": ["ParseError", ["Character", "&perp"]]}, - -{"description": "Bad named entity: Phi without a semi-colon.", -"input":"&Phi", -"output": ["ParseError", ["Character", "&Phi"]]}, - -{"description": "Bad named entity: phi without a semi-colon.", -"input":"&phi", -"output": ["ParseError", ["Character", "&phi"]]}, - -{"description": "Bad named entity: Pi without a semi-colon.", -"input":"&Pi", -"output": ["ParseError", ["Character", "&Pi"]]}, - -{"description": "Bad named entity: pi without a semi-colon.", -"input":"&pi", -"output": ["ParseError", ["Character", "&pi"]]}, - -{"description": "Bad named entity: piv without a semi-colon.", -"input":"&piv", -"output": ["ParseError", ["Character", "&piv"]]}, - -{"description": "Bad named entity: prime without a semi-colon.", -"input":"&prime", -"output": ["ParseError", ["Character", "&prime"]]}, - -{"description": "Bad named entity: prime without a semi-colon.", -"input":"&prime", -"output": ["ParseError", ["Character", "&prime"]]}, - -{"description": "Bad named entity: prod without a semi-colon.", -"input":"&prod", -"output": ["ParseError", ["Character", "&prod"]]}, - -{"description": "Bad named entity: prop without a semi-colon.", -"input":"&prop", -"output": ["ParseError", ["Character", "&prop"]]}, - -{"description": "Bad named entity: Psi without a semi-colon.", -"input":"&Psi", -"output": ["ParseError", ["Character", "&Psi"]]}, - -{"description": "Bad named entity: psi without a semi-colon.", -"input":"&psi", -"output": ["ParseError", ["Character", "&psi"]]}, - -{"description": "Bad named entity: radic without a semi-colon.", -"input":"&radic", -"output": ["ParseError", ["Character", "&radic"]]}, - -{"description": "Bad named entity: rang without a semi-colon.", -"input":"&rang", -"output": ["ParseError", ["Character", "&rang"]]}, - -{"description": "Bad named entity: rarr without a semi-colon.", -"input":"&rarr", -"output": ["ParseError", ["Character", "&rarr"]]}, - -{"description": "Bad named entity: rarr without a semi-colon.", -"input":"&rarr", -"output": ["ParseError", ["Character", "&rarr"]]}, - -{"description": "Bad named entity: rceil without a semi-colon.", -"input":"&rceil", -"output": ["ParseError", ["Character", "&rceil"]]}, - -{"description": "Bad named entity: rdquo without a semi-colon.", -"input":"&rdquo", -"output": ["ParseError", ["Character", "&rdquo"]]}, - -{"description": "Bad named entity: real without a semi-colon.", -"input":"&real", -"output": ["ParseError", ["Character", "&real"]]}, - -{"description": "Bad named entity: rfloor without a semi-colon.", -"input":"&rfloor", -"output": ["ParseError", ["Character", "&rfloor"]]}, - -{"description": "Bad named entity: Rho without a semi-colon.", -"input":"&Rho", -"output": ["ParseError", ["Character", "&Rho"]]}, - -{"description": "Bad named entity: rho without a semi-colon.", -"input":"&rho", -"output": ["ParseError", ["Character", "&rho"]]}, - -{"description": "Bad named entity: rlm without a semi-colon.", -"input":"&rlm", -"output": ["ParseError", ["Character", "&rlm"]]}, - -{"description": "Bad named entity: rsaquo without a semi-colon.", -"input":"&rsaquo", -"output": ["ParseError", ["Character", "&rsaquo"]]}, - -{"description": "Bad named entity: rsquo without a semi-colon.", -"input":"&rsquo", -"output": ["ParseError", ["Character", "&rsquo"]]}, - -{"description": "Bad named entity: sbquo without a semi-colon.", -"input":"&sbquo", -"output": ["ParseError", ["Character", "&sbquo"]]}, - -{"description": "Bad named entity: Scaron without a semi-colon.", -"input":"&Scaron", -"output": ["ParseError", ["Character", "&Scaron"]]}, - -{"description": "Bad named entity: scaron without a semi-colon.", -"input":"&scaron", -"output": ["ParseError", ["Character", "&scaron"]]}, - -{"description": "Bad named entity: sdot without a semi-colon.", -"input":"&sdot", -"output": ["ParseError", ["Character", "&sdot"]]}, - -{"description": "Bad named entity: Sigma without a semi-colon.", -"input":"&Sigma", -"output": ["ParseError", ["Character", "&Sigma"]]}, - -{"description": "Bad named entity: sigma without a semi-colon.", -"input":"&sigma", -"output": ["ParseError", ["Character", "&sigma"]]}, - -{"description": "Bad named entity: sigmaf without a semi-colon.", -"input":"&sigmaf", -"output": ["ParseError", ["Character", "&sigmaf"]]}, - -{"description": "Bad named entity: sim without a semi-colon.", -"input":"&sim", -"output": ["ParseError", ["Character", "&sim"]]}, - -{"description": "Bad named entity: spades without a semi-colon.", -"input":"&spades", -"output": ["ParseError", ["Character", "&spades"]]}, - -{"description": "Bad named entity: sub without a semi-colon.", -"input":"&sub", -"output": ["ParseError", ["Character", "&sub"]]}, - -{"description": "Bad named entity: sube without a semi-colon.", -"input":"&sube", -"output": ["ParseError", ["Character", "&sube"]]}, - -{"description": "Bad named entity: sum without a semi-colon.", -"input":"&sum", -"output": ["ParseError", ["Character", "&sum"]]}, - -{"description": "Bad named entity: sup without a semi-colon.", -"input":"&sup", -"output": ["ParseError", ["Character", "&sup"]]}, - -{"description": "Bad named entity: supe without a semi-colon.", -"input":"&supe", -"output": ["ParseError", ["Character", "&supe"]]}, - -{"description": "Bad named entity: Tau without a semi-colon.", -"input":"&Tau", -"output": ["ParseError", ["Character", "&Tau"]]}, - -{"description": "Bad named entity: tau without a semi-colon.", -"input":"&tau", -"output": ["ParseError", ["Character", "&tau"]]}, - -{"description": "Bad named entity: there4 without a semi-colon.", -"input":"&there4", -"output": ["ParseError", ["Character", "&there4"]]}, - -{"description": "Bad named entity: Theta without a semi-colon.", -"input":"&Theta", -"output": ["ParseError", ["Character", "&Theta"]]}, - -{"description": "Bad named entity: theta without a semi-colon.", -"input":"&theta", -"output": ["ParseError", ["Character", "&theta"]]}, - -{"description": "Bad named entity: thetasym without a semi-colon.", -"input":"&thetasym", -"output": ["ParseError", ["Character", "&thetasym"]]}, - -{"description": "Bad named entity: thinsp without a semi-colon.", -"input":"&thinsp", -"output": ["ParseError", ["Character", "&thinsp"]]}, - -{"description": "Bad named entity: tilde without a semi-colon.", -"input":"&tilde", -"output": ["ParseError", ["Character", "&tilde"]]}, - -{"description": "Bad named entity: trade without a semi-colon.", -"input":"&trade", -"output": ["ParseError", ["Character", "&trade"]]}, - -{"description": "Bad named entity: uarr without a semi-colon.", -"input":"&uarr", -"output": ["ParseError", ["Character", "&uarr"]]}, - -{"description": "Bad named entity: uarr without a semi-colon.", -"input":"&uarr", -"output": ["ParseError", ["Character", "&uarr"]]}, - -{"description": "Bad named entity: upsih without a semi-colon.", -"input":"&upsih", -"output": ["ParseError", ["Character", "&upsih"]]}, - -{"description": "Bad named entity: Upsilon without a semi-colon.", -"input":"&Upsilon", -"output": ["ParseError", ["Character", "&Upsilon"]]}, - -{"description": "Bad named entity: upsilon without a semi-colon.", -"input":"&upsilon", -"output": ["ParseError", ["Character", "&upsilon"]]}, - -{"description": "Bad named entity: weierp without a semi-colon.", -"input":"&weierp", -"output": ["ParseError", ["Character", "&weierp"]]}, - -{"description": "Bad named entity: Xi without a semi-colon.", -"input":"&Xi", -"output": ["ParseError", ["Character", "&Xi"]]}, - -{"description": "Bad named entity: xi without a semi-colon.", -"input":"&xi", -"output": ["ParseError", ["Character", "&xi"]]}, - -{"description": "Bad named entity: Yuml without a semi-colon.", -"input":"&Yuml", -"output": ["ParseError", ["Character", "&Yuml"]]}, - -{"description": "Bad named entity: Zeta without a semi-colon.", -"input":"&Zeta", -"output": ["ParseError", ["Character", "&Zeta"]]}, - -{"description": "Bad named entity: zeta without a semi-colon.", -"input":"&zeta", -"output": ["ParseError", ["Character", "&zeta"]]}, - -{"description": "Bad named entity: zwj without a semi-colon.", -"input":"&zwj", -"output": ["ParseError", ["Character", "&zwj"]]}, - -{"description": "Bad named entity: zwnj without a semi-colon.", -"input":"&zwnj", -"output": ["ParseError", ["Character", "&zwnj"]]}, - -{"description": "Bad named entity: zwnj without a semi-colon.", -"input":"&zwnj", -"output": ["ParseError", ["Character", "&zwnj"]]}, +{"description": "Entity name followed by the equals sign in an attribute value.", +"input":"<h a='&lang='>", +"output": [["StartTag", "h", {"a": "&lang="}]]}, {"description": "CR as numeric entity", "input":"
", -"output": ["ParseError", ["Character", "\n"]]}, +"output": ["ParseError", ["Character", "\r"]]}, {"description": "CR as hexadecimal numeric entity", "input":"
", -"output": ["ParseError", ["Character", "\n"]]}, +"output": ["ParseError", ["Character", "\r"]]}, {"description": "Windows-1252 EURO SIGN numeric entity.", "input":"€", @@ -2094,7 +22,7 @@ {"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0081"]]}, {"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK numeric entity.", "input":"‚", @@ -2142,7 +70,7 @@ {"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u008D"]]}, {"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON numeric entity.", "input":"Ž", @@ -2150,11 +78,11 @@ {"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u008F"]]}, {"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0090"]]}, {"description": "Windows-1252 LEFT SINGLE QUOTATION MARK numeric entity.", "input":"‘", @@ -2206,7 +134,7 @@ {"description": "Windows-1252 REPLACEMENT CHAR numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u009D"]]}, {"description": "Windows-1252 EURO SIGN hexadecimal numeric entity.", "input":"€", @@ -2214,7 +142,7 @@ {"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0081"]]}, {"description": "Windows-1252 SINGLE LOW-9 QUOTATION MARK hexadecimal numeric entity.", "input":"‚", @@ -2262,7 +190,7 @@ {"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u008D"]]}, {"description": "Windows-1252 LATIN CAPITAL LETTER Z WITH CARON hexadecimal numeric entity.", "input":"Ž", @@ -2270,11 +198,11 @@ {"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u008F"]]}, {"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0090"]]}, {"description": "Windows-1252 LEFT SINGLE QUOTATION MARK hexadecimal numeric entity.", "input":"‘", @@ -2326,7 +254,7 @@ {"description": "Windows-1252 REPLACEMENT CHAR hexadecimal numeric entity.", "input":"", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u009D"]]}, {"description": "Windows-1252 LATIN SMALL LETTER Z WITH CARON hexadecimal numeric entity.", "input":"ž", @@ -2334,6 +262,22 @@ {"description": "Windows-1252 LATIN CAPITAL LETTER Y WITH DIAERESIS hexadecimal numeric entity.", "input":"Ÿ", -"output": ["ParseError", ["Character", "\u0178"]]} +"output": ["ParseError", ["Character", "\u0178"]]}, + +{"description": "Decimal numeric entity followed by hex character a.", +"input":"aa", +"output": ["ParseError", ["Character", "aa"]]}, + +{"description": "Decimal numeric entity followed by hex character A.", +"input":"aA", +"output": ["ParseError", ["Character", "aA"]]}, + +{"description": "Decimal numeric entity followed by hex character f.", +"input":"af", +"output": ["ParseError", ["Character", "af"]]}, + +{"description": "Decimal numeric entity followed by hex character A.", +"input":"aF", +"output": ["ParseError", ["Character", "aF"]]} ]} diff --git a/test/data/tokeniser2/escapeFlag.test b/test/data/tokeniser2/escapeFlag.test index 4c4bf51..18cb430 100644 --- a/test/data/tokeniser2/escapeFlag.test +++ b/test/data/tokeniser2/escapeFlag.test @@ -1,33 +1,33 @@ {"tests": [ -{"description":"Commented close tag in [R]CDATA", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"Commented close tag in RCDATA or RAWTEXT", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo<!--</xmp>--></xmp>", -"output":[["Character", "foo<!--</xmp>-->"], ["EndTag", "xmp"]]}, +"output":[["Character", "foo<!--"], ["EndTag", "xmp"], ["Character", "-->"], ["EndTag", "xmp"]]}, -{"description":"Bogus comment in [R]CDATA", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"Bogus comment in RCDATA or RAWTEXT", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo<!-->baz</xmp>", "output":[["Character", "foo<!-->baz"], ["EndTag", "xmp"]]}, -{"description":"End tag surrounded by bogus comment in [R]CDATA", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"End tag surrounded by bogus comment in RCDATA or RAWTEXT", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo<!--></xmp><!-->baz</xmp>", "output":[["Character", "foo<!-->"], ["EndTag", "xmp"], "ParseError", ["Comment", ""], ["Character", "baz"], ["EndTag", "xmp"]]}, {"description":"Commented entities in RCDATA", -"contentModelFlags":["RCDATA"], +"initialStates":["RCDATA state"], "lastStartTag":"xmp", "input":" & <!-- & --> & </xmp>", -"output":[["Character", " & <!-- & --> & "], ["EndTag", "xmp"]]}, +"output":[["Character", " & <!-- & --> & "], ["EndTag", "xmp"]]}, -{"description":"Incorrect comment ending sequences in [R]CDATA", -"contentModelFlags":["RCDATA", "CDATA"], +{"description":"Incorrect comment ending sequences in RCDATA or RAWTEXT", +"initialStates":["RCDATA state", "RAWTEXT state"], "lastStartTag":"xmp", "input":"foo<!-- x --x>x-- >x--!>x--<></xmp>", -"output":[["Character", "foo<!-- x --x>x-- >x--!>x--<></xmp>"]]} +"output":[["Character", "foo<!-- x --x>x-- >x--!>x--<>"], ["EndTag", "xmp"]]} ]} diff --git a/test/data/tokeniser2/namedEntities.test b/test/data/tokeniser2/namedEntities.test new file mode 100644 index 0000000..14db2ed --- /dev/null +++ b/test/data/tokeniser2/namedEntities.test @@ -0,0 +1,42210 @@ +{ + "tests": [ + { + "input": "Æ", + "description": "Named entity: AElig without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c6" + ] + ] + }, + { + "input": "Æ", + "description": "Named entity: AElig; with a semi-colon", + "output": [ + [ + "Character", + "\u00c6" + ] + ] + }, + { + "input": "&", + "description": "Named entity: AMP without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "&" + ] + ] + }, + { + "input": "&", + "description": "Named entity: AMP; with a semi-colon", + "output": [ + [ + "Character", + "&" + ] + ] + }, + { + "input": "Á", + "description": "Named entity: Aacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c1" + ] + ] + }, + { + "input": "Á", + "description": "Named entity: Aacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00c1" + ] + ] + }, + { + "input": "&Abreve", + "description": "Bad named entity: Abreve without a semi-colon", + "output": [ + [ + "Character", + "&Abreve" + ] + ] + }, + { + "input": "Ă", + "description": "Named entity: Abreve; with a semi-colon", + "output": [ + [ + "Character", + "\u0102" + ] + ] + }, + { + "input": "Â", + "description": "Named entity: Acirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c2" + ] + ] + }, + { + "input": "Â", + "description": "Named entity: Acirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00c2" + ] + ] + }, + { + "input": "&Acy", + "description": "Bad named entity: Acy without a semi-colon", + "output": [ + [ + "Character", + "&Acy" + ] + ] + }, + { + "input": "А", + "description": "Named entity: Acy; with a semi-colon", + "output": [ + [ + "Character", + "\u0410" + ] + ] + }, + { + "input": "&Afr", + "description": "Bad named entity: Afr without a semi-colon", + "output": [ + [ + "Character", + "&Afr" + ] + ] + }, + { + "input": "𝔄", + "description": "Named entity: Afr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd04" + ] + ] + }, + { + "input": "À", + "description": "Named entity: Agrave without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c0" + ] + ] + }, + { + "input": "À", + "description": "Named entity: Agrave; with a semi-colon", + "output": [ + [ + "Character", + "\u00c0" + ] + ] + }, + { + "input": "&Alpha", + "description": "Bad named entity: Alpha without a semi-colon", + "output": [ + [ + "Character", + "&Alpha" + ] + ] + }, + { + "input": "Α", + "description": "Named entity: Alpha; with a semi-colon", + "output": [ + [ + "Character", + "\u0391" + ] + ] + }, + { + "input": "&Amacr", + "description": "Bad named entity: Amacr without a semi-colon", + "output": [ + [ + "Character", + "&Amacr" + ] + ] + }, + { + "input": "Ā", + "description": "Named entity: Amacr; with a semi-colon", + "output": [ + [ + "Character", + "\u0100" + ] + ] + }, + { + "input": "&And", + "description": "Bad named entity: And without a semi-colon", + "output": [ + [ + "Character", + "&And" + ] + ] + }, + { + "input": "⩓", + "description": "Named entity: And; with a semi-colon", + "output": [ + [ + "Character", + "\u2a53" + ] + ] + }, + { + "input": "&Aogon", + "description": "Bad named entity: Aogon without a semi-colon", + "output": [ + [ + "Character", + "&Aogon" + ] + ] + }, + { + "input": "Ą", + "description": "Named entity: Aogon; with a semi-colon", + "output": [ + [ + "Character", + "\u0104" + ] + ] + }, + { + "input": "&Aopf", + "description": "Bad named entity: Aopf without a semi-colon", + "output": [ + [ + "Character", + "&Aopf" + ] + ] + }, + { + "input": "𝔸", + "description": "Named entity: Aopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd38" + ] + ] + }, + { + "input": "&ApplyFunction", + "description": "Bad named entity: ApplyFunction without a semi-colon", + "output": [ + [ + "Character", + "&ApplyFunction" + ] + ] + }, + { + "input": "⁡", + "description": "Named entity: ApplyFunction; with a semi-colon", + "output": [ + [ + "Character", + "\u2061" + ] + ] + }, + { + "input": "Å", + "description": "Named entity: Aring without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c5" + ] + ] + }, + { + "input": "Å", + "description": "Named entity: Aring; with a semi-colon", + "output": [ + [ + "Character", + "\u00c5" + ] + ] + }, + { + "input": "&Ascr", + "description": "Bad named entity: Ascr without a semi-colon", + "output": [ + [ + "Character", + "&Ascr" + ] + ] + }, + { + "input": "𝒜", + "description": "Named entity: Ascr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udc9c" + ] + ] + }, + { + "input": "&Assign", + "description": "Bad named entity: Assign without a semi-colon", + "output": [ + [ + "Character", + "&Assign" + ] + ] + }, + { + "input": "≔", + "description": "Named entity: Assign; with a semi-colon", + "output": [ + [ + "Character", + "\u2254" + ] + ] + }, + { + "input": "Ã", + "description": "Named entity: Atilde without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c3" + ] + ] + }, + { + "input": "Ã", + "description": "Named entity: Atilde; with a semi-colon", + "output": [ + [ + "Character", + "\u00c3" + ] + ] + }, + { + "input": "Ä", + "description": "Named entity: Auml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c4" + ] + ] + }, + { + "input": "Ä", + "description": "Named entity: Auml; with a semi-colon", + "output": [ + [ + "Character", + "\u00c4" + ] + ] + }, + { + "input": "&Backslash", + "description": "Bad named entity: Backslash without a semi-colon", + "output": [ + [ + "Character", + "&Backslash" + ] + ] + }, + { + "input": "∖", + "description": "Named entity: Backslash; with a semi-colon", + "output": [ + [ + "Character", + "\u2216" + ] + ] + }, + { + "input": "&Barv", + "description": "Bad named entity: Barv without a semi-colon", + "output": [ + [ + "Character", + "&Barv" + ] + ] + }, + { + "input": "⫧", + "description": "Named entity: Barv; with a semi-colon", + "output": [ + [ + "Character", + "\u2ae7" + ] + ] + }, + { + "input": "&Barwed", + "description": "Bad named entity: Barwed without a semi-colon", + "output": [ + [ + "Character", + "&Barwed" + ] + ] + }, + { + "input": "⌆", + "description": "Named entity: Barwed; with a semi-colon", + "output": [ + [ + "Character", + "\u2306" + ] + ] + }, + { + "input": "&Bcy", + "description": "Bad named entity: Bcy without a semi-colon", + "output": [ + [ + "Character", + "&Bcy" + ] + ] + }, + { + "input": "Б", + "description": "Named entity: Bcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0411" + ] + ] + }, + { + "input": "&Because", + "description": "Bad named entity: Because without a semi-colon", + "output": [ + [ + "Character", + "&Because" + ] + ] + }, + { + "input": "∵", + "description": "Named entity: Because; with a semi-colon", + "output": [ + [ + "Character", + "\u2235" + ] + ] + }, + { + "input": "&Bernoullis", + "description": "Bad named entity: Bernoullis without a semi-colon", + "output": [ + [ + "Character", + "&Bernoullis" + ] + ] + }, + { + "input": "ℬ", + "description": "Named entity: Bernoullis; with a semi-colon", + "output": [ + [ + "Character", + "\u212c" + ] + ] + }, + { + "input": "&Beta", + "description": "Bad named entity: Beta without a semi-colon", + "output": [ + [ + "Character", + "&Beta" + ] + ] + }, + { + "input": "Β", + "description": "Named entity: Beta; with a semi-colon", + "output": [ + [ + "Character", + "\u0392" + ] + ] + }, + { + "input": "&Bfr", + "description": "Bad named entity: Bfr without a semi-colon", + "output": [ + [ + "Character", + "&Bfr" + ] + ] + }, + { + "input": "𝔅", + "description": "Named entity: Bfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd05" + ] + ] + }, + { + "input": "&Bopf", + "description": "Bad named entity: Bopf without a semi-colon", + "output": [ + [ + "Character", + "&Bopf" + ] + ] + }, + { + "input": "𝔹", + "description": "Named entity: Bopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd39" + ] + ] + }, + { + "input": "&Breve", + "description": "Bad named entity: Breve without a semi-colon", + "output": [ + [ + "Character", + "&Breve" + ] + ] + }, + { + "input": "˘", + "description": "Named entity: Breve; with a semi-colon", + "output": [ + [ + "Character", + "\u02d8" + ] + ] + }, + { + "input": "&Bscr", + "description": "Bad named entity: Bscr without a semi-colon", + "output": [ + [ + "Character", + "&Bscr" + ] + ] + }, + { + "input": "ℬ", + "description": "Named entity: Bscr; with a semi-colon", + "output": [ + [ + "Character", + "\u212c" + ] + ] + }, + { + "input": "&Bumpeq", + "description": "Bad named entity: Bumpeq without a semi-colon", + "output": [ + [ + "Character", + "&Bumpeq" + ] + ] + }, + { + "input": "≎", + "description": "Named entity: Bumpeq; with a semi-colon", + "output": [ + [ + "Character", + "\u224e" + ] + ] + }, + { + "input": "&CHcy", + "description": "Bad named entity: CHcy without a semi-colon", + "output": [ + [ + "Character", + "&CHcy" + ] + ] + }, + { + "input": "Ч", + "description": "Named entity: CHcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0427" + ] + ] + }, + { + "input": "©", + "description": "Named entity: COPY without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a9" + ] + ] + }, + { + "input": "©", + "description": "Named entity: COPY; with a semi-colon", + "output": [ + [ + "Character", + "\u00a9" + ] + ] + }, + { + "input": "&Cacute", + "description": "Bad named entity: Cacute without a semi-colon", + "output": [ + [ + "Character", + "&Cacute" + ] + ] + }, + { + "input": "Ć", + "description": "Named entity: Cacute; with a semi-colon", + "output": [ + [ + "Character", + "\u0106" + ] + ] + }, + { + "input": "&Cap", + "description": "Bad named entity: Cap without a semi-colon", + "output": [ + [ + "Character", + "&Cap" + ] + ] + }, + { + "input": "⋒", + "description": "Named entity: Cap; with a semi-colon", + "output": [ + [ + "Character", + "\u22d2" + ] + ] + }, + { + "input": "&CapitalDifferentialD", + "description": "Bad named entity: CapitalDifferentialD without a semi-colon", + "output": [ + [ + "Character", + "&CapitalDifferentialD" + ] + ] + }, + { + "input": "ⅅ", + "description": "Named entity: CapitalDifferentialD; with a semi-colon", + "output": [ + [ + "Character", + "\u2145" + ] + ] + }, + { + "input": "&Cayleys", + "description": "Bad named entity: Cayleys without a semi-colon", + "output": [ + [ + "Character", + "&Cayleys" + ] + ] + }, + { + "input": "ℭ", + "description": "Named entity: Cayleys; with a semi-colon", + "output": [ + [ + "Character", + "\u212d" + ] + ] + }, + { + "input": "&Ccaron", + "description": "Bad named entity: Ccaron without a semi-colon", + "output": [ + [ + "Character", + "&Ccaron" + ] + ] + }, + { + "input": "Č", + "description": "Named entity: Ccaron; with a semi-colon", + "output": [ + [ + "Character", + "\u010c" + ] + ] + }, + { + "input": "Ç", + "description": "Named entity: Ccedil without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c7" + ] + ] + }, + { + "input": "Ç", + "description": "Named entity: Ccedil; with a semi-colon", + "output": [ + [ + "Character", + "\u00c7" + ] + ] + }, + { + "input": "&Ccirc", + "description": "Bad named entity: Ccirc without a semi-colon", + "output": [ + [ + "Character", + "&Ccirc" + ] + ] + }, + { + "input": "Ĉ", + "description": "Named entity: Ccirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0108" + ] + ] + }, + { + "input": "&Cconint", + "description": "Bad named entity: Cconint without a semi-colon", + "output": [ + [ + "Character", + "&Cconint" + ] + ] + }, + { + "input": "∰", + "description": "Named entity: Cconint; with a semi-colon", + "output": [ + [ + "Character", + "\u2230" + ] + ] + }, + { + "input": "&Cdot", + "description": "Bad named entity: Cdot without a semi-colon", + "output": [ + [ + "Character", + "&Cdot" + ] + ] + }, + { + "input": "Ċ", + "description": "Named entity: Cdot; with a semi-colon", + "output": [ + [ + "Character", + "\u010a" + ] + ] + }, + { + "input": "&Cedilla", + "description": "Bad named entity: Cedilla without a semi-colon", + "output": [ + [ + "Character", + "&Cedilla" + ] + ] + }, + { + "input": "¸", + "description": "Named entity: Cedilla; with a semi-colon", + "output": [ + [ + "Character", + "\u00b8" + ] + ] + }, + { + "input": "&CenterDot", + "description": "Bad named entity: CenterDot without a semi-colon", + "output": [ + [ + "Character", + "&CenterDot" + ] + ] + }, + { + "input": "·", + "description": "Named entity: CenterDot; with a semi-colon", + "output": [ + [ + "Character", + "\u00b7" + ] + ] + }, + { + "input": "&Cfr", + "description": "Bad named entity: Cfr without a semi-colon", + "output": [ + [ + "Character", + "&Cfr" + ] + ] + }, + { + "input": "ℭ", + "description": "Named entity: Cfr; with a semi-colon", + "output": [ + [ + "Character", + "\u212d" + ] + ] + }, + { + "input": "&Chi", + "description": "Bad named entity: Chi without a semi-colon", + "output": [ + [ + "Character", + "&Chi" + ] + ] + }, + { + "input": "Χ", + "description": "Named entity: Chi; with a semi-colon", + "output": [ + [ + "Character", + "\u03a7" + ] + ] + }, + { + "input": "&CircleDot", + "description": "Bad named entity: CircleDot without a semi-colon", + "output": [ + [ + "Character", + "&CircleDot" + ] + ] + }, + { + "input": "⊙", + "description": "Named entity: CircleDot; with a semi-colon", + "output": [ + [ + "Character", + "\u2299" + ] + ] + }, + { + "input": "&CircleMinus", + "description": "Bad named entity: CircleMinus without a semi-colon", + "output": [ + [ + "Character", + "&CircleMinus" + ] + ] + }, + { + "input": "⊖", + "description": "Named entity: CircleMinus; with a semi-colon", + "output": [ + [ + "Character", + "\u2296" + ] + ] + }, + { + "input": "&CirclePlus", + "description": "Bad named entity: CirclePlus without a semi-colon", + "output": [ + [ + "Character", + "&CirclePlus" + ] + ] + }, + { + "input": "⊕", + "description": "Named entity: CirclePlus; with a semi-colon", + "output": [ + [ + "Character", + "\u2295" + ] + ] + }, + { + "input": "&CircleTimes", + "description": "Bad named entity: CircleTimes without a semi-colon", + "output": [ + [ + "Character", + "&CircleTimes" + ] + ] + }, + { + "input": "⊗", + "description": "Named entity: CircleTimes; with a semi-colon", + "output": [ + [ + "Character", + "\u2297" + ] + ] + }, + { + "input": "&ClockwiseContourIntegral", + "description": "Bad named entity: ClockwiseContourIntegral without a semi-colon", + "output": [ + [ + "Character", + "&ClockwiseContourIntegral" + ] + ] + }, + { + "input": "∲", + "description": "Named entity: ClockwiseContourIntegral; with a semi-colon", + "output": [ + [ + "Character", + "\u2232" + ] + ] + }, + { + "input": "&CloseCurlyDoubleQuote", + "description": "Bad named entity: CloseCurlyDoubleQuote without a semi-colon", + "output": [ + [ + "Character", + "&CloseCurlyDoubleQuote" + ] + ] + }, + { + "input": "”", + "description": "Named entity: CloseCurlyDoubleQuote; with a semi-colon", + "output": [ + [ + "Character", + "\u201d" + ] + ] + }, + { + "input": "&CloseCurlyQuote", + "description": "Bad named entity: CloseCurlyQuote without a semi-colon", + "output": [ + [ + "Character", + "&CloseCurlyQuote" + ] + ] + }, + { + "input": "’", + "description": "Named entity: CloseCurlyQuote; with a semi-colon", + "output": [ + [ + "Character", + "\u2019" + ] + ] + }, + { + "input": "&Colon", + "description": "Bad named entity: Colon without a semi-colon", + "output": [ + [ + "Character", + "&Colon" + ] + ] + }, + { + "input": "∷", + "description": "Named entity: Colon; with a semi-colon", + "output": [ + [ + "Character", + "\u2237" + ] + ] + }, + { + "input": "&Colone", + "description": "Bad named entity: Colone without a semi-colon", + "output": [ + [ + "Character", + "&Colone" + ] + ] + }, + { + "input": "⩴", + "description": "Named entity: Colone; with a semi-colon", + "output": [ + [ + "Character", + "\u2a74" + ] + ] + }, + { + "input": "&Congruent", + "description": "Bad named entity: Congruent without a semi-colon", + "output": [ + [ + "Character", + "&Congruent" + ] + ] + }, + { + "input": "≡", + "description": "Named entity: Congruent; with a semi-colon", + "output": [ + [ + "Character", + "\u2261" + ] + ] + }, + { + "input": "&Conint", + "description": "Bad named entity: Conint without a semi-colon", + "output": [ + [ + "Character", + "&Conint" + ] + ] + }, + { + "input": "∯", + "description": "Named entity: Conint; with a semi-colon", + "output": [ + [ + "Character", + "\u222f" + ] + ] + }, + { + "input": "&ContourIntegral", + "description": "Bad named entity: ContourIntegral without a semi-colon", + "output": [ + [ + "Character", + "&ContourIntegral" + ] + ] + }, + { + "input": "∮", + "description": "Named entity: ContourIntegral; with a semi-colon", + "output": [ + [ + "Character", + "\u222e" + ] + ] + }, + { + "input": "&Copf", + "description": "Bad named entity: Copf without a semi-colon", + "output": [ + [ + "Character", + "&Copf" + ] + ] + }, + { + "input": "ℂ", + "description": "Named entity: Copf; with a semi-colon", + "output": [ + [ + "Character", + "\u2102" + ] + ] + }, + { + "input": "&Coproduct", + "description": "Bad named entity: Coproduct without a semi-colon", + "output": [ + [ + "Character", + "&Coproduct" + ] + ] + }, + { + "input": "∐", + "description": "Named entity: Coproduct; with a semi-colon", + "output": [ + [ + "Character", + "\u2210" + ] + ] + }, + { + "input": "&CounterClockwiseContourIntegral", + "description": "Bad named entity: CounterClockwiseContourIntegral without a semi-colon", + "output": [ + [ + "Character", + "&CounterClockwiseContourIntegral" + ] + ] + }, + { + "input": "∳", + "description": "Named entity: CounterClockwiseContourIntegral; with a semi-colon", + "output": [ + [ + "Character", + "\u2233" + ] + ] + }, + { + "input": "&Cross", + "description": "Bad named entity: Cross without a semi-colon", + "output": [ + [ + "Character", + "&Cross" + ] + ] + }, + { + "input": "⨯", + "description": "Named entity: Cross; with a semi-colon", + "output": [ + [ + "Character", + "\u2a2f" + ] + ] + }, + { + "input": "&Cscr", + "description": "Bad named entity: Cscr without a semi-colon", + "output": [ + [ + "Character", + "&Cscr" + ] + ] + }, + { + "input": "𝒞", + "description": "Named entity: Cscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udc9e" + ] + ] + }, + { + "input": "&Cup", + "description": "Bad named entity: Cup without a semi-colon", + "output": [ + [ + "Character", + "&Cup" + ] + ] + }, + { + "input": "⋓", + "description": "Named entity: Cup; with a semi-colon", + "output": [ + [ + "Character", + "\u22d3" + ] + ] + }, + { + "input": "&CupCap", + "description": "Bad named entity: CupCap without a semi-colon", + "output": [ + [ + "Character", + "&CupCap" + ] + ] + }, + { + "input": "≍", + "description": "Named entity: CupCap; with a semi-colon", + "output": [ + [ + "Character", + "\u224d" + ] + ] + }, + { + "input": "&DD", + "description": "Bad named entity: DD without a semi-colon", + "output": [ + [ + "Character", + "&DD" + ] + ] + }, + { + "input": "ⅅ", + "description": "Named entity: DD; with a semi-colon", + "output": [ + [ + "Character", + "\u2145" + ] + ] + }, + { + "input": "&DDotrahd", + "description": "Bad named entity: DDotrahd without a semi-colon", + "output": [ + [ + "Character", + "&DDotrahd" + ] + ] + }, + { + "input": "⤑", + "description": "Named entity: DDotrahd; with a semi-colon", + "output": [ + [ + "Character", + "\u2911" + ] + ] + }, + { + "input": "&DJcy", + "description": "Bad named entity: DJcy without a semi-colon", + "output": [ + [ + "Character", + "&DJcy" + ] + ] + }, + { + "input": "Ђ", + "description": "Named entity: DJcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0402" + ] + ] + }, + { + "input": "&DScy", + "description": "Bad named entity: DScy without a semi-colon", + "output": [ + [ + "Character", + "&DScy" + ] + ] + }, + { + "input": "Ѕ", + "description": "Named entity: DScy; with a semi-colon", + "output": [ + [ + "Character", + "\u0405" + ] + ] + }, + { + "input": "&DZcy", + "description": "Bad named entity: DZcy without a semi-colon", + "output": [ + [ + "Character", + "&DZcy" + ] + ] + }, + { + "input": "Џ", + "description": "Named entity: DZcy; with a semi-colon", + "output": [ + [ + "Character", + "\u040f" + ] + ] + }, + { + "input": "&Dagger", + "description": "Bad named entity: Dagger without a semi-colon", + "output": [ + [ + "Character", + "&Dagger" + ] + ] + }, + { + "input": "‡", + "description": "Named entity: Dagger; with a semi-colon", + "output": [ + [ + "Character", + "\u2021" + ] + ] + }, + { + "input": "&Darr", + "description": "Bad named entity: Darr without a semi-colon", + "output": [ + [ + "Character", + "&Darr" + ] + ] + }, + { + "input": "↡", + "description": "Named entity: Darr; with a semi-colon", + "output": [ + [ + "Character", + "\u21a1" + ] + ] + }, + { + "input": "&Dashv", + "description": "Bad named entity: Dashv without a semi-colon", + "output": [ + [ + "Character", + "&Dashv" + ] + ] + }, + { + "input": "⫤", + "description": "Named entity: Dashv; with a semi-colon", + "output": [ + [ + "Character", + "\u2ae4" + ] + ] + }, + { + "input": "&Dcaron", + "description": "Bad named entity: Dcaron without a semi-colon", + "output": [ + [ + "Character", + "&Dcaron" + ] + ] + }, + { + "input": "Ď", + "description": "Named entity: Dcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u010e" + ] + ] + }, + { + "input": "&Dcy", + "description": "Bad named entity: Dcy without a semi-colon", + "output": [ + [ + "Character", + "&Dcy" + ] + ] + }, + { + "input": "Д", + "description": "Named entity: Dcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0414" + ] + ] + }, + { + "input": "&Del", + "description": "Bad named entity: Del without a semi-colon", + "output": [ + [ + "Character", + "&Del" + ] + ] + }, + { + "input": "∇", + "description": "Named entity: Del; with a semi-colon", + "output": [ + [ + "Character", + "\u2207" + ] + ] + }, + { + "input": "&Delta", + "description": "Bad named entity: Delta without a semi-colon", + "output": [ + [ + "Character", + "&Delta" + ] + ] + }, + { + "input": "Δ", + "description": "Named entity: Delta; with a semi-colon", + "output": [ + [ + "Character", + "\u0394" + ] + ] + }, + { + "input": "&Dfr", + "description": "Bad named entity: Dfr without a semi-colon", + "output": [ + [ + "Character", + "&Dfr" + ] + ] + }, + { + "input": "𝔇", + "description": "Named entity: Dfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd07" + ] + ] + }, + { + "input": "&DiacriticalAcute", + "description": "Bad named entity: DiacriticalAcute without a semi-colon", + "output": [ + [ + "Character", + "&DiacriticalAcute" + ] + ] + }, + { + "input": "´", + "description": "Named entity: DiacriticalAcute; with a semi-colon", + "output": [ + [ + "Character", + "\u00b4" + ] + ] + }, + { + "input": "&DiacriticalDot", + "description": "Bad named entity: DiacriticalDot without a semi-colon", + "output": [ + [ + "Character", + "&DiacriticalDot" + ] + ] + }, + { + "input": "˙", + "description": "Named entity: DiacriticalDot; with a semi-colon", + "output": [ + [ + "Character", + "\u02d9" + ] + ] + }, + { + "input": "&DiacriticalDoubleAcute", + "description": "Bad named entity: DiacriticalDoubleAcute without a semi-colon", + "output": [ + [ + "Character", + "&DiacriticalDoubleAcute" + ] + ] + }, + { + "input": "˝", + "description": "Named entity: DiacriticalDoubleAcute; with a semi-colon", + "output": [ + [ + "Character", + "\u02dd" + ] + ] + }, + { + "input": "&DiacriticalGrave", + "description": "Bad named entity: DiacriticalGrave without a semi-colon", + "output": [ + [ + "Character", + "&DiacriticalGrave" + ] + ] + }, + { + "input": "`", + "description": "Named entity: DiacriticalGrave; with a semi-colon", + "output": [ + [ + "Character", + "`" + ] + ] + }, + { + "input": "&DiacriticalTilde", + "description": "Bad named entity: DiacriticalTilde without a semi-colon", + "output": [ + [ + "Character", + "&DiacriticalTilde" + ] + ] + }, + { + "input": "˜", + "description": "Named entity: DiacriticalTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u02dc" + ] + ] + }, + { + "input": "&Diamond", + "description": "Bad named entity: Diamond without a semi-colon", + "output": [ + [ + "Character", + "&Diamond" + ] + ] + }, + { + "input": "⋄", + "description": "Named entity: Diamond; with a semi-colon", + "output": [ + [ + "Character", + "\u22c4" + ] + ] + }, + { + "input": "&DifferentialD", + "description": "Bad named entity: DifferentialD without a semi-colon", + "output": [ + [ + "Character", + "&DifferentialD" + ] + ] + }, + { + "input": "ⅆ", + "description": "Named entity: DifferentialD; with a semi-colon", + "output": [ + [ + "Character", + "\u2146" + ] + ] + }, + { + "input": "&Dopf", + "description": "Bad named entity: Dopf without a semi-colon", + "output": [ + [ + "Character", + "&Dopf" + ] + ] + }, + { + "input": "𝔻", + "description": "Named entity: Dopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd3b" + ] + ] + }, + { + "input": "&Dot", + "description": "Bad named entity: Dot without a semi-colon", + "output": [ + [ + "Character", + "&Dot" + ] + ] + }, + { + "input": "¨", + "description": "Named entity: Dot; with a semi-colon", + "output": [ + [ + "Character", + "\u00a8" + ] + ] + }, + { + "input": "&DotDot", + "description": "Bad named entity: DotDot without a semi-colon", + "output": [ + [ + "Character", + "&DotDot" + ] + ] + }, + { + "input": "⃜", + "description": "Named entity: DotDot; with a semi-colon", + "output": [ + [ + "Character", + "\u20dc" + ] + ] + }, + { + "input": "&DotEqual", + "description": "Bad named entity: DotEqual without a semi-colon", + "output": [ + [ + "Character", + "&DotEqual" + ] + ] + }, + { + "input": "≐", + "description": "Named entity: DotEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2250" + ] + ] + }, + { + "input": "&DoubleContourIntegral", + "description": "Bad named entity: DoubleContourIntegral without a semi-colon", + "output": [ + [ + "Character", + "&DoubleContourIntegral" + ] + ] + }, + { + "input": "∯", + "description": "Named entity: DoubleContourIntegral; with a semi-colon", + "output": [ + [ + "Character", + "\u222f" + ] + ] + }, + { + "input": "&DoubleDot", + "description": "Bad named entity: DoubleDot without a semi-colon", + "output": [ + [ + "Character", + "&DoubleDot" + ] + ] + }, + { + "input": "¨", + "description": "Named entity: DoubleDot; with a semi-colon", + "output": [ + [ + "Character", + "\u00a8" + ] + ] + }, + { + "input": "&DoubleDownArrow", + "description": "Bad named entity: DoubleDownArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleDownArrow" + ] + ] + }, + { + "input": "⇓", + "description": "Named entity: DoubleDownArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d3" + ] + ] + }, + { + "input": "&DoubleLeftArrow", + "description": "Bad named entity: DoubleLeftArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleLeftArrow" + ] + ] + }, + { + "input": "⇐", + "description": "Named entity: DoubleLeftArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d0" + ] + ] + }, + { + "input": "&DoubleLeftRightArrow", + "description": "Bad named entity: DoubleLeftRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleLeftRightArrow" + ] + ] + }, + { + "input": "⇔", + "description": "Named entity: DoubleLeftRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d4" + ] + ] + }, + { + "input": "&DoubleLeftTee", + "description": "Bad named entity: DoubleLeftTee without a semi-colon", + "output": [ + [ + "Character", + "&DoubleLeftTee" + ] + ] + }, + { + "input": "⫤", + "description": "Named entity: DoubleLeftTee; with a semi-colon", + "output": [ + [ + "Character", + "\u2ae4" + ] + ] + }, + { + "input": "&DoubleLongLeftArrow", + "description": "Bad named entity: DoubleLongLeftArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleLongLeftArrow" + ] + ] + }, + { + "input": "⟸", + "description": "Named entity: DoubleLongLeftArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f8" + ] + ] + }, + { + "input": "&DoubleLongLeftRightArrow", + "description": "Bad named entity: DoubleLongLeftRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleLongLeftRightArrow" + ] + ] + }, + { + "input": "⟺", + "description": "Named entity: DoubleLongLeftRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27fa" + ] + ] + }, + { + "input": "&DoubleLongRightArrow", + "description": "Bad named entity: DoubleLongRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleLongRightArrow" + ] + ] + }, + { + "input": "⟹", + "description": "Named entity: DoubleLongRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f9" + ] + ] + }, + { + "input": "&DoubleRightArrow", + "description": "Bad named entity: DoubleRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleRightArrow" + ] + ] + }, + { + "input": "⇒", + "description": "Named entity: DoubleRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d2" + ] + ] + }, + { + "input": "&DoubleRightTee", + "description": "Bad named entity: DoubleRightTee without a semi-colon", + "output": [ + [ + "Character", + "&DoubleRightTee" + ] + ] + }, + { + "input": "⊨", + "description": "Named entity: DoubleRightTee; with a semi-colon", + "output": [ + [ + "Character", + "\u22a8" + ] + ] + }, + { + "input": "&DoubleUpArrow", + "description": "Bad named entity: DoubleUpArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleUpArrow" + ] + ] + }, + { + "input": "⇑", + "description": "Named entity: DoubleUpArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d1" + ] + ] + }, + { + "input": "&DoubleUpDownArrow", + "description": "Bad named entity: DoubleUpDownArrow without a semi-colon", + "output": [ + [ + "Character", + "&DoubleUpDownArrow" + ] + ] + }, + { + "input": "⇕", + "description": "Named entity: DoubleUpDownArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d5" + ] + ] + }, + { + "input": "&DoubleVerticalBar", + "description": "Bad named entity: DoubleVerticalBar without a semi-colon", + "output": [ + [ + "Character", + "&DoubleVerticalBar" + ] + ] + }, + { + "input": "∥", + "description": "Named entity: DoubleVerticalBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2225" + ] + ] + }, + { + "input": "&DownArrow", + "description": "Bad named entity: DownArrow without a semi-colon", + "output": [ + [ + "Character", + "&DownArrow" + ] + ] + }, + { + "input": "↓", + "description": "Named entity: DownArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2193" + ] + ] + }, + { + "input": "&DownArrowBar", + "description": "Bad named entity: DownArrowBar without a semi-colon", + "output": [ + [ + "Character", + "&DownArrowBar" + ] + ] + }, + { + "input": "⤓", + "description": "Named entity: DownArrowBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2913" + ] + ] + }, + { + "input": "&DownArrowUpArrow", + "description": "Bad named entity: DownArrowUpArrow without a semi-colon", + "output": [ + [ + "Character", + "&DownArrowUpArrow" + ] + ] + }, + { + "input": "⇵", + "description": "Named entity: DownArrowUpArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21f5" + ] + ] + }, + { + "input": "&DownBreve", + "description": "Bad named entity: DownBreve without a semi-colon", + "output": [ + [ + "Character", + "&DownBreve" + ] + ] + }, + { + "input": "̑", + "description": "Named entity: DownBreve; with a semi-colon", + "output": [ + [ + "Character", + "\u0311" + ] + ] + }, + { + "input": "&DownLeftRightVector", + "description": "Bad named entity: DownLeftRightVector without a semi-colon", + "output": [ + [ + "Character", + "&DownLeftRightVector" + ] + ] + }, + { + "input": "⥐", + "description": "Named entity: DownLeftRightVector; with a semi-colon", + "output": [ + [ + "Character", + "\u2950" + ] + ] + }, + { + "input": "&DownLeftTeeVector", + "description": "Bad named entity: DownLeftTeeVector without a semi-colon", + "output": [ + [ + "Character", + "&DownLeftTeeVector" + ] + ] + }, + { + "input": "⥞", + "description": "Named entity: DownLeftTeeVector; with a semi-colon", + "output": [ + [ + "Character", + "\u295e" + ] + ] + }, + { + "input": "&DownLeftVector", + "description": "Bad named entity: DownLeftVector without a semi-colon", + "output": [ + [ + "Character", + "&DownLeftVector" + ] + ] + }, + { + "input": "↽", + "description": "Named entity: DownLeftVector; with a semi-colon", + "output": [ + [ + "Character", + "\u21bd" + ] + ] + }, + { + "input": "&DownLeftVectorBar", + "description": "Bad named entity: DownLeftVectorBar without a semi-colon", + "output": [ + [ + "Character", + "&DownLeftVectorBar" + ] + ] + }, + { + "input": "⥖", + "description": "Named entity: DownLeftVectorBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2956" + ] + ] + }, + { + "input": "&DownRightTeeVector", + "description": "Bad named entity: DownRightTeeVector without a semi-colon", + "output": [ + [ + "Character", + "&DownRightTeeVector" + ] + ] + }, + { + "input": "⥟", + "description": "Named entity: DownRightTeeVector; with a semi-colon", + "output": [ + [ + "Character", + "\u295f" + ] + ] + }, + { + "input": "&DownRightVector", + "description": "Bad named entity: DownRightVector without a semi-colon", + "output": [ + [ + "Character", + "&DownRightVector" + ] + ] + }, + { + "input": "⇁", + "description": "Named entity: DownRightVector; with a semi-colon", + "output": [ + [ + "Character", + "\u21c1" + ] + ] + }, + { + "input": "&DownRightVectorBar", + "description": "Bad named entity: DownRightVectorBar without a semi-colon", + "output": [ + [ + "Character", + "&DownRightVectorBar" + ] + ] + }, + { + "input": "⥗", + "description": "Named entity: DownRightVectorBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2957" + ] + ] + }, + { + "input": "&DownTee", + "description": "Bad named entity: DownTee without a semi-colon", + "output": [ + [ + "Character", + "&DownTee" + ] + ] + }, + { + "input": "⊤", + "description": "Named entity: DownTee; with a semi-colon", + "output": [ + [ + "Character", + "\u22a4" + ] + ] + }, + { + "input": "&DownTeeArrow", + "description": "Bad named entity: DownTeeArrow without a semi-colon", + "output": [ + [ + "Character", + "&DownTeeArrow" + ] + ] + }, + { + "input": "↧", + "description": "Named entity: DownTeeArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21a7" + ] + ] + }, + { + "input": "&Downarrow", + "description": "Bad named entity: Downarrow without a semi-colon", + "output": [ + [ + "Character", + "&Downarrow" + ] + ] + }, + { + "input": "⇓", + "description": "Named entity: Downarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d3" + ] + ] + }, + { + "input": "&Dscr", + "description": "Bad named entity: Dscr without a semi-colon", + "output": [ + [ + "Character", + "&Dscr" + ] + ] + }, + { + "input": "𝒟", + "description": "Named entity: Dscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udc9f" + ] + ] + }, + { + "input": "&Dstrok", + "description": "Bad named entity: Dstrok without a semi-colon", + "output": [ + [ + "Character", + "&Dstrok" + ] + ] + }, + { + "input": "Đ", + "description": "Named entity: Dstrok; with a semi-colon", + "output": [ + [ + "Character", + "\u0110" + ] + ] + }, + { + "input": "&ENG", + "description": "Bad named entity: ENG without a semi-colon", + "output": [ + [ + "Character", + "&ENG" + ] + ] + }, + { + "input": "Ŋ", + "description": "Named entity: ENG; with a semi-colon", + "output": [ + [ + "Character", + "\u014a" + ] + ] + }, + { + "input": "Ð", + "description": "Named entity: ETH without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d0" + ] + ] + }, + { + "input": "Ð", + "description": "Named entity: ETH; with a semi-colon", + "output": [ + [ + "Character", + "\u00d0" + ] + ] + }, + { + "input": "É", + "description": "Named entity: Eacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c9" + ] + ] + }, + { + "input": "É", + "description": "Named entity: Eacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00c9" + ] + ] + }, + { + "input": "&Ecaron", + "description": "Bad named entity: Ecaron without a semi-colon", + "output": [ + [ + "Character", + "&Ecaron" + ] + ] + }, + { + "input": "Ě", + "description": "Named entity: Ecaron; with a semi-colon", + "output": [ + [ + "Character", + "\u011a" + ] + ] + }, + { + "input": "Ê", + "description": "Named entity: Ecirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ca" + ] + ] + }, + { + "input": "Ê", + "description": "Named entity: Ecirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00ca" + ] + ] + }, + { + "input": "&Ecy", + "description": "Bad named entity: Ecy without a semi-colon", + "output": [ + [ + "Character", + "&Ecy" + ] + ] + }, + { + "input": "Э", + "description": "Named entity: Ecy; with a semi-colon", + "output": [ + [ + "Character", + "\u042d" + ] + ] + }, + { + "input": "&Edot", + "description": "Bad named entity: Edot without a semi-colon", + "output": [ + [ + "Character", + "&Edot" + ] + ] + }, + { + "input": "Ė", + "description": "Named entity: Edot; with a semi-colon", + "output": [ + [ + "Character", + "\u0116" + ] + ] + }, + { + "input": "&Efr", + "description": "Bad named entity: Efr without a semi-colon", + "output": [ + [ + "Character", + "&Efr" + ] + ] + }, + { + "input": "𝔈", + "description": "Named entity: Efr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd08" + ] + ] + }, + { + "input": "È", + "description": "Named entity: Egrave without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00c8" + ] + ] + }, + { + "input": "È", + "description": "Named entity: Egrave; with a semi-colon", + "output": [ + [ + "Character", + "\u00c8" + ] + ] + }, + { + "input": "&Element", + "description": "Bad named entity: Element without a semi-colon", + "output": [ + [ + "Character", + "&Element" + ] + ] + }, + { + "input": "∈", + "description": "Named entity: Element; with a semi-colon", + "output": [ + [ + "Character", + "\u2208" + ] + ] + }, + { + "input": "&Emacr", + "description": "Bad named entity: Emacr without a semi-colon", + "output": [ + [ + "Character", + "&Emacr" + ] + ] + }, + { + "input": "Ē", + "description": "Named entity: Emacr; with a semi-colon", + "output": [ + [ + "Character", + "\u0112" + ] + ] + }, + { + "input": "&EmptySmallSquare", + "description": "Bad named entity: EmptySmallSquare without a semi-colon", + "output": [ + [ + "Character", + "&EmptySmallSquare" + ] + ] + }, + { + "input": "◻", + "description": "Named entity: EmptySmallSquare; with a semi-colon", + "output": [ + [ + "Character", + "\u25fb" + ] + ] + }, + { + "input": "&EmptyVerySmallSquare", + "description": "Bad named entity: EmptyVerySmallSquare without a semi-colon", + "output": [ + [ + "Character", + "&EmptyVerySmallSquare" + ] + ] + }, + { + "input": "▫", + "description": "Named entity: EmptyVerySmallSquare; with a semi-colon", + "output": [ + [ + "Character", + "\u25ab" + ] + ] + }, + { + "input": "&Eogon", + "description": "Bad named entity: Eogon without a semi-colon", + "output": [ + [ + "Character", + "&Eogon" + ] + ] + }, + { + "input": "Ę", + "description": "Named entity: Eogon; with a semi-colon", + "output": [ + [ + "Character", + "\u0118" + ] + ] + }, + { + "input": "&Eopf", + "description": "Bad named entity: Eopf without a semi-colon", + "output": [ + [ + "Character", + "&Eopf" + ] + ] + }, + { + "input": "𝔼", + "description": "Named entity: Eopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd3c" + ] + ] + }, + { + "input": "&Epsilon", + "description": "Bad named entity: Epsilon without a semi-colon", + "output": [ + [ + "Character", + "&Epsilon" + ] + ] + }, + { + "input": "Ε", + "description": "Named entity: Epsilon; with a semi-colon", + "output": [ + [ + "Character", + "\u0395" + ] + ] + }, + { + "input": "&Equal", + "description": "Bad named entity: Equal without a semi-colon", + "output": [ + [ + "Character", + "&Equal" + ] + ] + }, + { + "input": "⩵", + "description": "Named entity: Equal; with a semi-colon", + "output": [ + [ + "Character", + "\u2a75" + ] + ] + }, + { + "input": "&EqualTilde", + "description": "Bad named entity: EqualTilde without a semi-colon", + "output": [ + [ + "Character", + "&EqualTilde" + ] + ] + }, + { + "input": "≂", + "description": "Named entity: EqualTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2242" + ] + ] + }, + { + "input": "&Equilibrium", + "description": "Bad named entity: Equilibrium without a semi-colon", + "output": [ + [ + "Character", + "&Equilibrium" + ] + ] + }, + { + "input": "⇌", + "description": "Named entity: Equilibrium; with a semi-colon", + "output": [ + [ + "Character", + "\u21cc" + ] + ] + }, + { + "input": "&Escr", + "description": "Bad named entity: Escr without a semi-colon", + "output": [ + [ + "Character", + "&Escr" + ] + ] + }, + { + "input": "ℰ", + "description": "Named entity: Escr; with a semi-colon", + "output": [ + [ + "Character", + "\u2130" + ] + ] + }, + { + "input": "&Esim", + "description": "Bad named entity: Esim without a semi-colon", + "output": [ + [ + "Character", + "&Esim" + ] + ] + }, + { + "input": "⩳", + "description": "Named entity: Esim; with a semi-colon", + "output": [ + [ + "Character", + "\u2a73" + ] + ] + }, + { + "input": "&Eta", + "description": "Bad named entity: Eta without a semi-colon", + "output": [ + [ + "Character", + "&Eta" + ] + ] + }, + { + "input": "Η", + "description": "Named entity: Eta; with a semi-colon", + "output": [ + [ + "Character", + "\u0397" + ] + ] + }, + { + "input": "Ë", + "description": "Named entity: Euml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00cb" + ] + ] + }, + { + "input": "Ë", + "description": "Named entity: Euml; with a semi-colon", + "output": [ + [ + "Character", + "\u00cb" + ] + ] + }, + { + "input": "&Exists", + "description": "Bad named entity: Exists without a semi-colon", + "output": [ + [ + "Character", + "&Exists" + ] + ] + }, + { + "input": "∃", + "description": "Named entity: Exists; with a semi-colon", + "output": [ + [ + "Character", + "\u2203" + ] + ] + }, + { + "input": "&ExponentialE", + "description": "Bad named entity: ExponentialE without a semi-colon", + "output": [ + [ + "Character", + "&ExponentialE" + ] + ] + }, + { + "input": "ⅇ", + "description": "Named entity: ExponentialE; with a semi-colon", + "output": [ + [ + "Character", + "\u2147" + ] + ] + }, + { + "input": "&Fcy", + "description": "Bad named entity: Fcy without a semi-colon", + "output": [ + [ + "Character", + "&Fcy" + ] + ] + }, + { + "input": "Ф", + "description": "Named entity: Fcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0424" + ] + ] + }, + { + "input": "&Ffr", + "description": "Bad named entity: Ffr without a semi-colon", + "output": [ + [ + "Character", + "&Ffr" + ] + ] + }, + { + "input": "𝔉", + "description": "Named entity: Ffr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd09" + ] + ] + }, + { + "input": "&FilledSmallSquare", + "description": "Bad named entity: FilledSmallSquare without a semi-colon", + "output": [ + [ + "Character", + "&FilledSmallSquare" + ] + ] + }, + { + "input": "◼", + "description": "Named entity: FilledSmallSquare; with a semi-colon", + "output": [ + [ + "Character", + "\u25fc" + ] + ] + }, + { + "input": "&FilledVerySmallSquare", + "description": "Bad named entity: FilledVerySmallSquare without a semi-colon", + "output": [ + [ + "Character", + "&FilledVerySmallSquare" + ] + ] + }, + { + "input": "▪", + "description": "Named entity: FilledVerySmallSquare; with a semi-colon", + "output": [ + [ + "Character", + "\u25aa" + ] + ] + }, + { + "input": "&Fopf", + "description": "Bad named entity: Fopf without a semi-colon", + "output": [ + [ + "Character", + "&Fopf" + ] + ] + }, + { + "input": "𝔽", + "description": "Named entity: Fopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd3d" + ] + ] + }, + { + "input": "&ForAll", + "description": "Bad named entity: ForAll without a semi-colon", + "output": [ + [ + "Character", + "&ForAll" + ] + ] + }, + { + "input": "∀", + "description": "Named entity: ForAll; with a semi-colon", + "output": [ + [ + "Character", + "\u2200" + ] + ] + }, + { + "input": "&Fouriertrf", + "description": "Bad named entity: Fouriertrf without a semi-colon", + "output": [ + [ + "Character", + "&Fouriertrf" + ] + ] + }, + { + "input": "ℱ", + "description": "Named entity: Fouriertrf; with a semi-colon", + "output": [ + [ + "Character", + "\u2131" + ] + ] + }, + { + "input": "&Fscr", + "description": "Bad named entity: Fscr without a semi-colon", + "output": [ + [ + "Character", + "&Fscr" + ] + ] + }, + { + "input": "ℱ", + "description": "Named entity: Fscr; with a semi-colon", + "output": [ + [ + "Character", + "\u2131" + ] + ] + }, + { + "input": "&GJcy", + "description": "Bad named entity: GJcy without a semi-colon", + "output": [ + [ + "Character", + "&GJcy" + ] + ] + }, + { + "input": "Ѓ", + "description": "Named entity: GJcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0403" + ] + ] + }, + { + "input": ">", + "description": "Named entity: GT without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + ">" + ] + ] + }, + { + "input": ">", + "description": "Named entity: GT; with a semi-colon", + "output": [ + [ + "Character", + ">" + ] + ] + }, + { + "input": "&Gamma", + "description": "Bad named entity: Gamma without a semi-colon", + "output": [ + [ + "Character", + "&Gamma" + ] + ] + }, + { + "input": "Γ", + "description": "Named entity: Gamma; with a semi-colon", + "output": [ + [ + "Character", + "\u0393" + ] + ] + }, + { + "input": "&Gammad", + "description": "Bad named entity: Gammad without a semi-colon", + "output": [ + [ + "Character", + "&Gammad" + ] + ] + }, + { + "input": "Ϝ", + "description": "Named entity: Gammad; with a semi-colon", + "output": [ + [ + "Character", + "\u03dc" + ] + ] + }, + { + "input": "&Gbreve", + "description": "Bad named entity: Gbreve without a semi-colon", + "output": [ + [ + "Character", + "&Gbreve" + ] + ] + }, + { + "input": "Ğ", + "description": "Named entity: Gbreve; with a semi-colon", + "output": [ + [ + "Character", + "\u011e" + ] + ] + }, + { + "input": "&Gcedil", + "description": "Bad named entity: Gcedil without a semi-colon", + "output": [ + [ + "Character", + "&Gcedil" + ] + ] + }, + { + "input": "Ģ", + "description": "Named entity: Gcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0122" + ] + ] + }, + { + "input": "&Gcirc", + "description": "Bad named entity: Gcirc without a semi-colon", + "output": [ + [ + "Character", + "&Gcirc" + ] + ] + }, + { + "input": "Ĝ", + "description": "Named entity: Gcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u011c" + ] + ] + }, + { + "input": "&Gcy", + "description": "Bad named entity: Gcy without a semi-colon", + "output": [ + [ + "Character", + "&Gcy" + ] + ] + }, + { + "input": "Г", + "description": "Named entity: Gcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0413" + ] + ] + }, + { + "input": "&Gdot", + "description": "Bad named entity: Gdot without a semi-colon", + "output": [ + [ + "Character", + "&Gdot" + ] + ] + }, + { + "input": "Ġ", + "description": "Named entity: Gdot; with a semi-colon", + "output": [ + [ + "Character", + "\u0120" + ] + ] + }, + { + "input": "&Gfr", + "description": "Bad named entity: Gfr without a semi-colon", + "output": [ + [ + "Character", + "&Gfr" + ] + ] + }, + { + "input": "𝔊", + "description": "Named entity: Gfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd0a" + ] + ] + }, + { + "input": "&Gg", + "description": "Bad named entity: Gg without a semi-colon", + "output": [ + [ + "Character", + "&Gg" + ] + ] + }, + { + "input": "⋙", + "description": "Named entity: Gg; with a semi-colon", + "output": [ + [ + "Character", + "\u22d9" + ] + ] + }, + { + "input": "&Gopf", + "description": "Bad named entity: Gopf without a semi-colon", + "output": [ + [ + "Character", + "&Gopf" + ] + ] + }, + { + "input": "𝔾", + "description": "Named entity: Gopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd3e" + ] + ] + }, + { + "input": "&GreaterEqual", + "description": "Bad named entity: GreaterEqual without a semi-colon", + "output": [ + [ + "Character", + "&GreaterEqual" + ] + ] + }, + { + "input": "≥", + "description": "Named entity: GreaterEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2265" + ] + ] + }, + { + "input": "&GreaterEqualLess", + "description": "Bad named entity: GreaterEqualLess without a semi-colon", + "output": [ + [ + "Character", + "&GreaterEqualLess" + ] + ] + }, + { + "input": "⋛", + "description": "Named entity: GreaterEqualLess; with a semi-colon", + "output": [ + [ + "Character", + "\u22db" + ] + ] + }, + { + "input": "&GreaterFullEqual", + "description": "Bad named entity: GreaterFullEqual without a semi-colon", + "output": [ + [ + "Character", + "&GreaterFullEqual" + ] + ] + }, + { + "input": "≧", + "description": "Named entity: GreaterFullEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2267" + ] + ] + }, + { + "input": "&GreaterGreater", + "description": "Bad named entity: GreaterGreater without a semi-colon", + "output": [ + [ + "Character", + "&GreaterGreater" + ] + ] + }, + { + "input": "⪢", + "description": "Named entity: GreaterGreater; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa2" + ] + ] + }, + { + "input": "&GreaterLess", + "description": "Bad named entity: GreaterLess without a semi-colon", + "output": [ + [ + "Character", + "&GreaterLess" + ] + ] + }, + { + "input": "≷", + "description": "Named entity: GreaterLess; with a semi-colon", + "output": [ + [ + "Character", + "\u2277" + ] + ] + }, + { + "input": "&GreaterSlantEqual", + "description": "Bad named entity: GreaterSlantEqual without a semi-colon", + "output": [ + [ + "Character", + "&GreaterSlantEqual" + ] + ] + }, + { + "input": "⩾", + "description": "Named entity: GreaterSlantEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7e" + ] + ] + }, + { + "input": "&GreaterTilde", + "description": "Bad named entity: GreaterTilde without a semi-colon", + "output": [ + [ + "Character", + "&GreaterTilde" + ] + ] + }, + { + "input": "≳", + "description": "Named entity: GreaterTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2273" + ] + ] + }, + { + "input": "&Gscr", + "description": "Bad named entity: Gscr without a semi-colon", + "output": [ + [ + "Character", + "&Gscr" + ] + ] + }, + { + "input": "𝒢", + "description": "Named entity: Gscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udca2" + ] + ] + }, + { + "input": "&Gt", + "description": "Bad named entity: Gt without a semi-colon", + "output": [ + [ + "Character", + "&Gt" + ] + ] + }, + { + "input": "≫", + "description": "Named entity: Gt; with a semi-colon", + "output": [ + [ + "Character", + "\u226b" + ] + ] + }, + { + "input": "&HARDcy", + "description": "Bad named entity: HARDcy without a semi-colon", + "output": [ + [ + "Character", + "&HARDcy" + ] + ] + }, + { + "input": "Ъ", + "description": "Named entity: HARDcy; with a semi-colon", + "output": [ + [ + "Character", + "\u042a" + ] + ] + }, + { + "input": "&Hacek", + "description": "Bad named entity: Hacek without a semi-colon", + "output": [ + [ + "Character", + "&Hacek" + ] + ] + }, + { + "input": "ˇ", + "description": "Named entity: Hacek; with a semi-colon", + "output": [ + [ + "Character", + "\u02c7" + ] + ] + }, + { + "input": "&Hat", + "description": "Bad named entity: Hat without a semi-colon", + "output": [ + [ + "Character", + "&Hat" + ] + ] + }, + { + "input": "^", + "description": "Named entity: Hat; with a semi-colon", + "output": [ + [ + "Character", + "^" + ] + ] + }, + { + "input": "&Hcirc", + "description": "Bad named entity: Hcirc without a semi-colon", + "output": [ + [ + "Character", + "&Hcirc" + ] + ] + }, + { + "input": "Ĥ", + "description": "Named entity: Hcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0124" + ] + ] + }, + { + "input": "&Hfr", + "description": "Bad named entity: Hfr without a semi-colon", + "output": [ + [ + "Character", + "&Hfr" + ] + ] + }, + { + "input": "ℌ", + "description": "Named entity: Hfr; with a semi-colon", + "output": [ + [ + "Character", + "\u210c" + ] + ] + }, + { + "input": "&HilbertSpace", + "description": "Bad named entity: HilbertSpace without a semi-colon", + "output": [ + [ + "Character", + "&HilbertSpace" + ] + ] + }, + { + "input": "ℋ", + "description": "Named entity: HilbertSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u210b" + ] + ] + }, + { + "input": "&Hopf", + "description": "Bad named entity: Hopf without a semi-colon", + "output": [ + [ + "Character", + "&Hopf" + ] + ] + }, + { + "input": "ℍ", + "description": "Named entity: Hopf; with a semi-colon", + "output": [ + [ + "Character", + "\u210d" + ] + ] + }, + { + "input": "&HorizontalLine", + "description": "Bad named entity: HorizontalLine without a semi-colon", + "output": [ + [ + "Character", + "&HorizontalLine" + ] + ] + }, + { + "input": "─", + "description": "Named entity: HorizontalLine; with a semi-colon", + "output": [ + [ + "Character", + "\u2500" + ] + ] + }, + { + "input": "&Hscr", + "description": "Bad named entity: Hscr without a semi-colon", + "output": [ + [ + "Character", + "&Hscr" + ] + ] + }, + { + "input": "ℋ", + "description": "Named entity: Hscr; with a semi-colon", + "output": [ + [ + "Character", + "\u210b" + ] + ] + }, + { + "input": "&Hstrok", + "description": "Bad named entity: Hstrok without a semi-colon", + "output": [ + [ + "Character", + "&Hstrok" + ] + ] + }, + { + "input": "Ħ", + "description": "Named entity: Hstrok; with a semi-colon", + "output": [ + [ + "Character", + "\u0126" + ] + ] + }, + { + "input": "&HumpDownHump", + "description": "Bad named entity: HumpDownHump without a semi-colon", + "output": [ + [ + "Character", + "&HumpDownHump" + ] + ] + }, + { + "input": "≎", + "description": "Named entity: HumpDownHump; with a semi-colon", + "output": [ + [ + "Character", + "\u224e" + ] + ] + }, + { + "input": "&HumpEqual", + "description": "Bad named entity: HumpEqual without a semi-colon", + "output": [ + [ + "Character", + "&HumpEqual" + ] + ] + }, + { + "input": "≏", + "description": "Named entity: HumpEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u224f" + ] + ] + }, + { + "input": "&IEcy", + "description": "Bad named entity: IEcy without a semi-colon", + "output": [ + [ + "Character", + "&IEcy" + ] + ] + }, + { + "input": "Е", + "description": "Named entity: IEcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0415" + ] + ] + }, + { + "input": "&IJlig", + "description": "Bad named entity: IJlig without a semi-colon", + "output": [ + [ + "Character", + "&IJlig" + ] + ] + }, + { + "input": "IJ", + "description": "Named entity: IJlig; with a semi-colon", + "output": [ + [ + "Character", + "\u0132" + ] + ] + }, + { + "input": "&IOcy", + "description": "Bad named entity: IOcy without a semi-colon", + "output": [ + [ + "Character", + "&IOcy" + ] + ] + }, + { + "input": "Ё", + "description": "Named entity: IOcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0401" + ] + ] + }, + { + "input": "Í", + "description": "Named entity: Iacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00cd" + ] + ] + }, + { + "input": "Í", + "description": "Named entity: Iacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00cd" + ] + ] + }, + { + "input": "Î", + "description": "Named entity: Icirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ce" + ] + ] + }, + { + "input": "Î", + "description": "Named entity: Icirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00ce" + ] + ] + }, + { + "input": "&Icy", + "description": "Bad named entity: Icy without a semi-colon", + "output": [ + [ + "Character", + "&Icy" + ] + ] + }, + { + "input": "И", + "description": "Named entity: Icy; with a semi-colon", + "output": [ + [ + "Character", + "\u0418" + ] + ] + }, + { + "input": "&Idot", + "description": "Bad named entity: Idot without a semi-colon", + "output": [ + [ + "Character", + "&Idot" + ] + ] + }, + { + "input": "İ", + "description": "Named entity: Idot; with a semi-colon", + "output": [ + [ + "Character", + "\u0130" + ] + ] + }, + { + "input": "&Ifr", + "description": "Bad named entity: Ifr without a semi-colon", + "output": [ + [ + "Character", + "&Ifr" + ] + ] + }, + { + "input": "ℑ", + "description": "Named entity: Ifr; with a semi-colon", + "output": [ + [ + "Character", + "\u2111" + ] + ] + }, + { + "input": "Ì", + "description": "Named entity: Igrave without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00cc" + ] + ] + }, + { + "input": "Ì", + "description": "Named entity: Igrave; with a semi-colon", + "output": [ + [ + "Character", + "\u00cc" + ] + ] + }, + { + "input": "&Im", + "description": "Bad named entity: Im without a semi-colon", + "output": [ + [ + "Character", + "&Im" + ] + ] + }, + { + "input": "ℑ", + "description": "Named entity: Im; with a semi-colon", + "output": [ + [ + "Character", + "\u2111" + ] + ] + }, + { + "input": "&Imacr", + "description": "Bad named entity: Imacr without a semi-colon", + "output": [ + [ + "Character", + "&Imacr" + ] + ] + }, + { + "input": "Ī", + "description": "Named entity: Imacr; with a semi-colon", + "output": [ + [ + "Character", + "\u012a" + ] + ] + }, + { + "input": "&ImaginaryI", + "description": "Bad named entity: ImaginaryI without a semi-colon", + "output": [ + [ + "Character", + "&ImaginaryI" + ] + ] + }, + { + "input": "ⅈ", + "description": "Named entity: ImaginaryI; with a semi-colon", + "output": [ + [ + "Character", + "\u2148" + ] + ] + }, + { + "input": "&Implies", + "description": "Bad named entity: Implies without a semi-colon", + "output": [ + [ + "Character", + "&Implies" + ] + ] + }, + { + "input": "⇒", + "description": "Named entity: Implies; with a semi-colon", + "output": [ + [ + "Character", + "\u21d2" + ] + ] + }, + { + "input": "&Int", + "description": "Bad named entity: Int without a semi-colon", + "output": [ + [ + "Character", + "&Int" + ] + ] + }, + { + "input": "∬", + "description": "Named entity: Int; with a semi-colon", + "output": [ + [ + "Character", + "\u222c" + ] + ] + }, + { + "input": "&Integral", + "description": "Bad named entity: Integral without a semi-colon", + "output": [ + [ + "Character", + "&Integral" + ] + ] + }, + { + "input": "∫", + "description": "Named entity: Integral; with a semi-colon", + "output": [ + [ + "Character", + "\u222b" + ] + ] + }, + { + "input": "&Intersection", + "description": "Bad named entity: Intersection without a semi-colon", + "output": [ + [ + "Character", + "&Intersection" + ] + ] + }, + { + "input": "⋂", + "description": "Named entity: Intersection; with a semi-colon", + "output": [ + [ + "Character", + "\u22c2" + ] + ] + }, + { + "input": "&InvisibleComma", + "description": "Bad named entity: InvisibleComma without a semi-colon", + "output": [ + [ + "Character", + "&InvisibleComma" + ] + ] + }, + { + "input": "⁣", + "description": "Named entity: InvisibleComma; with a semi-colon", + "output": [ + [ + "Character", + "\u2063" + ] + ] + }, + { + "input": "&InvisibleTimes", + "description": "Bad named entity: InvisibleTimes without a semi-colon", + "output": [ + [ + "Character", + "&InvisibleTimes" + ] + ] + }, + { + "input": "⁢", + "description": "Named entity: InvisibleTimes; with a semi-colon", + "output": [ + [ + "Character", + "\u2062" + ] + ] + }, + { + "input": "&Iogon", + "description": "Bad named entity: Iogon without a semi-colon", + "output": [ + [ + "Character", + "&Iogon" + ] + ] + }, + { + "input": "Į", + "description": "Named entity: Iogon; with a semi-colon", + "output": [ + [ + "Character", + "\u012e" + ] + ] + }, + { + "input": "&Iopf", + "description": "Bad named entity: Iopf without a semi-colon", + "output": [ + [ + "Character", + "&Iopf" + ] + ] + }, + { + "input": "𝕀", + "description": "Named entity: Iopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd40" + ] + ] + }, + { + "input": "&Iota", + "description": "Bad named entity: Iota without a semi-colon", + "output": [ + [ + "Character", + "&Iota" + ] + ] + }, + { + "input": "Ι", + "description": "Named entity: Iota; with a semi-colon", + "output": [ + [ + "Character", + "\u0399" + ] + ] + }, + { + "input": "&Iscr", + "description": "Bad named entity: Iscr without a semi-colon", + "output": [ + [ + "Character", + "&Iscr" + ] + ] + }, + { + "input": "ℐ", + "description": "Named entity: Iscr; with a semi-colon", + "output": [ + [ + "Character", + "\u2110" + ] + ] + }, + { + "input": "&Itilde", + "description": "Bad named entity: Itilde without a semi-colon", + "output": [ + [ + "Character", + "&Itilde" + ] + ] + }, + { + "input": "Ĩ", + "description": "Named entity: Itilde; with a semi-colon", + "output": [ + [ + "Character", + "\u0128" + ] + ] + }, + { + "input": "&Iukcy", + "description": "Bad named entity: Iukcy without a semi-colon", + "output": [ + [ + "Character", + "&Iukcy" + ] + ] + }, + { + "input": "І", + "description": "Named entity: Iukcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0406" + ] + ] + }, + { + "input": "Ï", + "description": "Named entity: Iuml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00cf" + ] + ] + }, + { + "input": "Ï", + "description": "Named entity: Iuml; with a semi-colon", + "output": [ + [ + "Character", + "\u00cf" + ] + ] + }, + { + "input": "&Jcirc", + "description": "Bad named entity: Jcirc without a semi-colon", + "output": [ + [ + "Character", + "&Jcirc" + ] + ] + }, + { + "input": "Ĵ", + "description": "Named entity: Jcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0134" + ] + ] + }, + { + "input": "&Jcy", + "description": "Bad named entity: Jcy without a semi-colon", + "output": [ + [ + "Character", + "&Jcy" + ] + ] + }, + { + "input": "Й", + "description": "Named entity: Jcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0419" + ] + ] + }, + { + "input": "&Jfr", + "description": "Bad named entity: Jfr without a semi-colon", + "output": [ + [ + "Character", + "&Jfr" + ] + ] + }, + { + "input": "𝔍", + "description": "Named entity: Jfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd0d" + ] + ] + }, + { + "input": "&Jopf", + "description": "Bad named entity: Jopf without a semi-colon", + "output": [ + [ + "Character", + "&Jopf" + ] + ] + }, + { + "input": "𝕁", + "description": "Named entity: Jopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd41" + ] + ] + }, + { + "input": "&Jscr", + "description": "Bad named entity: Jscr without a semi-colon", + "output": [ + [ + "Character", + "&Jscr" + ] + ] + }, + { + "input": "𝒥", + "description": "Named entity: Jscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udca5" + ] + ] + }, + { + "input": "&Jsercy", + "description": "Bad named entity: Jsercy without a semi-colon", + "output": [ + [ + "Character", + "&Jsercy" + ] + ] + }, + { + "input": "Ј", + "description": "Named entity: Jsercy; with a semi-colon", + "output": [ + [ + "Character", + "\u0408" + ] + ] + }, + { + "input": "&Jukcy", + "description": "Bad named entity: Jukcy without a semi-colon", + "output": [ + [ + "Character", + "&Jukcy" + ] + ] + }, + { + "input": "Є", + "description": "Named entity: Jukcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0404" + ] + ] + }, + { + "input": "&KHcy", + "description": "Bad named entity: KHcy without a semi-colon", + "output": [ + [ + "Character", + "&KHcy" + ] + ] + }, + { + "input": "Х", + "description": "Named entity: KHcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0425" + ] + ] + }, + { + "input": "&KJcy", + "description": "Bad named entity: KJcy without a semi-colon", + "output": [ + [ + "Character", + "&KJcy" + ] + ] + }, + { + "input": "Ќ", + "description": "Named entity: KJcy; with a semi-colon", + "output": [ + [ + "Character", + "\u040c" + ] + ] + }, + { + "input": "&Kappa", + "description": "Bad named entity: Kappa without a semi-colon", + "output": [ + [ + "Character", + "&Kappa" + ] + ] + }, + { + "input": "Κ", + "description": "Named entity: Kappa; with a semi-colon", + "output": [ + [ + "Character", + "\u039a" + ] + ] + }, + { + "input": "&Kcedil", + "description": "Bad named entity: Kcedil without a semi-colon", + "output": [ + [ + "Character", + "&Kcedil" + ] + ] + }, + { + "input": "Ķ", + "description": "Named entity: Kcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0136" + ] + ] + }, + { + "input": "&Kcy", + "description": "Bad named entity: Kcy without a semi-colon", + "output": [ + [ + "Character", + "&Kcy" + ] + ] + }, + { + "input": "К", + "description": "Named entity: Kcy; with a semi-colon", + "output": [ + [ + "Character", + "\u041a" + ] + ] + }, + { + "input": "&Kfr", + "description": "Bad named entity: Kfr without a semi-colon", + "output": [ + [ + "Character", + "&Kfr" + ] + ] + }, + { + "input": "𝔎", + "description": "Named entity: Kfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd0e" + ] + ] + }, + { + "input": "&Kopf", + "description": "Bad named entity: Kopf without a semi-colon", + "output": [ + [ + "Character", + "&Kopf" + ] + ] + }, + { + "input": "𝕂", + "description": "Named entity: Kopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd42" + ] + ] + }, + { + "input": "&Kscr", + "description": "Bad named entity: Kscr without a semi-colon", + "output": [ + [ + "Character", + "&Kscr" + ] + ] + }, + { + "input": "𝒦", + "description": "Named entity: Kscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udca6" + ] + ] + }, + { + "input": "&LJcy", + "description": "Bad named entity: LJcy without a semi-colon", + "output": [ + [ + "Character", + "&LJcy" + ] + ] + }, + { + "input": "Љ", + "description": "Named entity: LJcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0409" + ] + ] + }, + { + "input": "<", + "description": "Named entity: LT without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "<" + ] + ] + }, + { + "input": "<", + "description": "Named entity: LT; with a semi-colon", + "output": [ + [ + "Character", + "<" + ] + ] + }, + { + "input": "&Lacute", + "description": "Bad named entity: Lacute without a semi-colon", + "output": [ + [ + "Character", + "&Lacute" + ] + ] + }, + { + "input": "Ĺ", + "description": "Named entity: Lacute; with a semi-colon", + "output": [ + [ + "Character", + "\u0139" + ] + ] + }, + { + "input": "&Lambda", + "description": "Bad named entity: Lambda without a semi-colon", + "output": [ + [ + "Character", + "&Lambda" + ] + ] + }, + { + "input": "Λ", + "description": "Named entity: Lambda; with a semi-colon", + "output": [ + [ + "Character", + "\u039b" + ] + ] + }, + { + "input": "&Lang", + "description": "Bad named entity: Lang without a semi-colon", + "output": [ + [ + "Character", + "&Lang" + ] + ] + }, + { + "input": "⟪", + "description": "Named entity: Lang; with a semi-colon", + "output": [ + [ + "Character", + "\u27ea" + ] + ] + }, + { + "input": "&Laplacetrf", + "description": "Bad named entity: Laplacetrf without a semi-colon", + "output": [ + [ + "Character", + "&Laplacetrf" + ] + ] + }, + { + "input": "ℒ", + "description": "Named entity: Laplacetrf; with a semi-colon", + "output": [ + [ + "Character", + "\u2112" + ] + ] + }, + { + "input": "&Larr", + "description": "Bad named entity: Larr without a semi-colon", + "output": [ + [ + "Character", + "&Larr" + ] + ] + }, + { + "input": "↞", + "description": "Named entity: Larr; with a semi-colon", + "output": [ + [ + "Character", + "\u219e" + ] + ] + }, + { + "input": "&Lcaron", + "description": "Bad named entity: Lcaron without a semi-colon", + "output": [ + [ + "Character", + "&Lcaron" + ] + ] + }, + { + "input": "Ľ", + "description": "Named entity: Lcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u013d" + ] + ] + }, + { + "input": "&Lcedil", + "description": "Bad named entity: Lcedil without a semi-colon", + "output": [ + [ + "Character", + "&Lcedil" + ] + ] + }, + { + "input": "Ļ", + "description": "Named entity: Lcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u013b" + ] + ] + }, + { + "input": "&Lcy", + "description": "Bad named entity: Lcy without a semi-colon", + "output": [ + [ + "Character", + "&Lcy" + ] + ] + }, + { + "input": "Л", + "description": "Named entity: Lcy; with a semi-colon", + "output": [ + [ + "Character", + "\u041b" + ] + ] + }, + { + "input": "&LeftAngleBracket", + "description": "Bad named entity: LeftAngleBracket without a semi-colon", + "output": [ + [ + "Character", + "&LeftAngleBracket" + ] + ] + }, + { + "input": "⟨", + "description": "Named entity: LeftAngleBracket; with a semi-colon", + "output": [ + [ + "Character", + "\u27e8" + ] + ] + }, + { + "input": "&LeftArrow", + "description": "Bad named entity: LeftArrow without a semi-colon", + "output": [ + [ + "Character", + "&LeftArrow" + ] + ] + }, + { + "input": "←", + "description": "Named entity: LeftArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2190" + ] + ] + }, + { + "input": "&LeftArrowBar", + "description": "Bad named entity: LeftArrowBar without a semi-colon", + "output": [ + [ + "Character", + "&LeftArrowBar" + ] + ] + }, + { + "input": "⇤", + "description": "Named entity: LeftArrowBar; with a semi-colon", + "output": [ + [ + "Character", + "\u21e4" + ] + ] + }, + { + "input": "&LeftArrowRightArrow", + "description": "Bad named entity: LeftArrowRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&LeftArrowRightArrow" + ] + ] + }, + { + "input": "⇆", + "description": "Named entity: LeftArrowRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21c6" + ] + ] + }, + { + "input": "&LeftCeiling", + "description": "Bad named entity: LeftCeiling without a semi-colon", + "output": [ + [ + "Character", + "&LeftCeiling" + ] + ] + }, + { + "input": "⌈", + "description": "Named entity: LeftCeiling; with a semi-colon", + "output": [ + [ + "Character", + "\u2308" + ] + ] + }, + { + "input": "&LeftDoubleBracket", + "description": "Bad named entity: LeftDoubleBracket without a semi-colon", + "output": [ + [ + "Character", + "&LeftDoubleBracket" + ] + ] + }, + { + "input": "⟦", + "description": "Named entity: LeftDoubleBracket; with a semi-colon", + "output": [ + [ + "Character", + "\u27e6" + ] + ] + }, + { + "input": "&LeftDownTeeVector", + "description": "Bad named entity: LeftDownTeeVector without a semi-colon", + "output": [ + [ + "Character", + "&LeftDownTeeVector" + ] + ] + }, + { + "input": "⥡", + "description": "Named entity: LeftDownTeeVector; with a semi-colon", + "output": [ + [ + "Character", + "\u2961" + ] + ] + }, + { + "input": "&LeftDownVector", + "description": "Bad named entity: LeftDownVector without a semi-colon", + "output": [ + [ + "Character", + "&LeftDownVector" + ] + ] + }, + { + "input": "⇃", + "description": "Named entity: LeftDownVector; with a semi-colon", + "output": [ + [ + "Character", + "\u21c3" + ] + ] + }, + { + "input": "&LeftDownVectorBar", + "description": "Bad named entity: LeftDownVectorBar without a semi-colon", + "output": [ + [ + "Character", + "&LeftDownVectorBar" + ] + ] + }, + { + "input": "⥙", + "description": "Named entity: LeftDownVectorBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2959" + ] + ] + }, + { + "input": "&LeftFloor", + "description": "Bad named entity: LeftFloor without a semi-colon", + "output": [ + [ + "Character", + "&LeftFloor" + ] + ] + }, + { + "input": "⌊", + "description": "Named entity: LeftFloor; with a semi-colon", + "output": [ + [ + "Character", + "\u230a" + ] + ] + }, + { + "input": "&LeftRightArrow", + "description": "Bad named entity: LeftRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&LeftRightArrow" + ] + ] + }, + { + "input": "↔", + "description": "Named entity: LeftRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2194" + ] + ] + }, + { + "input": "&LeftRightVector", + "description": "Bad named entity: LeftRightVector without a semi-colon", + "output": [ + [ + "Character", + "&LeftRightVector" + ] + ] + }, + { + "input": "⥎", + "description": "Named entity: LeftRightVector; with a semi-colon", + "output": [ + [ + "Character", + "\u294e" + ] + ] + }, + { + "input": "&LeftTee", + "description": "Bad named entity: LeftTee without a semi-colon", + "output": [ + [ + "Character", + "&LeftTee" + ] + ] + }, + { + "input": "⊣", + "description": "Named entity: LeftTee; with a semi-colon", + "output": [ + [ + "Character", + "\u22a3" + ] + ] + }, + { + "input": "&LeftTeeArrow", + "description": "Bad named entity: LeftTeeArrow without a semi-colon", + "output": [ + [ + "Character", + "&LeftTeeArrow" + ] + ] + }, + { + "input": "↤", + "description": "Named entity: LeftTeeArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21a4" + ] + ] + }, + { + "input": "&LeftTeeVector", + "description": "Bad named entity: LeftTeeVector without a semi-colon", + "output": [ + [ + "Character", + "&LeftTeeVector" + ] + ] + }, + { + "input": "⥚", + "description": "Named entity: LeftTeeVector; with a semi-colon", + "output": [ + [ + "Character", + "\u295a" + ] + ] + }, + { + "input": "&LeftTriangle", + "description": "Bad named entity: LeftTriangle without a semi-colon", + "output": [ + [ + "Character", + "&LeftTriangle" + ] + ] + }, + { + "input": "⊲", + "description": "Named entity: LeftTriangle; with a semi-colon", + "output": [ + [ + "Character", + "\u22b2" + ] + ] + }, + { + "input": "&LeftTriangleBar", + "description": "Bad named entity: LeftTriangleBar without a semi-colon", + "output": [ + [ + "Character", + "&LeftTriangleBar" + ] + ] + }, + { + "input": "⧏", + "description": "Named entity: LeftTriangleBar; with a semi-colon", + "output": [ + [ + "Character", + "\u29cf" + ] + ] + }, + { + "input": "&LeftTriangleEqual", + "description": "Bad named entity: LeftTriangleEqual without a semi-colon", + "output": [ + [ + "Character", + "&LeftTriangleEqual" + ] + ] + }, + { + "input": "⊴", + "description": "Named entity: LeftTriangleEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u22b4" + ] + ] + }, + { + "input": "&LeftUpDownVector", + "description": "Bad named entity: LeftUpDownVector without a semi-colon", + "output": [ + [ + "Character", + "&LeftUpDownVector" + ] + ] + }, + { + "input": "⥑", + "description": "Named entity: LeftUpDownVector; with a semi-colon", + "output": [ + [ + "Character", + "\u2951" + ] + ] + }, + { + "input": "&LeftUpTeeVector", + "description": "Bad named entity: LeftUpTeeVector without a semi-colon", + "output": [ + [ + "Character", + "&LeftUpTeeVector" + ] + ] + }, + { + "input": "⥠", + "description": "Named entity: LeftUpTeeVector; with a semi-colon", + "output": [ + [ + "Character", + "\u2960" + ] + ] + }, + { + "input": "&LeftUpVector", + "description": "Bad named entity: LeftUpVector without a semi-colon", + "output": [ + [ + "Character", + "&LeftUpVector" + ] + ] + }, + { + "input": "↿", + "description": "Named entity: LeftUpVector; with a semi-colon", + "output": [ + [ + "Character", + "\u21bf" + ] + ] + }, + { + "input": "&LeftUpVectorBar", + "description": "Bad named entity: LeftUpVectorBar without a semi-colon", + "output": [ + [ + "Character", + "&LeftUpVectorBar" + ] + ] + }, + { + "input": "⥘", + "description": "Named entity: LeftUpVectorBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2958" + ] + ] + }, + { + "input": "&LeftVector", + "description": "Bad named entity: LeftVector without a semi-colon", + "output": [ + [ + "Character", + "&LeftVector" + ] + ] + }, + { + "input": "↼", + "description": "Named entity: LeftVector; with a semi-colon", + "output": [ + [ + "Character", + "\u21bc" + ] + ] + }, + { + "input": "&LeftVectorBar", + "description": "Bad named entity: LeftVectorBar without a semi-colon", + "output": [ + [ + "Character", + "&LeftVectorBar" + ] + ] + }, + { + "input": "⥒", + "description": "Named entity: LeftVectorBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2952" + ] + ] + }, + { + "input": "&Leftarrow", + "description": "Bad named entity: Leftarrow without a semi-colon", + "output": [ + [ + "Character", + "&Leftarrow" + ] + ] + }, + { + "input": "⇐", + "description": "Named entity: Leftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d0" + ] + ] + }, + { + "input": "&Leftrightarrow", + "description": "Bad named entity: Leftrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&Leftrightarrow" + ] + ] + }, + { + "input": "⇔", + "description": "Named entity: Leftrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d4" + ] + ] + }, + { + "input": "&LessEqualGreater", + "description": "Bad named entity: LessEqualGreater without a semi-colon", + "output": [ + [ + "Character", + "&LessEqualGreater" + ] + ] + }, + { + "input": "⋚", + "description": "Named entity: LessEqualGreater; with a semi-colon", + "output": [ + [ + "Character", + "\u22da" + ] + ] + }, + { + "input": "&LessFullEqual", + "description": "Bad named entity: LessFullEqual without a semi-colon", + "output": [ + [ + "Character", + "&LessFullEqual" + ] + ] + }, + { + "input": "≦", + "description": "Named entity: LessFullEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2266" + ] + ] + }, + { + "input": "&LessGreater", + "description": "Bad named entity: LessGreater without a semi-colon", + "output": [ + [ + "Character", + "&LessGreater" + ] + ] + }, + { + "input": "≶", + "description": "Named entity: LessGreater; with a semi-colon", + "output": [ + [ + "Character", + "\u2276" + ] + ] + }, + { + "input": "&LessLess", + "description": "Bad named entity: LessLess without a semi-colon", + "output": [ + [ + "Character", + "&LessLess" + ] + ] + }, + { + "input": "⪡", + "description": "Named entity: LessLess; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa1" + ] + ] + }, + { + "input": "&LessSlantEqual", + "description": "Bad named entity: LessSlantEqual without a semi-colon", + "output": [ + [ + "Character", + "&LessSlantEqual" + ] + ] + }, + { + "input": "⩽", + "description": "Named entity: LessSlantEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7d" + ] + ] + }, + { + "input": "&LessTilde", + "description": "Bad named entity: LessTilde without a semi-colon", + "output": [ + [ + "Character", + "&LessTilde" + ] + ] + }, + { + "input": "≲", + "description": "Named entity: LessTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2272" + ] + ] + }, + { + "input": "&Lfr", + "description": "Bad named entity: Lfr without a semi-colon", + "output": [ + [ + "Character", + "&Lfr" + ] + ] + }, + { + "input": "𝔏", + "description": "Named entity: Lfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd0f" + ] + ] + }, + { + "input": "&Ll", + "description": "Bad named entity: Ll without a semi-colon", + "output": [ + [ + "Character", + "&Ll" + ] + ] + }, + { + "input": "⋘", + "description": "Named entity: Ll; with a semi-colon", + "output": [ + [ + "Character", + "\u22d8" + ] + ] + }, + { + "input": "&Lleftarrow", + "description": "Bad named entity: Lleftarrow without a semi-colon", + "output": [ + [ + "Character", + "&Lleftarrow" + ] + ] + }, + { + "input": "⇚", + "description": "Named entity: Lleftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21da" + ] + ] + }, + { + "input": "&Lmidot", + "description": "Bad named entity: Lmidot without a semi-colon", + "output": [ + [ + "Character", + "&Lmidot" + ] + ] + }, + { + "input": "Ŀ", + "description": "Named entity: Lmidot; with a semi-colon", + "output": [ + [ + "Character", + "\u013f" + ] + ] + }, + { + "input": "&LongLeftArrow", + "description": "Bad named entity: LongLeftArrow without a semi-colon", + "output": [ + [ + "Character", + "&LongLeftArrow" + ] + ] + }, + { + "input": "⟵", + "description": "Named entity: LongLeftArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f5" + ] + ] + }, + { + "input": "&LongLeftRightArrow", + "description": "Bad named entity: LongLeftRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&LongLeftRightArrow" + ] + ] + }, + { + "input": "⟷", + "description": "Named entity: LongLeftRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f7" + ] + ] + }, + { + "input": "&LongRightArrow", + "description": "Bad named entity: LongRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&LongRightArrow" + ] + ] + }, + { + "input": "⟶", + "description": "Named entity: LongRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f6" + ] + ] + }, + { + "input": "&Longleftarrow", + "description": "Bad named entity: Longleftarrow without a semi-colon", + "output": [ + [ + "Character", + "&Longleftarrow" + ] + ] + }, + { + "input": "⟸", + "description": "Named entity: Longleftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f8" + ] + ] + }, + { + "input": "&Longleftrightarrow", + "description": "Bad named entity: Longleftrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&Longleftrightarrow" + ] + ] + }, + { + "input": "⟺", + "description": "Named entity: Longleftrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27fa" + ] + ] + }, + { + "input": "&Longrightarrow", + "description": "Bad named entity: Longrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&Longrightarrow" + ] + ] + }, + { + "input": "⟹", + "description": "Named entity: Longrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f9" + ] + ] + }, + { + "input": "&Lopf", + "description": "Bad named entity: Lopf without a semi-colon", + "output": [ + [ + "Character", + "&Lopf" + ] + ] + }, + { + "input": "𝕃", + "description": "Named entity: Lopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd43" + ] + ] + }, + { + "input": "&LowerLeftArrow", + "description": "Bad named entity: LowerLeftArrow without a semi-colon", + "output": [ + [ + "Character", + "&LowerLeftArrow" + ] + ] + }, + { + "input": "↙", + "description": "Named entity: LowerLeftArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2199" + ] + ] + }, + { + "input": "&LowerRightArrow", + "description": "Bad named entity: LowerRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&LowerRightArrow" + ] + ] + }, + { + "input": "↘", + "description": "Named entity: LowerRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2198" + ] + ] + }, + { + "input": "&Lscr", + "description": "Bad named entity: Lscr without a semi-colon", + "output": [ + [ + "Character", + "&Lscr" + ] + ] + }, + { + "input": "ℒ", + "description": "Named entity: Lscr; with a semi-colon", + "output": [ + [ + "Character", + "\u2112" + ] + ] + }, + { + "input": "&Lsh", + "description": "Bad named entity: Lsh without a semi-colon", + "output": [ + [ + "Character", + "&Lsh" + ] + ] + }, + { + "input": "↰", + "description": "Named entity: Lsh; with a semi-colon", + "output": [ + [ + "Character", + "\u21b0" + ] + ] + }, + { + "input": "&Lstrok", + "description": "Bad named entity: Lstrok without a semi-colon", + "output": [ + [ + "Character", + "&Lstrok" + ] + ] + }, + { + "input": "Ł", + "description": "Named entity: Lstrok; with a semi-colon", + "output": [ + [ + "Character", + "\u0141" + ] + ] + }, + { + "input": "&Lt", + "description": "Bad named entity: Lt without a semi-colon", + "output": [ + [ + "Character", + "&Lt" + ] + ] + }, + { + "input": "≪", + "description": "Named entity: Lt; with a semi-colon", + "output": [ + [ + "Character", + "\u226a" + ] + ] + }, + { + "input": "&Map", + "description": "Bad named entity: Map without a semi-colon", + "output": [ + [ + "Character", + "&Map" + ] + ] + }, + { + "input": "⤅", + "description": "Named entity: Map; with a semi-colon", + "output": [ + [ + "Character", + "\u2905" + ] + ] + }, + { + "input": "&Mcy", + "description": "Bad named entity: Mcy without a semi-colon", + "output": [ + [ + "Character", + "&Mcy" + ] + ] + }, + { + "input": "М", + "description": "Named entity: Mcy; with a semi-colon", + "output": [ + [ + "Character", + "\u041c" + ] + ] + }, + { + "input": "&MediumSpace", + "description": "Bad named entity: MediumSpace without a semi-colon", + "output": [ + [ + "Character", + "&MediumSpace" + ] + ] + }, + { + "input": " ", + "description": "Named entity: MediumSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u205f" + ] + ] + }, + { + "input": "&Mellintrf", + "description": "Bad named entity: Mellintrf without a semi-colon", + "output": [ + [ + "Character", + "&Mellintrf" + ] + ] + }, + { + "input": "ℳ", + "description": "Named entity: Mellintrf; with a semi-colon", + "output": [ + [ + "Character", + "\u2133" + ] + ] + }, + { + "input": "&Mfr", + "description": "Bad named entity: Mfr without a semi-colon", + "output": [ + [ + "Character", + "&Mfr" + ] + ] + }, + { + "input": "𝔐", + "description": "Named entity: Mfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd10" + ] + ] + }, + { + "input": "&MinusPlus", + "description": "Bad named entity: MinusPlus without a semi-colon", + "output": [ + [ + "Character", + "&MinusPlus" + ] + ] + }, + { + "input": "∓", + "description": "Named entity: MinusPlus; with a semi-colon", + "output": [ + [ + "Character", + "\u2213" + ] + ] + }, + { + "input": "&Mopf", + "description": "Bad named entity: Mopf without a semi-colon", + "output": [ + [ + "Character", + "&Mopf" + ] + ] + }, + { + "input": "𝕄", + "description": "Named entity: Mopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd44" + ] + ] + }, + { + "input": "&Mscr", + "description": "Bad named entity: Mscr without a semi-colon", + "output": [ + [ + "Character", + "&Mscr" + ] + ] + }, + { + "input": "ℳ", + "description": "Named entity: Mscr; with a semi-colon", + "output": [ + [ + "Character", + "\u2133" + ] + ] + }, + { + "input": "&Mu", + "description": "Bad named entity: Mu without a semi-colon", + "output": [ + [ + "Character", + "&Mu" + ] + ] + }, + { + "input": "Μ", + "description": "Named entity: Mu; with a semi-colon", + "output": [ + [ + "Character", + "\u039c" + ] + ] + }, + { + "input": "&NJcy", + "description": "Bad named entity: NJcy without a semi-colon", + "output": [ + [ + "Character", + "&NJcy" + ] + ] + }, + { + "input": "Њ", + "description": "Named entity: NJcy; with a semi-colon", + "output": [ + [ + "Character", + "\u040a" + ] + ] + }, + { + "input": "&Nacute", + "description": "Bad named entity: Nacute without a semi-colon", + "output": [ + [ + "Character", + "&Nacute" + ] + ] + }, + { + "input": "Ń", + "description": "Named entity: Nacute; with a semi-colon", + "output": [ + [ + "Character", + "\u0143" + ] + ] + }, + { + "input": "&Ncaron", + "description": "Bad named entity: Ncaron without a semi-colon", + "output": [ + [ + "Character", + "&Ncaron" + ] + ] + }, + { + "input": "Ň", + "description": "Named entity: Ncaron; with a semi-colon", + "output": [ + [ + "Character", + "\u0147" + ] + ] + }, + { + "input": "&Ncedil", + "description": "Bad named entity: Ncedil without a semi-colon", + "output": [ + [ + "Character", + "&Ncedil" + ] + ] + }, + { + "input": "Ņ", + "description": "Named entity: Ncedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0145" + ] + ] + }, + { + "input": "&Ncy", + "description": "Bad named entity: Ncy without a semi-colon", + "output": [ + [ + "Character", + "&Ncy" + ] + ] + }, + { + "input": "Н", + "description": "Named entity: Ncy; with a semi-colon", + "output": [ + [ + "Character", + "\u041d" + ] + ] + }, + { + "input": "&NegativeMediumSpace", + "description": "Bad named entity: NegativeMediumSpace without a semi-colon", + "output": [ + [ + "Character", + "&NegativeMediumSpace" + ] + ] + }, + { + "input": "​", + "description": "Named entity: NegativeMediumSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u200b" + ] + ] + }, + { + "input": "&NegativeThickSpace", + "description": "Bad named entity: NegativeThickSpace without a semi-colon", + "output": [ + [ + "Character", + "&NegativeThickSpace" + ] + ] + }, + { + "input": "​", + "description": "Named entity: NegativeThickSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u200b" + ] + ] + }, + { + "input": "&NegativeThinSpace", + "description": "Bad named entity: NegativeThinSpace without a semi-colon", + "output": [ + [ + "Character", + "&NegativeThinSpace" + ] + ] + }, + { + "input": "​", + "description": "Named entity: NegativeThinSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u200b" + ] + ] + }, + { + "input": "&NegativeVeryThinSpace", + "description": "Bad named entity: NegativeVeryThinSpace without a semi-colon", + "output": [ + [ + "Character", + "&NegativeVeryThinSpace" + ] + ] + }, + { + "input": "​", + "description": "Named entity: NegativeVeryThinSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u200b" + ] + ] + }, + { + "input": "&NestedGreaterGreater", + "description": "Bad named entity: NestedGreaterGreater without a semi-colon", + "output": [ + [ + "Character", + "&NestedGreaterGreater" + ] + ] + }, + { + "input": "≫", + "description": "Named entity: NestedGreaterGreater; with a semi-colon", + "output": [ + [ + "Character", + "\u226b" + ] + ] + }, + { + "input": "&NestedLessLess", + "description": "Bad named entity: NestedLessLess without a semi-colon", + "output": [ + [ + "Character", + "&NestedLessLess" + ] + ] + }, + { + "input": "≪", + "description": "Named entity: NestedLessLess; with a semi-colon", + "output": [ + [ + "Character", + "\u226a" + ] + ] + }, + { + "input": "&NewLine", + "description": "Bad named entity: NewLine without a semi-colon", + "output": [ + [ + "Character", + "&NewLine" + ] + ] + }, + { + "input": "
", + "description": "Named entity: NewLine; with a semi-colon", + "output": [ + [ + "Character", + "\n" + ] + ] + }, + { + "input": "&Nfr", + "description": "Bad named entity: Nfr without a semi-colon", + "output": [ + [ + "Character", + "&Nfr" + ] + ] + }, + { + "input": "𝔑", + "description": "Named entity: Nfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd11" + ] + ] + }, + { + "input": "&NoBreak", + "description": "Bad named entity: NoBreak without a semi-colon", + "output": [ + [ + "Character", + "&NoBreak" + ] + ] + }, + { + "input": "⁠", + "description": "Named entity: NoBreak; with a semi-colon", + "output": [ + [ + "Character", + "\u2060" + ] + ] + }, + { + "input": "&NonBreakingSpace", + "description": "Bad named entity: NonBreakingSpace without a semi-colon", + "output": [ + [ + "Character", + "&NonBreakingSpace" + ] + ] + }, + { + "input": " ", + "description": "Named entity: NonBreakingSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u00a0" + ] + ] + }, + { + "input": "&Nopf", + "description": "Bad named entity: Nopf without a semi-colon", + "output": [ + [ + "Character", + "&Nopf" + ] + ] + }, + { + "input": "ℕ", + "description": "Named entity: Nopf; with a semi-colon", + "output": [ + [ + "Character", + "\u2115" + ] + ] + }, + { + "input": "&Not", + "description": "Bad named entity: Not without a semi-colon", + "output": [ + [ + "Character", + "&Not" + ] + ] + }, + { + "input": "⫬", + "description": "Named entity: Not; with a semi-colon", + "output": [ + [ + "Character", + "\u2aec" + ] + ] + }, + { + "input": "&NotCongruent", + "description": "Bad named entity: NotCongruent without a semi-colon", + "output": [ + [ + "Character", + "&NotCongruent" + ] + ] + }, + { + "input": "≢", + "description": "Named entity: NotCongruent; with a semi-colon", + "output": [ + [ + "Character", + "\u2262" + ] + ] + }, + { + "input": "&NotCupCap", + "description": "Bad named entity: NotCupCap without a semi-colon", + "output": [ + [ + "Character", + "&NotCupCap" + ] + ] + }, + { + "input": "≭", + "description": "Named entity: NotCupCap; with a semi-colon", + "output": [ + [ + "Character", + "\u226d" + ] + ] + }, + { + "input": "&NotDoubleVerticalBar", + "description": "Bad named entity: NotDoubleVerticalBar without a semi-colon", + "output": [ + [ + "Character", + "&NotDoubleVerticalBar" + ] + ] + }, + { + "input": "∦", + "description": "Named entity: NotDoubleVerticalBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2226" + ] + ] + }, + { + "input": "&NotElement", + "description": "Bad named entity: NotElement without a semi-colon", + "output": [ + [ + "Character", + "&NotElement" + ] + ] + }, + { + "input": "∉", + "description": "Named entity: NotElement; with a semi-colon", + "output": [ + [ + "Character", + "\u2209" + ] + ] + }, + { + "input": "&NotEqual", + "description": "Bad named entity: NotEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotEqual" + ] + ] + }, + { + "input": "≠", + "description": "Named entity: NotEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2260" + ] + ] + }, + { + "input": "&NotEqualTilde", + "description": "Bad named entity: NotEqualTilde without a semi-colon", + "output": [ + [ + "Character", + "&NotEqualTilde" + ] + ] + }, + { + "input": "≂̸", + "description": "Named entity: NotEqualTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2242\u0338" + ] + ] + }, + { + "input": "&NotExists", + "description": "Bad named entity: NotExists without a semi-colon", + "output": [ + [ + "Character", + "&NotExists" + ] + ] + }, + { + "input": "∄", + "description": "Named entity: NotExists; with a semi-colon", + "output": [ + [ + "Character", + "\u2204" + ] + ] + }, + { + "input": "&NotGreater", + "description": "Bad named entity: NotGreater without a semi-colon", + "output": [ + [ + "Character", + "&NotGreater" + ] + ] + }, + { + "input": "≯", + "description": "Named entity: NotGreater; with a semi-colon", + "output": [ + [ + "Character", + "\u226f" + ] + ] + }, + { + "input": "&NotGreaterEqual", + "description": "Bad named entity: NotGreaterEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotGreaterEqual" + ] + ] + }, + { + "input": "≱", + "description": "Named entity: NotGreaterEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2271" + ] + ] + }, + { + "input": "&NotGreaterFullEqual", + "description": "Bad named entity: NotGreaterFullEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotGreaterFullEqual" + ] + ] + }, + { + "input": "≧̸", + "description": "Named entity: NotGreaterFullEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2267\u0338" + ] + ] + }, + { + "input": "&NotGreaterGreater", + "description": "Bad named entity: NotGreaterGreater without a semi-colon", + "output": [ + [ + "Character", + "&NotGreaterGreater" + ] + ] + }, + { + "input": "≫̸", + "description": "Named entity: NotGreaterGreater; with a semi-colon", + "output": [ + [ + "Character", + "\u226b\u0338" + ] + ] + }, + { + "input": "&NotGreaterLess", + "description": "Bad named entity: NotGreaterLess without a semi-colon", + "output": [ + [ + "Character", + "&NotGreaterLess" + ] + ] + }, + { + "input": "≹", + "description": "Named entity: NotGreaterLess; with a semi-colon", + "output": [ + [ + "Character", + "\u2279" + ] + ] + }, + { + "input": "&NotGreaterSlantEqual", + "description": "Bad named entity: NotGreaterSlantEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotGreaterSlantEqual" + ] + ] + }, + { + "input": "⩾̸", + "description": "Named entity: NotGreaterSlantEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7e\u0338" + ] + ] + }, + { + "input": "&NotGreaterTilde", + "description": "Bad named entity: NotGreaterTilde without a semi-colon", + "output": [ + [ + "Character", + "&NotGreaterTilde" + ] + ] + }, + { + "input": "≵", + "description": "Named entity: NotGreaterTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2275" + ] + ] + }, + { + "input": "&NotHumpDownHump", + "description": "Bad named entity: NotHumpDownHump without a semi-colon", + "output": [ + [ + "Character", + "&NotHumpDownHump" + ] + ] + }, + { + "input": "≎̸", + "description": "Named entity: NotHumpDownHump; with a semi-colon", + "output": [ + [ + "Character", + "\u224e\u0338" + ] + ] + }, + { + "input": "&NotHumpEqual", + "description": "Bad named entity: NotHumpEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotHumpEqual" + ] + ] + }, + { + "input": "≏̸", + "description": "Named entity: NotHumpEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u224f\u0338" + ] + ] + }, + { + "input": "&NotLeftTriangle", + "description": "Bad named entity: NotLeftTriangle without a semi-colon", + "output": [ + [ + "Character", + "&NotLeftTriangle" + ] + ] + }, + { + "input": "⋪", + "description": "Named entity: NotLeftTriangle; with a semi-colon", + "output": [ + [ + "Character", + "\u22ea" + ] + ] + }, + { + "input": "&NotLeftTriangleBar", + "description": "Bad named entity: NotLeftTriangleBar without a semi-colon", + "output": [ + [ + "Character", + "&NotLeftTriangleBar" + ] + ] + }, + { + "input": "⧏̸", + "description": "Named entity: NotLeftTriangleBar; with a semi-colon", + "output": [ + [ + "Character", + "\u29cf\u0338" + ] + ] + }, + { + "input": "&NotLeftTriangleEqual", + "description": "Bad named entity: NotLeftTriangleEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotLeftTriangleEqual" + ] + ] + }, + { + "input": "⋬", + "description": "Named entity: NotLeftTriangleEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u22ec" + ] + ] + }, + { + "input": "&NotLess", + "description": "Bad named entity: NotLess without a semi-colon", + "output": [ + [ + "Character", + "&NotLess" + ] + ] + }, + { + "input": "≮", + "description": "Named entity: NotLess; with a semi-colon", + "output": [ + [ + "Character", + "\u226e" + ] + ] + }, + { + "input": "&NotLessEqual", + "description": "Bad named entity: NotLessEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotLessEqual" + ] + ] + }, + { + "input": "≰", + "description": "Named entity: NotLessEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2270" + ] + ] + }, + { + "input": "&NotLessGreater", + "description": "Bad named entity: NotLessGreater without a semi-colon", + "output": [ + [ + "Character", + "&NotLessGreater" + ] + ] + }, + { + "input": "≸", + "description": "Named entity: NotLessGreater; with a semi-colon", + "output": [ + [ + "Character", + "\u2278" + ] + ] + }, + { + "input": "&NotLessLess", + "description": "Bad named entity: NotLessLess without a semi-colon", + "output": [ + [ + "Character", + "&NotLessLess" + ] + ] + }, + { + "input": "≪̸", + "description": "Named entity: NotLessLess; with a semi-colon", + "output": [ + [ + "Character", + "\u226a\u0338" + ] + ] + }, + { + "input": "&NotLessSlantEqual", + "description": "Bad named entity: NotLessSlantEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotLessSlantEqual" + ] + ] + }, + { + "input": "⩽̸", + "description": "Named entity: NotLessSlantEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7d\u0338" + ] + ] + }, + { + "input": "&NotLessTilde", + "description": "Bad named entity: NotLessTilde without a semi-colon", + "output": [ + [ + "Character", + "&NotLessTilde" + ] + ] + }, + { + "input": "≴", + "description": "Named entity: NotLessTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2274" + ] + ] + }, + { + "input": "&NotNestedGreaterGreater", + "description": "Bad named entity: NotNestedGreaterGreater without a semi-colon", + "output": [ + [ + "Character", + "&NotNestedGreaterGreater" + ] + ] + }, + { + "input": "⪢̸", + "description": "Named entity: NotNestedGreaterGreater; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa2\u0338" + ] + ] + }, + { + "input": "&NotNestedLessLess", + "description": "Bad named entity: NotNestedLessLess without a semi-colon", + "output": [ + [ + "Character", + "&NotNestedLessLess" + ] + ] + }, + { + "input": "⪡̸", + "description": "Named entity: NotNestedLessLess; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa1\u0338" + ] + ] + }, + { + "input": "&NotPrecedes", + "description": "Bad named entity: NotPrecedes without a semi-colon", + "output": [ + [ + "Character", + "&NotPrecedes" + ] + ] + }, + { + "input": "⊀", + "description": "Named entity: NotPrecedes; with a semi-colon", + "output": [ + [ + "Character", + "\u2280" + ] + ] + }, + { + "input": "&NotPrecedesEqual", + "description": "Bad named entity: NotPrecedesEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotPrecedesEqual" + ] + ] + }, + { + "input": "⪯̸", + "description": "Named entity: NotPrecedesEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2aaf\u0338" + ] + ] + }, + { + "input": "&NotPrecedesSlantEqual", + "description": "Bad named entity: NotPrecedesSlantEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotPrecedesSlantEqual" + ] + ] + }, + { + "input": "⋠", + "description": "Named entity: NotPrecedesSlantEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u22e0" + ] + ] + }, + { + "input": "&NotReverseElement", + "description": "Bad named entity: NotReverseElement without a semi-colon", + "output": [ + [ + "Character", + "&NotReverseElement" + ] + ] + }, + { + "input": "∌", + "description": "Named entity: NotReverseElement; with a semi-colon", + "output": [ + [ + "Character", + "\u220c" + ] + ] + }, + { + "input": "&NotRightTriangle", + "description": "Bad named entity: NotRightTriangle without a semi-colon", + "output": [ + [ + "Character", + "&NotRightTriangle" + ] + ] + }, + { + "input": "⋫", + "description": "Named entity: NotRightTriangle; with a semi-colon", + "output": [ + [ + "Character", + "\u22eb" + ] + ] + }, + { + "input": "&NotRightTriangleBar", + "description": "Bad named entity: NotRightTriangleBar without a semi-colon", + "output": [ + [ + "Character", + "&NotRightTriangleBar" + ] + ] + }, + { + "input": "⧐̸", + "description": "Named entity: NotRightTriangleBar; with a semi-colon", + "output": [ + [ + "Character", + "\u29d0\u0338" + ] + ] + }, + { + "input": "&NotRightTriangleEqual", + "description": "Bad named entity: NotRightTriangleEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotRightTriangleEqual" + ] + ] + }, + { + "input": "⋭", + "description": "Named entity: NotRightTriangleEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u22ed" + ] + ] + }, + { + "input": "&NotSquareSubset", + "description": "Bad named entity: NotSquareSubset without a semi-colon", + "output": [ + [ + "Character", + "&NotSquareSubset" + ] + ] + }, + { + "input": "⊏̸", + "description": "Named entity: NotSquareSubset; with a semi-colon", + "output": [ + [ + "Character", + "\u228f\u0338" + ] + ] + }, + { + "input": "&NotSquareSubsetEqual", + "description": "Bad named entity: NotSquareSubsetEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotSquareSubsetEqual" + ] + ] + }, + { + "input": "⋢", + "description": "Named entity: NotSquareSubsetEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u22e2" + ] + ] + }, + { + "input": "&NotSquareSuperset", + "description": "Bad named entity: NotSquareSuperset without a semi-colon", + "output": [ + [ + "Character", + "&NotSquareSuperset" + ] + ] + }, + { + "input": "⊐̸", + "description": "Named entity: NotSquareSuperset; with a semi-colon", + "output": [ + [ + "Character", + "\u2290\u0338" + ] + ] + }, + { + "input": "&NotSquareSupersetEqual", + "description": "Bad named entity: NotSquareSupersetEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotSquareSupersetEqual" + ] + ] + }, + { + "input": "⋣", + "description": "Named entity: NotSquareSupersetEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u22e3" + ] + ] + }, + { + "input": "&NotSubset", + "description": "Bad named entity: NotSubset without a semi-colon", + "output": [ + [ + "Character", + "&NotSubset" + ] + ] + }, + { + "input": "⊂⃒", + "description": "Named entity: NotSubset; with a semi-colon", + "output": [ + [ + "Character", + "\u2282\u20d2" + ] + ] + }, + { + "input": "&NotSubsetEqual", + "description": "Bad named entity: NotSubsetEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotSubsetEqual" + ] + ] + }, + { + "input": "⊈", + "description": "Named entity: NotSubsetEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2288" + ] + ] + }, + { + "input": "&NotSucceeds", + "description": "Bad named entity: NotSucceeds without a semi-colon", + "output": [ + [ + "Character", + "&NotSucceeds" + ] + ] + }, + { + "input": "⊁", + "description": "Named entity: NotSucceeds; with a semi-colon", + "output": [ + [ + "Character", + "\u2281" + ] + ] + }, + { + "input": "&NotSucceedsEqual", + "description": "Bad named entity: NotSucceedsEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotSucceedsEqual" + ] + ] + }, + { + "input": "⪰̸", + "description": "Named entity: NotSucceedsEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab0\u0338" + ] + ] + }, + { + "input": "&NotSucceedsSlantEqual", + "description": "Bad named entity: NotSucceedsSlantEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotSucceedsSlantEqual" + ] + ] + }, + { + "input": "⋡", + "description": "Named entity: NotSucceedsSlantEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u22e1" + ] + ] + }, + { + "input": "&NotSucceedsTilde", + "description": "Bad named entity: NotSucceedsTilde without a semi-colon", + "output": [ + [ + "Character", + "&NotSucceedsTilde" + ] + ] + }, + { + "input": "≿̸", + "description": "Named entity: NotSucceedsTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u227f\u0338" + ] + ] + }, + { + "input": "&NotSuperset", + "description": "Bad named entity: NotSuperset without a semi-colon", + "output": [ + [ + "Character", + "&NotSuperset" + ] + ] + }, + { + "input": "⊃⃒", + "description": "Named entity: NotSuperset; with a semi-colon", + "output": [ + [ + "Character", + "\u2283\u20d2" + ] + ] + }, + { + "input": "&NotSupersetEqual", + "description": "Bad named entity: NotSupersetEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotSupersetEqual" + ] + ] + }, + { + "input": "⊉", + "description": "Named entity: NotSupersetEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2289" + ] + ] + }, + { + "input": "&NotTilde", + "description": "Bad named entity: NotTilde without a semi-colon", + "output": [ + [ + "Character", + "&NotTilde" + ] + ] + }, + { + "input": "≁", + "description": "Named entity: NotTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2241" + ] + ] + }, + { + "input": "&NotTildeEqual", + "description": "Bad named entity: NotTildeEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotTildeEqual" + ] + ] + }, + { + "input": "≄", + "description": "Named entity: NotTildeEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2244" + ] + ] + }, + { + "input": "&NotTildeFullEqual", + "description": "Bad named entity: NotTildeFullEqual without a semi-colon", + "output": [ + [ + "Character", + "&NotTildeFullEqual" + ] + ] + }, + { + "input": "≇", + "description": "Named entity: NotTildeFullEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2247" + ] + ] + }, + { + "input": "&NotTildeTilde", + "description": "Bad named entity: NotTildeTilde without a semi-colon", + "output": [ + [ + "Character", + "&NotTildeTilde" + ] + ] + }, + { + "input": "≉", + "description": "Named entity: NotTildeTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2249" + ] + ] + }, + { + "input": "&NotVerticalBar", + "description": "Bad named entity: NotVerticalBar without a semi-colon", + "output": [ + [ + "Character", + "&NotVerticalBar" + ] + ] + }, + { + "input": "∤", + "description": "Named entity: NotVerticalBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2224" + ] + ] + }, + { + "input": "&Nscr", + "description": "Bad named entity: Nscr without a semi-colon", + "output": [ + [ + "Character", + "&Nscr" + ] + ] + }, + { + "input": "𝒩", + "description": "Named entity: Nscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udca9" + ] + ] + }, + { + "input": "Ñ", + "description": "Named entity: Ntilde without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d1" + ] + ] + }, + { + "input": "Ñ", + "description": "Named entity: Ntilde; with a semi-colon", + "output": [ + [ + "Character", + "\u00d1" + ] + ] + }, + { + "input": "&Nu", + "description": "Bad named entity: Nu without a semi-colon", + "output": [ + [ + "Character", + "&Nu" + ] + ] + }, + { + "input": "Ν", + "description": "Named entity: Nu; with a semi-colon", + "output": [ + [ + "Character", + "\u039d" + ] + ] + }, + { + "input": "&OElig", + "description": "Bad named entity: OElig without a semi-colon", + "output": [ + [ + "Character", + "&OElig" + ] + ] + }, + { + "input": "Œ", + "description": "Named entity: OElig; with a semi-colon", + "output": [ + [ + "Character", + "\u0152" + ] + ] + }, + { + "input": "Ó", + "description": "Named entity: Oacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d3" + ] + ] + }, + { + "input": "Ó", + "description": "Named entity: Oacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00d3" + ] + ] + }, + { + "input": "Ô", + "description": "Named entity: Ocirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d4" + ] + ] + }, + { + "input": "Ô", + "description": "Named entity: Ocirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00d4" + ] + ] + }, + { + "input": "&Ocy", + "description": "Bad named entity: Ocy without a semi-colon", + "output": [ + [ + "Character", + "&Ocy" + ] + ] + }, + { + "input": "О", + "description": "Named entity: Ocy; with a semi-colon", + "output": [ + [ + "Character", + "\u041e" + ] + ] + }, + { + "input": "&Odblac", + "description": "Bad named entity: Odblac without a semi-colon", + "output": [ + [ + "Character", + "&Odblac" + ] + ] + }, + { + "input": "Ő", + "description": "Named entity: Odblac; with a semi-colon", + "output": [ + [ + "Character", + "\u0150" + ] + ] + }, + { + "input": "&Ofr", + "description": "Bad named entity: Ofr without a semi-colon", + "output": [ + [ + "Character", + "&Ofr" + ] + ] + }, + { + "input": "𝔒", + "description": "Named entity: Ofr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd12" + ] + ] + }, + { + "input": "Ò", + "description": "Named entity: Ograve without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d2" + ] + ] + }, + { + "input": "Ò", + "description": "Named entity: Ograve; with a semi-colon", + "output": [ + [ + "Character", + "\u00d2" + ] + ] + }, + { + "input": "&Omacr", + "description": "Bad named entity: Omacr without a semi-colon", + "output": [ + [ + "Character", + "&Omacr" + ] + ] + }, + { + "input": "Ō", + "description": "Named entity: Omacr; with a semi-colon", + "output": [ + [ + "Character", + "\u014c" + ] + ] + }, + { + "input": "&Omega", + "description": "Bad named entity: Omega without a semi-colon", + "output": [ + [ + "Character", + "&Omega" + ] + ] + }, + { + "input": "Ω", + "description": "Named entity: Omega; with a semi-colon", + "output": [ + [ + "Character", + "\u03a9" + ] + ] + }, + { + "input": "&Omicron", + "description": "Bad named entity: Omicron without a semi-colon", + "output": [ + [ + "Character", + "&Omicron" + ] + ] + }, + { + "input": "Ο", + "description": "Named entity: Omicron; with a semi-colon", + "output": [ + [ + "Character", + "\u039f" + ] + ] + }, + { + "input": "&Oopf", + "description": "Bad named entity: Oopf without a semi-colon", + "output": [ + [ + "Character", + "&Oopf" + ] + ] + }, + { + "input": "𝕆", + "description": "Named entity: Oopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd46" + ] + ] + }, + { + "input": "&OpenCurlyDoubleQuote", + "description": "Bad named entity: OpenCurlyDoubleQuote without a semi-colon", + "output": [ + [ + "Character", + "&OpenCurlyDoubleQuote" + ] + ] + }, + { + "input": "“", + "description": "Named entity: OpenCurlyDoubleQuote; with a semi-colon", + "output": [ + [ + "Character", + "\u201c" + ] + ] + }, + { + "input": "&OpenCurlyQuote", + "description": "Bad named entity: OpenCurlyQuote without a semi-colon", + "output": [ + [ + "Character", + "&OpenCurlyQuote" + ] + ] + }, + { + "input": "‘", + "description": "Named entity: OpenCurlyQuote; with a semi-colon", + "output": [ + [ + "Character", + "\u2018" + ] + ] + }, + { + "input": "&Or", + "description": "Bad named entity: Or without a semi-colon", + "output": [ + [ + "Character", + "&Or" + ] + ] + }, + { + "input": "⩔", + "description": "Named entity: Or; with a semi-colon", + "output": [ + [ + "Character", + "\u2a54" + ] + ] + }, + { + "input": "&Oscr", + "description": "Bad named entity: Oscr without a semi-colon", + "output": [ + [ + "Character", + "&Oscr" + ] + ] + }, + { + "input": "𝒪", + "description": "Named entity: Oscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcaa" + ] + ] + }, + { + "input": "Ø", + "description": "Named entity: Oslash without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d8" + ] + ] + }, + { + "input": "Ø", + "description": "Named entity: Oslash; with a semi-colon", + "output": [ + [ + "Character", + "\u00d8" + ] + ] + }, + { + "input": "Õ", + "description": "Named entity: Otilde without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d5" + ] + ] + }, + { + "input": "Õ", + "description": "Named entity: Otilde; with a semi-colon", + "output": [ + [ + "Character", + "\u00d5" + ] + ] + }, + { + "input": "&Otimes", + "description": "Bad named entity: Otimes without a semi-colon", + "output": [ + [ + "Character", + "&Otimes" + ] + ] + }, + { + "input": "⨷", + "description": "Named entity: Otimes; with a semi-colon", + "output": [ + [ + "Character", + "\u2a37" + ] + ] + }, + { + "input": "Ö", + "description": "Named entity: Ouml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d6" + ] + ] + }, + { + "input": "Ö", + "description": "Named entity: Ouml; with a semi-colon", + "output": [ + [ + "Character", + "\u00d6" + ] + ] + }, + { + "input": "&OverBar", + "description": "Bad named entity: OverBar without a semi-colon", + "output": [ + [ + "Character", + "&OverBar" + ] + ] + }, + { + "input": "‾", + "description": "Named entity: OverBar; with a semi-colon", + "output": [ + [ + "Character", + "\u203e" + ] + ] + }, + { + "input": "&OverBrace", + "description": "Bad named entity: OverBrace without a semi-colon", + "output": [ + [ + "Character", + "&OverBrace" + ] + ] + }, + { + "input": "⏞", + "description": "Named entity: OverBrace; with a semi-colon", + "output": [ + [ + "Character", + "\u23de" + ] + ] + }, + { + "input": "&OverBracket", + "description": "Bad named entity: OverBracket without a semi-colon", + "output": [ + [ + "Character", + "&OverBracket" + ] + ] + }, + { + "input": "⎴", + "description": "Named entity: OverBracket; with a semi-colon", + "output": [ + [ + "Character", + "\u23b4" + ] + ] + }, + { + "input": "&OverParenthesis", + "description": "Bad named entity: OverParenthesis without a semi-colon", + "output": [ + [ + "Character", + "&OverParenthesis" + ] + ] + }, + { + "input": "⏜", + "description": "Named entity: OverParenthesis; with a semi-colon", + "output": [ + [ + "Character", + "\u23dc" + ] + ] + }, + { + "input": "&PartialD", + "description": "Bad named entity: PartialD without a semi-colon", + "output": [ + [ + "Character", + "&PartialD" + ] + ] + }, + { + "input": "∂", + "description": "Named entity: PartialD; with a semi-colon", + "output": [ + [ + "Character", + "\u2202" + ] + ] + }, + { + "input": "&Pcy", + "description": "Bad named entity: Pcy without a semi-colon", + "output": [ + [ + "Character", + "&Pcy" + ] + ] + }, + { + "input": "П", + "description": "Named entity: Pcy; with a semi-colon", + "output": [ + [ + "Character", + "\u041f" + ] + ] + }, + { + "input": "&Pfr", + "description": "Bad named entity: Pfr without a semi-colon", + "output": [ + [ + "Character", + "&Pfr" + ] + ] + }, + { + "input": "𝔓", + "description": "Named entity: Pfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd13" + ] + ] + }, + { + "input": "&Phi", + "description": "Bad named entity: Phi without a semi-colon", + "output": [ + [ + "Character", + "&Phi" + ] + ] + }, + { + "input": "Φ", + "description": "Named entity: Phi; with a semi-colon", + "output": [ + [ + "Character", + "\u03a6" + ] + ] + }, + { + "input": "&Pi", + "description": "Bad named entity: Pi without a semi-colon", + "output": [ + [ + "Character", + "&Pi" + ] + ] + }, + { + "input": "Π", + "description": "Named entity: Pi; with a semi-colon", + "output": [ + [ + "Character", + "\u03a0" + ] + ] + }, + { + "input": "&PlusMinus", + "description": "Bad named entity: PlusMinus without a semi-colon", + "output": [ + [ + "Character", + "&PlusMinus" + ] + ] + }, + { + "input": "±", + "description": "Named entity: PlusMinus; with a semi-colon", + "output": [ + [ + "Character", + "\u00b1" + ] + ] + }, + { + "input": "&Poincareplane", + "description": "Bad named entity: Poincareplane without a semi-colon", + "output": [ + [ + "Character", + "&Poincareplane" + ] + ] + }, + { + "input": "ℌ", + "description": "Named entity: Poincareplane; with a semi-colon", + "output": [ + [ + "Character", + "\u210c" + ] + ] + }, + { + "input": "&Popf", + "description": "Bad named entity: Popf without a semi-colon", + "output": [ + [ + "Character", + "&Popf" + ] + ] + }, + { + "input": "ℙ", + "description": "Named entity: Popf; with a semi-colon", + "output": [ + [ + "Character", + "\u2119" + ] + ] + }, + { + "input": "&Pr", + "description": "Bad named entity: Pr without a semi-colon", + "output": [ + [ + "Character", + "&Pr" + ] + ] + }, + { + "input": "⪻", + "description": "Named entity: Pr; with a semi-colon", + "output": [ + [ + "Character", + "\u2abb" + ] + ] + }, + { + "input": "&Precedes", + "description": "Bad named entity: Precedes without a semi-colon", + "output": [ + [ + "Character", + "&Precedes" + ] + ] + }, + { + "input": "≺", + "description": "Named entity: Precedes; with a semi-colon", + "output": [ + [ + "Character", + "\u227a" + ] + ] + }, + { + "input": "&PrecedesEqual", + "description": "Bad named entity: PrecedesEqual without a semi-colon", + "output": [ + [ + "Character", + "&PrecedesEqual" + ] + ] + }, + { + "input": "⪯", + "description": "Named entity: PrecedesEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2aaf" + ] + ] + }, + { + "input": "&PrecedesSlantEqual", + "description": "Bad named entity: PrecedesSlantEqual without a semi-colon", + "output": [ + [ + "Character", + "&PrecedesSlantEqual" + ] + ] + }, + { + "input": "≼", + "description": "Named entity: PrecedesSlantEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u227c" + ] + ] + }, + { + "input": "&PrecedesTilde", + "description": "Bad named entity: PrecedesTilde without a semi-colon", + "output": [ + [ + "Character", + "&PrecedesTilde" + ] + ] + }, + { + "input": "≾", + "description": "Named entity: PrecedesTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u227e" + ] + ] + }, + { + "input": "&Prime", + "description": "Bad named entity: Prime without a semi-colon", + "output": [ + [ + "Character", + "&Prime" + ] + ] + }, + { + "input": "″", + "description": "Named entity: Prime; with a semi-colon", + "output": [ + [ + "Character", + "\u2033" + ] + ] + }, + { + "input": "&Product", + "description": "Bad named entity: Product without a semi-colon", + "output": [ + [ + "Character", + "&Product" + ] + ] + }, + { + "input": "∏", + "description": "Named entity: Product; with a semi-colon", + "output": [ + [ + "Character", + "\u220f" + ] + ] + }, + { + "input": "&Proportion", + "description": "Bad named entity: Proportion without a semi-colon", + "output": [ + [ + "Character", + "&Proportion" + ] + ] + }, + { + "input": "∷", + "description": "Named entity: Proportion; with a semi-colon", + "output": [ + [ + "Character", + "\u2237" + ] + ] + }, + { + "input": "&Proportional", + "description": "Bad named entity: Proportional without a semi-colon", + "output": [ + [ + "Character", + "&Proportional" + ] + ] + }, + { + "input": "∝", + "description": "Named entity: Proportional; with a semi-colon", + "output": [ + [ + "Character", + "\u221d" + ] + ] + }, + { + "input": "&Pscr", + "description": "Bad named entity: Pscr without a semi-colon", + "output": [ + [ + "Character", + "&Pscr" + ] + ] + }, + { + "input": "𝒫", + "description": "Named entity: Pscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcab" + ] + ] + }, + { + "input": "&Psi", + "description": "Bad named entity: Psi without a semi-colon", + "output": [ + [ + "Character", + "&Psi" + ] + ] + }, + { + "input": "Ψ", + "description": "Named entity: Psi; with a semi-colon", + "output": [ + [ + "Character", + "\u03a8" + ] + ] + }, + { + "input": """, + "description": "Named entity: QUOT without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\"" + ] + ] + }, + { + "input": """, + "description": "Named entity: QUOT; with a semi-colon", + "output": [ + [ + "Character", + "\"" + ] + ] + }, + { + "input": "&Qfr", + "description": "Bad named entity: Qfr without a semi-colon", + "output": [ + [ + "Character", + "&Qfr" + ] + ] + }, + { + "input": "𝔔", + "description": "Named entity: Qfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd14" + ] + ] + }, + { + "input": "&Qopf", + "description": "Bad named entity: Qopf without a semi-colon", + "output": [ + [ + "Character", + "&Qopf" + ] + ] + }, + { + "input": "ℚ", + "description": "Named entity: Qopf; with a semi-colon", + "output": [ + [ + "Character", + "\u211a" + ] + ] + }, + { + "input": "&Qscr", + "description": "Bad named entity: Qscr without a semi-colon", + "output": [ + [ + "Character", + "&Qscr" + ] + ] + }, + { + "input": "𝒬", + "description": "Named entity: Qscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcac" + ] + ] + }, + { + "input": "&RBarr", + "description": "Bad named entity: RBarr without a semi-colon", + "output": [ + [ + "Character", + "&RBarr" + ] + ] + }, + { + "input": "⤐", + "description": "Named entity: RBarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2910" + ] + ] + }, + { + "input": "®", + "description": "Named entity: REG without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ae" + ] + ] + }, + { + "input": "®", + "description": "Named entity: REG; with a semi-colon", + "output": [ + [ + "Character", + "\u00ae" + ] + ] + }, + { + "input": "&Racute", + "description": "Bad named entity: Racute without a semi-colon", + "output": [ + [ + "Character", + "&Racute" + ] + ] + }, + { + "input": "Ŕ", + "description": "Named entity: Racute; with a semi-colon", + "output": [ + [ + "Character", + "\u0154" + ] + ] + }, + { + "input": "&Rang", + "description": "Bad named entity: Rang without a semi-colon", + "output": [ + [ + "Character", + "&Rang" + ] + ] + }, + { + "input": "⟫", + "description": "Named entity: Rang; with a semi-colon", + "output": [ + [ + "Character", + "\u27eb" + ] + ] + }, + { + "input": "&Rarr", + "description": "Bad named entity: Rarr without a semi-colon", + "output": [ + [ + "Character", + "&Rarr" + ] + ] + }, + { + "input": "↠", + "description": "Named entity: Rarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21a0" + ] + ] + }, + { + "input": "&Rarrtl", + "description": "Bad named entity: Rarrtl without a semi-colon", + "output": [ + [ + "Character", + "&Rarrtl" + ] + ] + }, + { + "input": "⤖", + "description": "Named entity: Rarrtl; with a semi-colon", + "output": [ + [ + "Character", + "\u2916" + ] + ] + }, + { + "input": "&Rcaron", + "description": "Bad named entity: Rcaron without a semi-colon", + "output": [ + [ + "Character", + "&Rcaron" + ] + ] + }, + { + "input": "Ř", + "description": "Named entity: Rcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u0158" + ] + ] + }, + { + "input": "&Rcedil", + "description": "Bad named entity: Rcedil without a semi-colon", + "output": [ + [ + "Character", + "&Rcedil" + ] + ] + }, + { + "input": "Ŗ", + "description": "Named entity: Rcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0156" + ] + ] + }, + { + "input": "&Rcy", + "description": "Bad named entity: Rcy without a semi-colon", + "output": [ + [ + "Character", + "&Rcy" + ] + ] + }, + { + "input": "Р", + "description": "Named entity: Rcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0420" + ] + ] + }, + { + "input": "&Re", + "description": "Bad named entity: Re without a semi-colon", + "output": [ + [ + "Character", + "&Re" + ] + ] + }, + { + "input": "ℜ", + "description": "Named entity: Re; with a semi-colon", + "output": [ + [ + "Character", + "\u211c" + ] + ] + }, + { + "input": "&ReverseElement", + "description": "Bad named entity: ReverseElement without a semi-colon", + "output": [ + [ + "Character", + "&ReverseElement" + ] + ] + }, + { + "input": "∋", + "description": "Named entity: ReverseElement; with a semi-colon", + "output": [ + [ + "Character", + "\u220b" + ] + ] + }, + { + "input": "&ReverseEquilibrium", + "description": "Bad named entity: ReverseEquilibrium without a semi-colon", + "output": [ + [ + "Character", + "&ReverseEquilibrium" + ] + ] + }, + { + "input": "⇋", + "description": "Named entity: ReverseEquilibrium; with a semi-colon", + "output": [ + [ + "Character", + "\u21cb" + ] + ] + }, + { + "input": "&ReverseUpEquilibrium", + "description": "Bad named entity: ReverseUpEquilibrium without a semi-colon", + "output": [ + [ + "Character", + "&ReverseUpEquilibrium" + ] + ] + }, + { + "input": "⥯", + "description": "Named entity: ReverseUpEquilibrium; with a semi-colon", + "output": [ + [ + "Character", + "\u296f" + ] + ] + }, + { + "input": "&Rfr", + "description": "Bad named entity: Rfr without a semi-colon", + "output": [ + [ + "Character", + "&Rfr" + ] + ] + }, + { + "input": "ℜ", + "description": "Named entity: Rfr; with a semi-colon", + "output": [ + [ + "Character", + "\u211c" + ] + ] + }, + { + "input": "&Rho", + "description": "Bad named entity: Rho without a semi-colon", + "output": [ + [ + "Character", + "&Rho" + ] + ] + }, + { + "input": "Ρ", + "description": "Named entity: Rho; with a semi-colon", + "output": [ + [ + "Character", + "\u03a1" + ] + ] + }, + { + "input": "&RightAngleBracket", + "description": "Bad named entity: RightAngleBracket without a semi-colon", + "output": [ + [ + "Character", + "&RightAngleBracket" + ] + ] + }, + { + "input": "⟩", + "description": "Named entity: RightAngleBracket; with a semi-colon", + "output": [ + [ + "Character", + "\u27e9" + ] + ] + }, + { + "input": "&RightArrow", + "description": "Bad named entity: RightArrow without a semi-colon", + "output": [ + [ + "Character", + "&RightArrow" + ] + ] + }, + { + "input": "→", + "description": "Named entity: RightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2192" + ] + ] + }, + { + "input": "&RightArrowBar", + "description": "Bad named entity: RightArrowBar without a semi-colon", + "output": [ + [ + "Character", + "&RightArrowBar" + ] + ] + }, + { + "input": "⇥", + "description": "Named entity: RightArrowBar; with a semi-colon", + "output": [ + [ + "Character", + "\u21e5" + ] + ] + }, + { + "input": "&RightArrowLeftArrow", + "description": "Bad named entity: RightArrowLeftArrow without a semi-colon", + "output": [ + [ + "Character", + "&RightArrowLeftArrow" + ] + ] + }, + { + "input": "⇄", + "description": "Named entity: RightArrowLeftArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21c4" + ] + ] + }, + { + "input": "&RightCeiling", + "description": "Bad named entity: RightCeiling without a semi-colon", + "output": [ + [ + "Character", + "&RightCeiling" + ] + ] + }, + { + "input": "⌉", + "description": "Named entity: RightCeiling; with a semi-colon", + "output": [ + [ + "Character", + "\u2309" + ] + ] + }, + { + "input": "&RightDoubleBracket", + "description": "Bad named entity: RightDoubleBracket without a semi-colon", + "output": [ + [ + "Character", + "&RightDoubleBracket" + ] + ] + }, + { + "input": "⟧", + "description": "Named entity: RightDoubleBracket; with a semi-colon", + "output": [ + [ + "Character", + "\u27e7" + ] + ] + }, + { + "input": "&RightDownTeeVector", + "description": "Bad named entity: RightDownTeeVector without a semi-colon", + "output": [ + [ + "Character", + "&RightDownTeeVector" + ] + ] + }, + { + "input": "⥝", + "description": "Named entity: RightDownTeeVector; with a semi-colon", + "output": [ + [ + "Character", + "\u295d" + ] + ] + }, + { + "input": "&RightDownVector", + "description": "Bad named entity: RightDownVector without a semi-colon", + "output": [ + [ + "Character", + "&RightDownVector" + ] + ] + }, + { + "input": "⇂", + "description": "Named entity: RightDownVector; with a semi-colon", + "output": [ + [ + "Character", + "\u21c2" + ] + ] + }, + { + "input": "&RightDownVectorBar", + "description": "Bad named entity: RightDownVectorBar without a semi-colon", + "output": [ + [ + "Character", + "&RightDownVectorBar" + ] + ] + }, + { + "input": "⥕", + "description": "Named entity: RightDownVectorBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2955" + ] + ] + }, + { + "input": "&RightFloor", + "description": "Bad named entity: RightFloor without a semi-colon", + "output": [ + [ + "Character", + "&RightFloor" + ] + ] + }, + { + "input": "⌋", + "description": "Named entity: RightFloor; with a semi-colon", + "output": [ + [ + "Character", + "\u230b" + ] + ] + }, + { + "input": "&RightTee", + "description": "Bad named entity: RightTee without a semi-colon", + "output": [ + [ + "Character", + "&RightTee" + ] + ] + }, + { + "input": "⊢", + "description": "Named entity: RightTee; with a semi-colon", + "output": [ + [ + "Character", + "\u22a2" + ] + ] + }, + { + "input": "&RightTeeArrow", + "description": "Bad named entity: RightTeeArrow without a semi-colon", + "output": [ + [ + "Character", + "&RightTeeArrow" + ] + ] + }, + { + "input": "↦", + "description": "Named entity: RightTeeArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21a6" + ] + ] + }, + { + "input": "&RightTeeVector", + "description": "Bad named entity: RightTeeVector without a semi-colon", + "output": [ + [ + "Character", + "&RightTeeVector" + ] + ] + }, + { + "input": "⥛", + "description": "Named entity: RightTeeVector; with a semi-colon", + "output": [ + [ + "Character", + "\u295b" + ] + ] + }, + { + "input": "&RightTriangle", + "description": "Bad named entity: RightTriangle without a semi-colon", + "output": [ + [ + "Character", + "&RightTriangle" + ] + ] + }, + { + "input": "⊳", + "description": "Named entity: RightTriangle; with a semi-colon", + "output": [ + [ + "Character", + "\u22b3" + ] + ] + }, + { + "input": "&RightTriangleBar", + "description": "Bad named entity: RightTriangleBar without a semi-colon", + "output": [ + [ + "Character", + "&RightTriangleBar" + ] + ] + }, + { + "input": "⧐", + "description": "Named entity: RightTriangleBar; with a semi-colon", + "output": [ + [ + "Character", + "\u29d0" + ] + ] + }, + { + "input": "&RightTriangleEqual", + "description": "Bad named entity: RightTriangleEqual without a semi-colon", + "output": [ + [ + "Character", + "&RightTriangleEqual" + ] + ] + }, + { + "input": "⊵", + "description": "Named entity: RightTriangleEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u22b5" + ] + ] + }, + { + "input": "&RightUpDownVector", + "description": "Bad named entity: RightUpDownVector without a semi-colon", + "output": [ + [ + "Character", + "&RightUpDownVector" + ] + ] + }, + { + "input": "⥏", + "description": "Named entity: RightUpDownVector; with a semi-colon", + "output": [ + [ + "Character", + "\u294f" + ] + ] + }, + { + "input": "&RightUpTeeVector", + "description": "Bad named entity: RightUpTeeVector without a semi-colon", + "output": [ + [ + "Character", + "&RightUpTeeVector" + ] + ] + }, + { + "input": "⥜", + "description": "Named entity: RightUpTeeVector; with a semi-colon", + "output": [ + [ + "Character", + "\u295c" + ] + ] + }, + { + "input": "&RightUpVector", + "description": "Bad named entity: RightUpVector without a semi-colon", + "output": [ + [ + "Character", + "&RightUpVector" + ] + ] + }, + { + "input": "↾", + "description": "Named entity: RightUpVector; with a semi-colon", + "output": [ + [ + "Character", + "\u21be" + ] + ] + }, + { + "input": "&RightUpVectorBar", + "description": "Bad named entity: RightUpVectorBar without a semi-colon", + "output": [ + [ + "Character", + "&RightUpVectorBar" + ] + ] + }, + { + "input": "⥔", + "description": "Named entity: RightUpVectorBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2954" + ] + ] + }, + { + "input": "&RightVector", + "description": "Bad named entity: RightVector without a semi-colon", + "output": [ + [ + "Character", + "&RightVector" + ] + ] + }, + { + "input": "⇀", + "description": "Named entity: RightVector; with a semi-colon", + "output": [ + [ + "Character", + "\u21c0" + ] + ] + }, + { + "input": "&RightVectorBar", + "description": "Bad named entity: RightVectorBar without a semi-colon", + "output": [ + [ + "Character", + "&RightVectorBar" + ] + ] + }, + { + "input": "⥓", + "description": "Named entity: RightVectorBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2953" + ] + ] + }, + { + "input": "&Rightarrow", + "description": "Bad named entity: Rightarrow without a semi-colon", + "output": [ + [ + "Character", + "&Rightarrow" + ] + ] + }, + { + "input": "⇒", + "description": "Named entity: Rightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d2" + ] + ] + }, + { + "input": "&Ropf", + "description": "Bad named entity: Ropf without a semi-colon", + "output": [ + [ + "Character", + "&Ropf" + ] + ] + }, + { + "input": "ℝ", + "description": "Named entity: Ropf; with a semi-colon", + "output": [ + [ + "Character", + "\u211d" + ] + ] + }, + { + "input": "&RoundImplies", + "description": "Bad named entity: RoundImplies without a semi-colon", + "output": [ + [ + "Character", + "&RoundImplies" + ] + ] + }, + { + "input": "⥰", + "description": "Named entity: RoundImplies; with a semi-colon", + "output": [ + [ + "Character", + "\u2970" + ] + ] + }, + { + "input": "&Rrightarrow", + "description": "Bad named entity: Rrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&Rrightarrow" + ] + ] + }, + { + "input": "⇛", + "description": "Named entity: Rrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21db" + ] + ] + }, + { + "input": "&Rscr", + "description": "Bad named entity: Rscr without a semi-colon", + "output": [ + [ + "Character", + "&Rscr" + ] + ] + }, + { + "input": "ℛ", + "description": "Named entity: Rscr; with a semi-colon", + "output": [ + [ + "Character", + "\u211b" + ] + ] + }, + { + "input": "&Rsh", + "description": "Bad named entity: Rsh without a semi-colon", + "output": [ + [ + "Character", + "&Rsh" + ] + ] + }, + { + "input": "↱", + "description": "Named entity: Rsh; with a semi-colon", + "output": [ + [ + "Character", + "\u21b1" + ] + ] + }, + { + "input": "&RuleDelayed", + "description": "Bad named entity: RuleDelayed without a semi-colon", + "output": [ + [ + "Character", + "&RuleDelayed" + ] + ] + }, + { + "input": "⧴", + "description": "Named entity: RuleDelayed; with a semi-colon", + "output": [ + [ + "Character", + "\u29f4" + ] + ] + }, + { + "input": "&SHCHcy", + "description": "Bad named entity: SHCHcy without a semi-colon", + "output": [ + [ + "Character", + "&SHCHcy" + ] + ] + }, + { + "input": "Щ", + "description": "Named entity: SHCHcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0429" + ] + ] + }, + { + "input": "&SHcy", + "description": "Bad named entity: SHcy without a semi-colon", + "output": [ + [ + "Character", + "&SHcy" + ] + ] + }, + { + "input": "Ш", + "description": "Named entity: SHcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0428" + ] + ] + }, + { + "input": "&SOFTcy", + "description": "Bad named entity: SOFTcy without a semi-colon", + "output": [ + [ + "Character", + "&SOFTcy" + ] + ] + }, + { + "input": "Ь", + "description": "Named entity: SOFTcy; with a semi-colon", + "output": [ + [ + "Character", + "\u042c" + ] + ] + }, + { + "input": "&Sacute", + "description": "Bad named entity: Sacute without a semi-colon", + "output": [ + [ + "Character", + "&Sacute" + ] + ] + }, + { + "input": "Ś", + "description": "Named entity: Sacute; with a semi-colon", + "output": [ + [ + "Character", + "\u015a" + ] + ] + }, + { + "input": "&Sc", + "description": "Bad named entity: Sc without a semi-colon", + "output": [ + [ + "Character", + "&Sc" + ] + ] + }, + { + "input": "⪼", + "description": "Named entity: Sc; with a semi-colon", + "output": [ + [ + "Character", + "\u2abc" + ] + ] + }, + { + "input": "&Scaron", + "description": "Bad named entity: Scaron without a semi-colon", + "output": [ + [ + "Character", + "&Scaron" + ] + ] + }, + { + "input": "Š", + "description": "Named entity: Scaron; with a semi-colon", + "output": [ + [ + "Character", + "\u0160" + ] + ] + }, + { + "input": "&Scedil", + "description": "Bad named entity: Scedil without a semi-colon", + "output": [ + [ + "Character", + "&Scedil" + ] + ] + }, + { + "input": "Ş", + "description": "Named entity: Scedil; with a semi-colon", + "output": [ + [ + "Character", + "\u015e" + ] + ] + }, + { + "input": "&Scirc", + "description": "Bad named entity: Scirc without a semi-colon", + "output": [ + [ + "Character", + "&Scirc" + ] + ] + }, + { + "input": "Ŝ", + "description": "Named entity: Scirc; with a semi-colon", + "output": [ + [ + "Character", + "\u015c" + ] + ] + }, + { + "input": "&Scy", + "description": "Bad named entity: Scy without a semi-colon", + "output": [ + [ + "Character", + "&Scy" + ] + ] + }, + { + "input": "С", + "description": "Named entity: Scy; with a semi-colon", + "output": [ + [ + "Character", + "\u0421" + ] + ] + }, + { + "input": "&Sfr", + "description": "Bad named entity: Sfr without a semi-colon", + "output": [ + [ + "Character", + "&Sfr" + ] + ] + }, + { + "input": "𝔖", + "description": "Named entity: Sfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd16" + ] + ] + }, + { + "input": "&ShortDownArrow", + "description": "Bad named entity: ShortDownArrow without a semi-colon", + "output": [ + [ + "Character", + "&ShortDownArrow" + ] + ] + }, + { + "input": "↓", + "description": "Named entity: ShortDownArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2193" + ] + ] + }, + { + "input": "&ShortLeftArrow", + "description": "Bad named entity: ShortLeftArrow without a semi-colon", + "output": [ + [ + "Character", + "&ShortLeftArrow" + ] + ] + }, + { + "input": "←", + "description": "Named entity: ShortLeftArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2190" + ] + ] + }, + { + "input": "&ShortRightArrow", + "description": "Bad named entity: ShortRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&ShortRightArrow" + ] + ] + }, + { + "input": "→", + "description": "Named entity: ShortRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2192" + ] + ] + }, + { + "input": "&ShortUpArrow", + "description": "Bad named entity: ShortUpArrow without a semi-colon", + "output": [ + [ + "Character", + "&ShortUpArrow" + ] + ] + }, + { + "input": "↑", + "description": "Named entity: ShortUpArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2191" + ] + ] + }, + { + "input": "&Sigma", + "description": "Bad named entity: Sigma without a semi-colon", + "output": [ + [ + "Character", + "&Sigma" + ] + ] + }, + { + "input": "Σ", + "description": "Named entity: Sigma; with a semi-colon", + "output": [ + [ + "Character", + "\u03a3" + ] + ] + }, + { + "input": "&SmallCircle", + "description": "Bad named entity: SmallCircle without a semi-colon", + "output": [ + [ + "Character", + "&SmallCircle" + ] + ] + }, + { + "input": "∘", + "description": "Named entity: SmallCircle; with a semi-colon", + "output": [ + [ + "Character", + "\u2218" + ] + ] + }, + { + "input": "&Sopf", + "description": "Bad named entity: Sopf without a semi-colon", + "output": [ + [ + "Character", + "&Sopf" + ] + ] + }, + { + "input": "𝕊", + "description": "Named entity: Sopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd4a" + ] + ] + }, + { + "input": "&Sqrt", + "description": "Bad named entity: Sqrt without a semi-colon", + "output": [ + [ + "Character", + "&Sqrt" + ] + ] + }, + { + "input": "√", + "description": "Named entity: Sqrt; with a semi-colon", + "output": [ + [ + "Character", + "\u221a" + ] + ] + }, + { + "input": "&Square", + "description": "Bad named entity: Square without a semi-colon", + "output": [ + [ + "Character", + "&Square" + ] + ] + }, + { + "input": "□", + "description": "Named entity: Square; with a semi-colon", + "output": [ + [ + "Character", + "\u25a1" + ] + ] + }, + { + "input": "&SquareIntersection", + "description": "Bad named entity: SquareIntersection without a semi-colon", + "output": [ + [ + "Character", + "&SquareIntersection" + ] + ] + }, + { + "input": "⊓", + "description": "Named entity: SquareIntersection; with a semi-colon", + "output": [ + [ + "Character", + "\u2293" + ] + ] + }, + { + "input": "&SquareSubset", + "description": "Bad named entity: SquareSubset without a semi-colon", + "output": [ + [ + "Character", + "&SquareSubset" + ] + ] + }, + { + "input": "⊏", + "description": "Named entity: SquareSubset; with a semi-colon", + "output": [ + [ + "Character", + "\u228f" + ] + ] + }, + { + "input": "&SquareSubsetEqual", + "description": "Bad named entity: SquareSubsetEqual without a semi-colon", + "output": [ + [ + "Character", + "&SquareSubsetEqual" + ] + ] + }, + { + "input": "⊑", + "description": "Named entity: SquareSubsetEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2291" + ] + ] + }, + { + "input": "&SquareSuperset", + "description": "Bad named entity: SquareSuperset without a semi-colon", + "output": [ + [ + "Character", + "&SquareSuperset" + ] + ] + }, + { + "input": "⊐", + "description": "Named entity: SquareSuperset; with a semi-colon", + "output": [ + [ + "Character", + "\u2290" + ] + ] + }, + { + "input": "&SquareSupersetEqual", + "description": "Bad named entity: SquareSupersetEqual without a semi-colon", + "output": [ + [ + "Character", + "&SquareSupersetEqual" + ] + ] + }, + { + "input": "⊒", + "description": "Named entity: SquareSupersetEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2292" + ] + ] + }, + { + "input": "&SquareUnion", + "description": "Bad named entity: SquareUnion without a semi-colon", + "output": [ + [ + "Character", + "&SquareUnion" + ] + ] + }, + { + "input": "⊔", + "description": "Named entity: SquareUnion; with a semi-colon", + "output": [ + [ + "Character", + "\u2294" + ] + ] + }, + { + "input": "&Sscr", + "description": "Bad named entity: Sscr without a semi-colon", + "output": [ + [ + "Character", + "&Sscr" + ] + ] + }, + { + "input": "𝒮", + "description": "Named entity: Sscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcae" + ] + ] + }, + { + "input": "&Star", + "description": "Bad named entity: Star without a semi-colon", + "output": [ + [ + "Character", + "&Star" + ] + ] + }, + { + "input": "⋆", + "description": "Named entity: Star; with a semi-colon", + "output": [ + [ + "Character", + "\u22c6" + ] + ] + }, + { + "input": "&Sub", + "description": "Bad named entity: Sub without a semi-colon", + "output": [ + [ + "Character", + "&Sub" + ] + ] + }, + { + "input": "⋐", + "description": "Named entity: Sub; with a semi-colon", + "output": [ + [ + "Character", + "\u22d0" + ] + ] + }, + { + "input": "&Subset", + "description": "Bad named entity: Subset without a semi-colon", + "output": [ + [ + "Character", + "&Subset" + ] + ] + }, + { + "input": "⋐", + "description": "Named entity: Subset; with a semi-colon", + "output": [ + [ + "Character", + "\u22d0" + ] + ] + }, + { + "input": "&SubsetEqual", + "description": "Bad named entity: SubsetEqual without a semi-colon", + "output": [ + [ + "Character", + "&SubsetEqual" + ] + ] + }, + { + "input": "⊆", + "description": "Named entity: SubsetEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2286" + ] + ] + }, + { + "input": "&Succeeds", + "description": "Bad named entity: Succeeds without a semi-colon", + "output": [ + [ + "Character", + "&Succeeds" + ] + ] + }, + { + "input": "≻", + "description": "Named entity: Succeeds; with a semi-colon", + "output": [ + [ + "Character", + "\u227b" + ] + ] + }, + { + "input": "&SucceedsEqual", + "description": "Bad named entity: SucceedsEqual without a semi-colon", + "output": [ + [ + "Character", + "&SucceedsEqual" + ] + ] + }, + { + "input": "⪰", + "description": "Named entity: SucceedsEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab0" + ] + ] + }, + { + "input": "&SucceedsSlantEqual", + "description": "Bad named entity: SucceedsSlantEqual without a semi-colon", + "output": [ + [ + "Character", + "&SucceedsSlantEqual" + ] + ] + }, + { + "input": "≽", + "description": "Named entity: SucceedsSlantEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u227d" + ] + ] + }, + { + "input": "&SucceedsTilde", + "description": "Bad named entity: SucceedsTilde without a semi-colon", + "output": [ + [ + "Character", + "&SucceedsTilde" + ] + ] + }, + { + "input": "≿", + "description": "Named entity: SucceedsTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u227f" + ] + ] + }, + { + "input": "&SuchThat", + "description": "Bad named entity: SuchThat without a semi-colon", + "output": [ + [ + "Character", + "&SuchThat" + ] + ] + }, + { + "input": "∋", + "description": "Named entity: SuchThat; with a semi-colon", + "output": [ + [ + "Character", + "\u220b" + ] + ] + }, + { + "input": "&Sum", + "description": "Bad named entity: Sum without a semi-colon", + "output": [ + [ + "Character", + "&Sum" + ] + ] + }, + { + "input": "∑", + "description": "Named entity: Sum; with a semi-colon", + "output": [ + [ + "Character", + "\u2211" + ] + ] + }, + { + "input": "&Sup", + "description": "Bad named entity: Sup without a semi-colon", + "output": [ + [ + "Character", + "&Sup" + ] + ] + }, + { + "input": "⋑", + "description": "Named entity: Sup; with a semi-colon", + "output": [ + [ + "Character", + "\u22d1" + ] + ] + }, + { + "input": "&Superset", + "description": "Bad named entity: Superset without a semi-colon", + "output": [ + [ + "Character", + "&Superset" + ] + ] + }, + { + "input": "⊃", + "description": "Named entity: Superset; with a semi-colon", + "output": [ + [ + "Character", + "\u2283" + ] + ] + }, + { + "input": "&SupersetEqual", + "description": "Bad named entity: SupersetEqual without a semi-colon", + "output": [ + [ + "Character", + "&SupersetEqual" + ] + ] + }, + { + "input": "⊇", + "description": "Named entity: SupersetEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2287" + ] + ] + }, + { + "input": "&Supset", + "description": "Bad named entity: Supset without a semi-colon", + "output": [ + [ + "Character", + "&Supset" + ] + ] + }, + { + "input": "⋑", + "description": "Named entity: Supset; with a semi-colon", + "output": [ + [ + "Character", + "\u22d1" + ] + ] + }, + { + "input": "Þ", + "description": "Named entity: THORN without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00de" + ] + ] + }, + { + "input": "Þ", + "description": "Named entity: THORN; with a semi-colon", + "output": [ + [ + "Character", + "\u00de" + ] + ] + }, + { + "input": "&TRADE", + "description": "Bad named entity: TRADE without a semi-colon", + "output": [ + [ + "Character", + "&TRADE" + ] + ] + }, + { + "input": "™", + "description": "Named entity: TRADE; with a semi-colon", + "output": [ + [ + "Character", + "\u2122" + ] + ] + }, + { + "input": "&TSHcy", + "description": "Bad named entity: TSHcy without a semi-colon", + "output": [ + [ + "Character", + "&TSHcy" + ] + ] + }, + { + "input": "Ћ", + "description": "Named entity: TSHcy; with a semi-colon", + "output": [ + [ + "Character", + "\u040b" + ] + ] + }, + { + "input": "&TScy", + "description": "Bad named entity: TScy without a semi-colon", + "output": [ + [ + "Character", + "&TScy" + ] + ] + }, + { + "input": "Ц", + "description": "Named entity: TScy; with a semi-colon", + "output": [ + [ + "Character", + "\u0426" + ] + ] + }, + { + "input": "&Tab", + "description": "Bad named entity: Tab without a semi-colon", + "output": [ + [ + "Character", + "&Tab" + ] + ] + }, + { + "input": "	", + "description": "Named entity: Tab; with a semi-colon", + "output": [ + [ + "Character", + "\t" + ] + ] + }, + { + "input": "&Tau", + "description": "Bad named entity: Tau without a semi-colon", + "output": [ + [ + "Character", + "&Tau" + ] + ] + }, + { + "input": "Τ", + "description": "Named entity: Tau; with a semi-colon", + "output": [ + [ + "Character", + "\u03a4" + ] + ] + }, + { + "input": "&Tcaron", + "description": "Bad named entity: Tcaron without a semi-colon", + "output": [ + [ + "Character", + "&Tcaron" + ] + ] + }, + { + "input": "Ť", + "description": "Named entity: Tcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u0164" + ] + ] + }, + { + "input": "&Tcedil", + "description": "Bad named entity: Tcedil without a semi-colon", + "output": [ + [ + "Character", + "&Tcedil" + ] + ] + }, + { + "input": "Ţ", + "description": "Named entity: Tcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0162" + ] + ] + }, + { + "input": "&Tcy", + "description": "Bad named entity: Tcy without a semi-colon", + "output": [ + [ + "Character", + "&Tcy" + ] + ] + }, + { + "input": "Т", + "description": "Named entity: Tcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0422" + ] + ] + }, + { + "input": "&Tfr", + "description": "Bad named entity: Tfr without a semi-colon", + "output": [ + [ + "Character", + "&Tfr" + ] + ] + }, + { + "input": "𝔗", + "description": "Named entity: Tfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd17" + ] + ] + }, + { + "input": "&Therefore", + "description": "Bad named entity: Therefore without a semi-colon", + "output": [ + [ + "Character", + "&Therefore" + ] + ] + }, + { + "input": "∴", + "description": "Named entity: Therefore; with a semi-colon", + "output": [ + [ + "Character", + "\u2234" + ] + ] + }, + { + "input": "&Theta", + "description": "Bad named entity: Theta without a semi-colon", + "output": [ + [ + "Character", + "&Theta" + ] + ] + }, + { + "input": "Θ", + "description": "Named entity: Theta; with a semi-colon", + "output": [ + [ + "Character", + "\u0398" + ] + ] + }, + { + "input": "&ThickSpace", + "description": "Bad named entity: ThickSpace without a semi-colon", + "output": [ + [ + "Character", + "&ThickSpace" + ] + ] + }, + { + "input": "  ", + "description": "Named entity: ThickSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u205f\u200a" + ] + ] + }, + { + "input": "&ThinSpace", + "description": "Bad named entity: ThinSpace without a semi-colon", + "output": [ + [ + "Character", + "&ThinSpace" + ] + ] + }, + { + "input": " ", + "description": "Named entity: ThinSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u2009" + ] + ] + }, + { + "input": "&Tilde", + "description": "Bad named entity: Tilde without a semi-colon", + "output": [ + [ + "Character", + "&Tilde" + ] + ] + }, + { + "input": "∼", + "description": "Named entity: Tilde; with a semi-colon", + "output": [ + [ + "Character", + "\u223c" + ] + ] + }, + { + "input": "&TildeEqual", + "description": "Bad named entity: TildeEqual without a semi-colon", + "output": [ + [ + "Character", + "&TildeEqual" + ] + ] + }, + { + "input": "≃", + "description": "Named entity: TildeEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2243" + ] + ] + }, + { + "input": "&TildeFullEqual", + "description": "Bad named entity: TildeFullEqual without a semi-colon", + "output": [ + [ + "Character", + "&TildeFullEqual" + ] + ] + }, + { + "input": "≅", + "description": "Named entity: TildeFullEqual; with a semi-colon", + "output": [ + [ + "Character", + "\u2245" + ] + ] + }, + { + "input": "&TildeTilde", + "description": "Bad named entity: TildeTilde without a semi-colon", + "output": [ + [ + "Character", + "&TildeTilde" + ] + ] + }, + { + "input": "≈", + "description": "Named entity: TildeTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2248" + ] + ] + }, + { + "input": "&Topf", + "description": "Bad named entity: Topf without a semi-colon", + "output": [ + [ + "Character", + "&Topf" + ] + ] + }, + { + "input": "𝕋", + "description": "Named entity: Topf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd4b" + ] + ] + }, + { + "input": "&TripleDot", + "description": "Bad named entity: TripleDot without a semi-colon", + "output": [ + [ + "Character", + "&TripleDot" + ] + ] + }, + { + "input": "⃛", + "description": "Named entity: TripleDot; with a semi-colon", + "output": [ + [ + "Character", + "\u20db" + ] + ] + }, + { + "input": "&Tscr", + "description": "Bad named entity: Tscr without a semi-colon", + "output": [ + [ + "Character", + "&Tscr" + ] + ] + }, + { + "input": "𝒯", + "description": "Named entity: Tscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcaf" + ] + ] + }, + { + "input": "&Tstrok", + "description": "Bad named entity: Tstrok without a semi-colon", + "output": [ + [ + "Character", + "&Tstrok" + ] + ] + }, + { + "input": "Ŧ", + "description": "Named entity: Tstrok; with a semi-colon", + "output": [ + [ + "Character", + "\u0166" + ] + ] + }, + { + "input": "Ú", + "description": "Named entity: Uacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00da" + ] + ] + }, + { + "input": "Ú", + "description": "Named entity: Uacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00da" + ] + ] + }, + { + "input": "&Uarr", + "description": "Bad named entity: Uarr without a semi-colon", + "output": [ + [ + "Character", + "&Uarr" + ] + ] + }, + { + "input": "↟", + "description": "Named entity: Uarr; with a semi-colon", + "output": [ + [ + "Character", + "\u219f" + ] + ] + }, + { + "input": "&Uarrocir", + "description": "Bad named entity: Uarrocir without a semi-colon", + "output": [ + [ + "Character", + "&Uarrocir" + ] + ] + }, + { + "input": "⥉", + "description": "Named entity: Uarrocir; with a semi-colon", + "output": [ + [ + "Character", + "\u2949" + ] + ] + }, + { + "input": "&Ubrcy", + "description": "Bad named entity: Ubrcy without a semi-colon", + "output": [ + [ + "Character", + "&Ubrcy" + ] + ] + }, + { + "input": "Ў", + "description": "Named entity: Ubrcy; with a semi-colon", + "output": [ + [ + "Character", + "\u040e" + ] + ] + }, + { + "input": "&Ubreve", + "description": "Bad named entity: Ubreve without a semi-colon", + "output": [ + [ + "Character", + "&Ubreve" + ] + ] + }, + { + "input": "Ŭ", + "description": "Named entity: Ubreve; with a semi-colon", + "output": [ + [ + "Character", + "\u016c" + ] + ] + }, + { + "input": "Û", + "description": "Named entity: Ucirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00db" + ] + ] + }, + { + "input": "Û", + "description": "Named entity: Ucirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00db" + ] + ] + }, + { + "input": "&Ucy", + "description": "Bad named entity: Ucy without a semi-colon", + "output": [ + [ + "Character", + "&Ucy" + ] + ] + }, + { + "input": "У", + "description": "Named entity: Ucy; with a semi-colon", + "output": [ + [ + "Character", + "\u0423" + ] + ] + }, + { + "input": "&Udblac", + "description": "Bad named entity: Udblac without a semi-colon", + "output": [ + [ + "Character", + "&Udblac" + ] + ] + }, + { + "input": "Ű", + "description": "Named entity: Udblac; with a semi-colon", + "output": [ + [ + "Character", + "\u0170" + ] + ] + }, + { + "input": "&Ufr", + "description": "Bad named entity: Ufr without a semi-colon", + "output": [ + [ + "Character", + "&Ufr" + ] + ] + }, + { + "input": "𝔘", + "description": "Named entity: Ufr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd18" + ] + ] + }, + { + "input": "Ù", + "description": "Named entity: Ugrave without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d9" + ] + ] + }, + { + "input": "Ù", + "description": "Named entity: Ugrave; with a semi-colon", + "output": [ + [ + "Character", + "\u00d9" + ] + ] + }, + { + "input": "&Umacr", + "description": "Bad named entity: Umacr without a semi-colon", + "output": [ + [ + "Character", + "&Umacr" + ] + ] + }, + { + "input": "Ū", + "description": "Named entity: Umacr; with a semi-colon", + "output": [ + [ + "Character", + "\u016a" + ] + ] + }, + { + "input": "&UnderBar", + "description": "Bad named entity: UnderBar without a semi-colon", + "output": [ + [ + "Character", + "&UnderBar" + ] + ] + }, + { + "input": "_", + "description": "Named entity: UnderBar; with a semi-colon", + "output": [ + [ + "Character", + "_" + ] + ] + }, + { + "input": "&UnderBrace", + "description": "Bad named entity: UnderBrace without a semi-colon", + "output": [ + [ + "Character", + "&UnderBrace" + ] + ] + }, + { + "input": "⏟", + "description": "Named entity: UnderBrace; with a semi-colon", + "output": [ + [ + "Character", + "\u23df" + ] + ] + }, + { + "input": "&UnderBracket", + "description": "Bad named entity: UnderBracket without a semi-colon", + "output": [ + [ + "Character", + "&UnderBracket" + ] + ] + }, + { + "input": "⎵", + "description": "Named entity: UnderBracket; with a semi-colon", + "output": [ + [ + "Character", + "\u23b5" + ] + ] + }, + { + "input": "&UnderParenthesis", + "description": "Bad named entity: UnderParenthesis without a semi-colon", + "output": [ + [ + "Character", + "&UnderParenthesis" + ] + ] + }, + { + "input": "⏝", + "description": "Named entity: UnderParenthesis; with a semi-colon", + "output": [ + [ + "Character", + "\u23dd" + ] + ] + }, + { + "input": "&Union", + "description": "Bad named entity: Union without a semi-colon", + "output": [ + [ + "Character", + "&Union" + ] + ] + }, + { + "input": "⋃", + "description": "Named entity: Union; with a semi-colon", + "output": [ + [ + "Character", + "\u22c3" + ] + ] + }, + { + "input": "&UnionPlus", + "description": "Bad named entity: UnionPlus without a semi-colon", + "output": [ + [ + "Character", + "&UnionPlus" + ] + ] + }, + { + "input": "⊎", + "description": "Named entity: UnionPlus; with a semi-colon", + "output": [ + [ + "Character", + "\u228e" + ] + ] + }, + { + "input": "&Uogon", + "description": "Bad named entity: Uogon without a semi-colon", + "output": [ + [ + "Character", + "&Uogon" + ] + ] + }, + { + "input": "Ų", + "description": "Named entity: Uogon; with a semi-colon", + "output": [ + [ + "Character", + "\u0172" + ] + ] + }, + { + "input": "&Uopf", + "description": "Bad named entity: Uopf without a semi-colon", + "output": [ + [ + "Character", + "&Uopf" + ] + ] + }, + { + "input": "𝕌", + "description": "Named entity: Uopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd4c" + ] + ] + }, + { + "input": "&UpArrow", + "description": "Bad named entity: UpArrow without a semi-colon", + "output": [ + [ + "Character", + "&UpArrow" + ] + ] + }, + { + "input": "↑", + "description": "Named entity: UpArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2191" + ] + ] + }, + { + "input": "&UpArrowBar", + "description": "Bad named entity: UpArrowBar without a semi-colon", + "output": [ + [ + "Character", + "&UpArrowBar" + ] + ] + }, + { + "input": "⤒", + "description": "Named entity: UpArrowBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2912" + ] + ] + }, + { + "input": "&UpArrowDownArrow", + "description": "Bad named entity: UpArrowDownArrow without a semi-colon", + "output": [ + [ + "Character", + "&UpArrowDownArrow" + ] + ] + }, + { + "input": "⇅", + "description": "Named entity: UpArrowDownArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21c5" + ] + ] + }, + { + "input": "&UpDownArrow", + "description": "Bad named entity: UpDownArrow without a semi-colon", + "output": [ + [ + "Character", + "&UpDownArrow" + ] + ] + }, + { + "input": "↕", + "description": "Named entity: UpDownArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2195" + ] + ] + }, + { + "input": "&UpEquilibrium", + "description": "Bad named entity: UpEquilibrium without a semi-colon", + "output": [ + [ + "Character", + "&UpEquilibrium" + ] + ] + }, + { + "input": "⥮", + "description": "Named entity: UpEquilibrium; with a semi-colon", + "output": [ + [ + "Character", + "\u296e" + ] + ] + }, + { + "input": "&UpTee", + "description": "Bad named entity: UpTee without a semi-colon", + "output": [ + [ + "Character", + "&UpTee" + ] + ] + }, + { + "input": "⊥", + "description": "Named entity: UpTee; with a semi-colon", + "output": [ + [ + "Character", + "\u22a5" + ] + ] + }, + { + "input": "&UpTeeArrow", + "description": "Bad named entity: UpTeeArrow without a semi-colon", + "output": [ + [ + "Character", + "&UpTeeArrow" + ] + ] + }, + { + "input": "↥", + "description": "Named entity: UpTeeArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21a5" + ] + ] + }, + { + "input": "&Uparrow", + "description": "Bad named entity: Uparrow without a semi-colon", + "output": [ + [ + "Character", + "&Uparrow" + ] + ] + }, + { + "input": "⇑", + "description": "Named entity: Uparrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d1" + ] + ] + }, + { + "input": "&Updownarrow", + "description": "Bad named entity: Updownarrow without a semi-colon", + "output": [ + [ + "Character", + "&Updownarrow" + ] + ] + }, + { + "input": "⇕", + "description": "Named entity: Updownarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21d5" + ] + ] + }, + { + "input": "&UpperLeftArrow", + "description": "Bad named entity: UpperLeftArrow without a semi-colon", + "output": [ + [ + "Character", + "&UpperLeftArrow" + ] + ] + }, + { + "input": "↖", + "description": "Named entity: UpperLeftArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2196" + ] + ] + }, + { + "input": "&UpperRightArrow", + "description": "Bad named entity: UpperRightArrow without a semi-colon", + "output": [ + [ + "Character", + "&UpperRightArrow" + ] + ] + }, + { + "input": "↗", + "description": "Named entity: UpperRightArrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2197" + ] + ] + }, + { + "input": "&Upsi", + "description": "Bad named entity: Upsi without a semi-colon", + "output": [ + [ + "Character", + "&Upsi" + ] + ] + }, + { + "input": "ϒ", + "description": "Named entity: Upsi; with a semi-colon", + "output": [ + [ + "Character", + "\u03d2" + ] + ] + }, + { + "input": "&Upsilon", + "description": "Bad named entity: Upsilon without a semi-colon", + "output": [ + [ + "Character", + "&Upsilon" + ] + ] + }, + { + "input": "Υ", + "description": "Named entity: Upsilon; with a semi-colon", + "output": [ + [ + "Character", + "\u03a5" + ] + ] + }, + { + "input": "&Uring", + "description": "Bad named entity: Uring without a semi-colon", + "output": [ + [ + "Character", + "&Uring" + ] + ] + }, + { + "input": "Ů", + "description": "Named entity: Uring; with a semi-colon", + "output": [ + [ + "Character", + "\u016e" + ] + ] + }, + { + "input": "&Uscr", + "description": "Bad named entity: Uscr without a semi-colon", + "output": [ + [ + "Character", + "&Uscr" + ] + ] + }, + { + "input": "𝒰", + "description": "Named entity: Uscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb0" + ] + ] + }, + { + "input": "&Utilde", + "description": "Bad named entity: Utilde without a semi-colon", + "output": [ + [ + "Character", + "&Utilde" + ] + ] + }, + { + "input": "Ũ", + "description": "Named entity: Utilde; with a semi-colon", + "output": [ + [ + "Character", + "\u0168" + ] + ] + }, + { + "input": "Ü", + "description": "Named entity: Uuml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00dc" + ] + ] + }, + { + "input": "Ü", + "description": "Named entity: Uuml; with a semi-colon", + "output": [ + [ + "Character", + "\u00dc" + ] + ] + }, + { + "input": "&VDash", + "description": "Bad named entity: VDash without a semi-colon", + "output": [ + [ + "Character", + "&VDash" + ] + ] + }, + { + "input": "⊫", + "description": "Named entity: VDash; with a semi-colon", + "output": [ + [ + "Character", + "\u22ab" + ] + ] + }, + { + "input": "&Vbar", + "description": "Bad named entity: Vbar without a semi-colon", + "output": [ + [ + "Character", + "&Vbar" + ] + ] + }, + { + "input": "⫫", + "description": "Named entity: Vbar; with a semi-colon", + "output": [ + [ + "Character", + "\u2aeb" + ] + ] + }, + { + "input": "&Vcy", + "description": "Bad named entity: Vcy without a semi-colon", + "output": [ + [ + "Character", + "&Vcy" + ] + ] + }, + { + "input": "В", + "description": "Named entity: Vcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0412" + ] + ] + }, + { + "input": "&Vdash", + "description": "Bad named entity: Vdash without a semi-colon", + "output": [ + [ + "Character", + "&Vdash" + ] + ] + }, + { + "input": "⊩", + "description": "Named entity: Vdash; with a semi-colon", + "output": [ + [ + "Character", + "\u22a9" + ] + ] + }, + { + "input": "&Vdashl", + "description": "Bad named entity: Vdashl without a semi-colon", + "output": [ + [ + "Character", + "&Vdashl" + ] + ] + }, + { + "input": "⫦", + "description": "Named entity: Vdashl; with a semi-colon", + "output": [ + [ + "Character", + "\u2ae6" + ] + ] + }, + { + "input": "&Vee", + "description": "Bad named entity: Vee without a semi-colon", + "output": [ + [ + "Character", + "&Vee" + ] + ] + }, + { + "input": "⋁", + "description": "Named entity: Vee; with a semi-colon", + "output": [ + [ + "Character", + "\u22c1" + ] + ] + }, + { + "input": "&Verbar", + "description": "Bad named entity: Verbar without a semi-colon", + "output": [ + [ + "Character", + "&Verbar" + ] + ] + }, + { + "input": "‖", + "description": "Named entity: Verbar; with a semi-colon", + "output": [ + [ + "Character", + "\u2016" + ] + ] + }, + { + "input": "&Vert", + "description": "Bad named entity: Vert without a semi-colon", + "output": [ + [ + "Character", + "&Vert" + ] + ] + }, + { + "input": "‖", + "description": "Named entity: Vert; with a semi-colon", + "output": [ + [ + "Character", + "\u2016" + ] + ] + }, + { + "input": "&VerticalBar", + "description": "Bad named entity: VerticalBar without a semi-colon", + "output": [ + [ + "Character", + "&VerticalBar" + ] + ] + }, + { + "input": "∣", + "description": "Named entity: VerticalBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2223" + ] + ] + }, + { + "input": "&VerticalLine", + "description": "Bad named entity: VerticalLine without a semi-colon", + "output": [ + [ + "Character", + "&VerticalLine" + ] + ] + }, + { + "input": "|", + "description": "Named entity: VerticalLine; with a semi-colon", + "output": [ + [ + "Character", + "|" + ] + ] + }, + { + "input": "&VerticalSeparator", + "description": "Bad named entity: VerticalSeparator without a semi-colon", + "output": [ + [ + "Character", + "&VerticalSeparator" + ] + ] + }, + { + "input": "❘", + "description": "Named entity: VerticalSeparator; with a semi-colon", + "output": [ + [ + "Character", + "\u2758" + ] + ] + }, + { + "input": "&VerticalTilde", + "description": "Bad named entity: VerticalTilde without a semi-colon", + "output": [ + [ + "Character", + "&VerticalTilde" + ] + ] + }, + { + "input": "≀", + "description": "Named entity: VerticalTilde; with a semi-colon", + "output": [ + [ + "Character", + "\u2240" + ] + ] + }, + { + "input": "&VeryThinSpace", + "description": "Bad named entity: VeryThinSpace without a semi-colon", + "output": [ + [ + "Character", + "&VeryThinSpace" + ] + ] + }, + { + "input": " ", + "description": "Named entity: VeryThinSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u200a" + ] + ] + }, + { + "input": "&Vfr", + "description": "Bad named entity: Vfr without a semi-colon", + "output": [ + [ + "Character", + "&Vfr" + ] + ] + }, + { + "input": "𝔙", + "description": "Named entity: Vfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd19" + ] + ] + }, + { + "input": "&Vopf", + "description": "Bad named entity: Vopf without a semi-colon", + "output": [ + [ + "Character", + "&Vopf" + ] + ] + }, + { + "input": "𝕍", + "description": "Named entity: Vopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd4d" + ] + ] + }, + { + "input": "&Vscr", + "description": "Bad named entity: Vscr without a semi-colon", + "output": [ + [ + "Character", + "&Vscr" + ] + ] + }, + { + "input": "𝒱", + "description": "Named entity: Vscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb1" + ] + ] + }, + { + "input": "&Vvdash", + "description": "Bad named entity: Vvdash without a semi-colon", + "output": [ + [ + "Character", + "&Vvdash" + ] + ] + }, + { + "input": "⊪", + "description": "Named entity: Vvdash; with a semi-colon", + "output": [ + [ + "Character", + "\u22aa" + ] + ] + }, + { + "input": "&Wcirc", + "description": "Bad named entity: Wcirc without a semi-colon", + "output": [ + [ + "Character", + "&Wcirc" + ] + ] + }, + { + "input": "Ŵ", + "description": "Named entity: Wcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0174" + ] + ] + }, + { + "input": "&Wedge", + "description": "Bad named entity: Wedge without a semi-colon", + "output": [ + [ + "Character", + "&Wedge" + ] + ] + }, + { + "input": "⋀", + "description": "Named entity: Wedge; with a semi-colon", + "output": [ + [ + "Character", + "\u22c0" + ] + ] + }, + { + "input": "&Wfr", + "description": "Bad named entity: Wfr without a semi-colon", + "output": [ + [ + "Character", + "&Wfr" + ] + ] + }, + { + "input": "𝔚", + "description": "Named entity: Wfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd1a" + ] + ] + }, + { + "input": "&Wopf", + "description": "Bad named entity: Wopf without a semi-colon", + "output": [ + [ + "Character", + "&Wopf" + ] + ] + }, + { + "input": "𝕎", + "description": "Named entity: Wopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd4e" + ] + ] + }, + { + "input": "&Wscr", + "description": "Bad named entity: Wscr without a semi-colon", + "output": [ + [ + "Character", + "&Wscr" + ] + ] + }, + { + "input": "𝒲", + "description": "Named entity: Wscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb2" + ] + ] + }, + { + "input": "&Xfr", + "description": "Bad named entity: Xfr without a semi-colon", + "output": [ + [ + "Character", + "&Xfr" + ] + ] + }, + { + "input": "𝔛", + "description": "Named entity: Xfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd1b" + ] + ] + }, + { + "input": "&Xi", + "description": "Bad named entity: Xi without a semi-colon", + "output": [ + [ + "Character", + "&Xi" + ] + ] + }, + { + "input": "Ξ", + "description": "Named entity: Xi; with a semi-colon", + "output": [ + [ + "Character", + "\u039e" + ] + ] + }, + { + "input": "&Xopf", + "description": "Bad named entity: Xopf without a semi-colon", + "output": [ + [ + "Character", + "&Xopf" + ] + ] + }, + { + "input": "𝕏", + "description": "Named entity: Xopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd4f" + ] + ] + }, + { + "input": "&Xscr", + "description": "Bad named entity: Xscr without a semi-colon", + "output": [ + [ + "Character", + "&Xscr" + ] + ] + }, + { + "input": "𝒳", + "description": "Named entity: Xscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb3" + ] + ] + }, + { + "input": "&YAcy", + "description": "Bad named entity: YAcy without a semi-colon", + "output": [ + [ + "Character", + "&YAcy" + ] + ] + }, + { + "input": "Я", + "description": "Named entity: YAcy; with a semi-colon", + "output": [ + [ + "Character", + "\u042f" + ] + ] + }, + { + "input": "&YIcy", + "description": "Bad named entity: YIcy without a semi-colon", + "output": [ + [ + "Character", + "&YIcy" + ] + ] + }, + { + "input": "Ї", + "description": "Named entity: YIcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0407" + ] + ] + }, + { + "input": "&YUcy", + "description": "Bad named entity: YUcy without a semi-colon", + "output": [ + [ + "Character", + "&YUcy" + ] + ] + }, + { + "input": "Ю", + "description": "Named entity: YUcy; with a semi-colon", + "output": [ + [ + "Character", + "\u042e" + ] + ] + }, + { + "input": "Ý", + "description": "Named entity: Yacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00dd" + ] + ] + }, + { + "input": "Ý", + "description": "Named entity: Yacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00dd" + ] + ] + }, + { + "input": "&Ycirc", + "description": "Bad named entity: Ycirc without a semi-colon", + "output": [ + [ + "Character", + "&Ycirc" + ] + ] + }, + { + "input": "Ŷ", + "description": "Named entity: Ycirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0176" + ] + ] + }, + { + "input": "&Ycy", + "description": "Bad named entity: Ycy without a semi-colon", + "output": [ + [ + "Character", + "&Ycy" + ] + ] + }, + { + "input": "Ы", + "description": "Named entity: Ycy; with a semi-colon", + "output": [ + [ + "Character", + "\u042b" + ] + ] + }, + { + "input": "&Yfr", + "description": "Bad named entity: Yfr without a semi-colon", + "output": [ + [ + "Character", + "&Yfr" + ] + ] + }, + { + "input": "𝔜", + "description": "Named entity: Yfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd1c" + ] + ] + }, + { + "input": "&Yopf", + "description": "Bad named entity: Yopf without a semi-colon", + "output": [ + [ + "Character", + "&Yopf" + ] + ] + }, + { + "input": "𝕐", + "description": "Named entity: Yopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd50" + ] + ] + }, + { + "input": "&Yscr", + "description": "Bad named entity: Yscr without a semi-colon", + "output": [ + [ + "Character", + "&Yscr" + ] + ] + }, + { + "input": "𝒴", + "description": "Named entity: Yscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb4" + ] + ] + }, + { + "input": "&Yuml", + "description": "Bad named entity: Yuml without a semi-colon", + "output": [ + [ + "Character", + "&Yuml" + ] + ] + }, + { + "input": "Ÿ", + "description": "Named entity: Yuml; with a semi-colon", + "output": [ + [ + "Character", + "\u0178" + ] + ] + }, + { + "input": "&ZHcy", + "description": "Bad named entity: ZHcy without a semi-colon", + "output": [ + [ + "Character", + "&ZHcy" + ] + ] + }, + { + "input": "Ж", + "description": "Named entity: ZHcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0416" + ] + ] + }, + { + "input": "&Zacute", + "description": "Bad named entity: Zacute without a semi-colon", + "output": [ + [ + "Character", + "&Zacute" + ] + ] + }, + { + "input": "Ź", + "description": "Named entity: Zacute; with a semi-colon", + "output": [ + [ + "Character", + "\u0179" + ] + ] + }, + { + "input": "&Zcaron", + "description": "Bad named entity: Zcaron without a semi-colon", + "output": [ + [ + "Character", + "&Zcaron" + ] + ] + }, + { + "input": "Ž", + "description": "Named entity: Zcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u017d" + ] + ] + }, + { + "input": "&Zcy", + "description": "Bad named entity: Zcy without a semi-colon", + "output": [ + [ + "Character", + "&Zcy" + ] + ] + }, + { + "input": "З", + "description": "Named entity: Zcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0417" + ] + ] + }, + { + "input": "&Zdot", + "description": "Bad named entity: Zdot without a semi-colon", + "output": [ + [ + "Character", + "&Zdot" + ] + ] + }, + { + "input": "Ż", + "description": "Named entity: Zdot; with a semi-colon", + "output": [ + [ + "Character", + "\u017b" + ] + ] + }, + { + "input": "&ZeroWidthSpace", + "description": "Bad named entity: ZeroWidthSpace without a semi-colon", + "output": [ + [ + "Character", + "&ZeroWidthSpace" + ] + ] + }, + { + "input": "​", + "description": "Named entity: ZeroWidthSpace; with a semi-colon", + "output": [ + [ + "Character", + "\u200b" + ] + ] + }, + { + "input": "&Zeta", + "description": "Bad named entity: Zeta without a semi-colon", + "output": [ + [ + "Character", + "&Zeta" + ] + ] + }, + { + "input": "Ζ", + "description": "Named entity: Zeta; with a semi-colon", + "output": [ + [ + "Character", + "\u0396" + ] + ] + }, + { + "input": "&Zfr", + "description": "Bad named entity: Zfr without a semi-colon", + "output": [ + [ + "Character", + "&Zfr" + ] + ] + }, + { + "input": "ℨ", + "description": "Named entity: Zfr; with a semi-colon", + "output": [ + [ + "Character", + "\u2128" + ] + ] + }, + { + "input": "&Zopf", + "description": "Bad named entity: Zopf without a semi-colon", + "output": [ + [ + "Character", + "&Zopf" + ] + ] + }, + { + "input": "ℤ", + "description": "Named entity: Zopf; with a semi-colon", + "output": [ + [ + "Character", + "\u2124" + ] + ] + }, + { + "input": "&Zscr", + "description": "Bad named entity: Zscr without a semi-colon", + "output": [ + [ + "Character", + "&Zscr" + ] + ] + }, + { + "input": "𝒵", + "description": "Named entity: Zscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb5" + ] + ] + }, + { + "input": "á", + "description": "Named entity: aacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e1" + ] + ] + }, + { + "input": "á", + "description": "Named entity: aacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00e1" + ] + ] + }, + { + "input": "&abreve", + "description": "Bad named entity: abreve without a semi-colon", + "output": [ + [ + "Character", + "&abreve" + ] + ] + }, + { + "input": "ă", + "description": "Named entity: abreve; with a semi-colon", + "output": [ + [ + "Character", + "\u0103" + ] + ] + }, + { + "input": "&ac", + "description": "Bad named entity: ac without a semi-colon", + "output": [ + [ + "Character", + "&ac" + ] + ] + }, + { + "input": "∾", + "description": "Named entity: ac; with a semi-colon", + "output": [ + [ + "Character", + "\u223e" + ] + ] + }, + { + "input": "&acE", + "description": "Bad named entity: acE without a semi-colon", + "output": [ + [ + "Character", + "&acE" + ] + ] + }, + { + "input": "∾̳", + "description": "Named entity: acE; with a semi-colon", + "output": [ + [ + "Character", + "\u223e\u0333" + ] + ] + }, + { + "input": "&acd", + "description": "Bad named entity: acd without a semi-colon", + "output": [ + [ + "Character", + "&acd" + ] + ] + }, + { + "input": "∿", + "description": "Named entity: acd; with a semi-colon", + "output": [ + [ + "Character", + "\u223f" + ] + ] + }, + { + "input": "â", + "description": "Named entity: acirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e2" + ] + ] + }, + { + "input": "â", + "description": "Named entity: acirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00e2" + ] + ] + }, + { + "input": "´", + "description": "Named entity: acute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b4" + ] + ] + }, + { + "input": "´", + "description": "Named entity: acute; with a semi-colon", + "output": [ + [ + "Character", + "\u00b4" + ] + ] + }, + { + "input": "&acy", + "description": "Bad named entity: acy without a semi-colon", + "output": [ + [ + "Character", + "&acy" + ] + ] + }, + { + "input": "а", + "description": "Named entity: acy; with a semi-colon", + "output": [ + [ + "Character", + "\u0430" + ] + ] + }, + { + "input": "æ", + "description": "Named entity: aelig without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e6" + ] + ] + }, + { + "input": "æ", + "description": "Named entity: aelig; with a semi-colon", + "output": [ + [ + "Character", + "\u00e6" + ] + ] + }, + { + "input": "&af", + "description": "Bad named entity: af without a semi-colon", + "output": [ + [ + "Character", + "&af" + ] + ] + }, + { + "input": "⁡", + "description": "Named entity: af; with a semi-colon", + "output": [ + [ + "Character", + "\u2061" + ] + ] + }, + { + "input": "&afr", + "description": "Bad named entity: afr without a semi-colon", + "output": [ + [ + "Character", + "&afr" + ] + ] + }, + { + "input": "𝔞", + "description": "Named entity: afr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd1e" + ] + ] + }, + { + "input": "à", + "description": "Named entity: agrave without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e0" + ] + ] + }, + { + "input": "à", + "description": "Named entity: agrave; with a semi-colon", + "output": [ + [ + "Character", + "\u00e0" + ] + ] + }, + { + "input": "&alefsym", + "description": "Bad named entity: alefsym without a semi-colon", + "output": [ + [ + "Character", + "&alefsym" + ] + ] + }, + { + "input": "ℵ", + "description": "Named entity: alefsym; with a semi-colon", + "output": [ + [ + "Character", + "\u2135" + ] + ] + }, + { + "input": "&aleph", + "description": "Bad named entity: aleph without a semi-colon", + "output": [ + [ + "Character", + "&aleph" + ] + ] + }, + { + "input": "ℵ", + "description": "Named entity: aleph; with a semi-colon", + "output": [ + [ + "Character", + "\u2135" + ] + ] + }, + { + "input": "&alpha", + "description": "Bad named entity: alpha without a semi-colon", + "output": [ + [ + "Character", + "&alpha" + ] + ] + }, + { + "input": "α", + "description": "Named entity: alpha; with a semi-colon", + "output": [ + [ + "Character", + "\u03b1" + ] + ] + }, + { + "input": "&amacr", + "description": "Bad named entity: amacr without a semi-colon", + "output": [ + [ + "Character", + "&amacr" + ] + ] + }, + { + "input": "ā", + "description": "Named entity: amacr; with a semi-colon", + "output": [ + [ + "Character", + "\u0101" + ] + ] + }, + { + "input": "&amalg", + "description": "Bad named entity: amalg without a semi-colon", + "output": [ + [ + "Character", + "&amalg" + ] + ] + }, + { + "input": "⨿", + "description": "Named entity: amalg; with a semi-colon", + "output": [ + [ + "Character", + "\u2a3f" + ] + ] + }, + { + "input": "&", + "description": "Named entity: amp without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "&" + ] + ] + }, + { + "input": "&", + "description": "Named entity: amp; with a semi-colon", + "output": [ + [ + "Character", + "&" + ] + ] + }, + { + "input": "&and", + "description": "Bad named entity: and without a semi-colon", + "output": [ + [ + "Character", + "&and" + ] + ] + }, + { + "input": "∧", + "description": "Named entity: and; with a semi-colon", + "output": [ + [ + "Character", + "\u2227" + ] + ] + }, + { + "input": "&andand", + "description": "Bad named entity: andand without a semi-colon", + "output": [ + [ + "Character", + "&andand" + ] + ] + }, + { + "input": "⩕", + "description": "Named entity: andand; with a semi-colon", + "output": [ + [ + "Character", + "\u2a55" + ] + ] + }, + { + "input": "&andd", + "description": "Bad named entity: andd without a semi-colon", + "output": [ + [ + "Character", + "&andd" + ] + ] + }, + { + "input": "⩜", + "description": "Named entity: andd; with a semi-colon", + "output": [ + [ + "Character", + "\u2a5c" + ] + ] + }, + { + "input": "&andslope", + "description": "Bad named entity: andslope without a semi-colon", + "output": [ + [ + "Character", + "&andslope" + ] + ] + }, + { + "input": "⩘", + "description": "Named entity: andslope; with a semi-colon", + "output": [ + [ + "Character", + "\u2a58" + ] + ] + }, + { + "input": "&andv", + "description": "Bad named entity: andv without a semi-colon", + "output": [ + [ + "Character", + "&andv" + ] + ] + }, + { + "input": "⩚", + "description": "Named entity: andv; with a semi-colon", + "output": [ + [ + "Character", + "\u2a5a" + ] + ] + }, + { + "input": "&ang", + "description": "Bad named entity: ang without a semi-colon", + "output": [ + [ + "Character", + "&ang" + ] + ] + }, + { + "input": "∠", + "description": "Named entity: ang; with a semi-colon", + "output": [ + [ + "Character", + "\u2220" + ] + ] + }, + { + "input": "&ange", + "description": "Bad named entity: ange without a semi-colon", + "output": [ + [ + "Character", + "&ange" + ] + ] + }, + { + "input": "⦤", + "description": "Named entity: ange; with a semi-colon", + "output": [ + [ + "Character", + "\u29a4" + ] + ] + }, + { + "input": "&angle", + "description": "Bad named entity: angle without a semi-colon", + "output": [ + [ + "Character", + "&angle" + ] + ] + }, + { + "input": "∠", + "description": "Named entity: angle; with a semi-colon", + "output": [ + [ + "Character", + "\u2220" + ] + ] + }, + { + "input": "&angmsd", + "description": "Bad named entity: angmsd without a semi-colon", + "output": [ + [ + "Character", + "&angmsd" + ] + ] + }, + { + "input": "∡", + "description": "Named entity: angmsd; with a semi-colon", + "output": [ + [ + "Character", + "\u2221" + ] + ] + }, + { + "input": "&angmsdaa", + "description": "Bad named entity: angmsdaa without a semi-colon", + "output": [ + [ + "Character", + "&angmsdaa" + ] + ] + }, + { + "input": "⦨", + "description": "Named entity: angmsdaa; with a semi-colon", + "output": [ + [ + "Character", + "\u29a8" + ] + ] + }, + { + "input": "&angmsdab", + "description": "Bad named entity: angmsdab without a semi-colon", + "output": [ + [ + "Character", + "&angmsdab" + ] + ] + }, + { + "input": "⦩", + "description": "Named entity: angmsdab; with a semi-colon", + "output": [ + [ + "Character", + "\u29a9" + ] + ] + }, + { + "input": "&angmsdac", + "description": "Bad named entity: angmsdac without a semi-colon", + "output": [ + [ + "Character", + "&angmsdac" + ] + ] + }, + { + "input": "⦪", + "description": "Named entity: angmsdac; with a semi-colon", + "output": [ + [ + "Character", + "\u29aa" + ] + ] + }, + { + "input": "&angmsdad", + "description": "Bad named entity: angmsdad without a semi-colon", + "output": [ + [ + "Character", + "&angmsdad" + ] + ] + }, + { + "input": "⦫", + "description": "Named entity: angmsdad; with a semi-colon", + "output": [ + [ + "Character", + "\u29ab" + ] + ] + }, + { + "input": "&angmsdae", + "description": "Bad named entity: angmsdae without a semi-colon", + "output": [ + [ + "Character", + "&angmsdae" + ] + ] + }, + { + "input": "⦬", + "description": "Named entity: angmsdae; with a semi-colon", + "output": [ + [ + "Character", + "\u29ac" + ] + ] + }, + { + "input": "&angmsdaf", + "description": "Bad named entity: angmsdaf without a semi-colon", + "output": [ + [ + "Character", + "&angmsdaf" + ] + ] + }, + { + "input": "⦭", + "description": "Named entity: angmsdaf; with a semi-colon", + "output": [ + [ + "Character", + "\u29ad" + ] + ] + }, + { + "input": "&angmsdag", + "description": "Bad named entity: angmsdag without a semi-colon", + "output": [ + [ + "Character", + "&angmsdag" + ] + ] + }, + { + "input": "⦮", + "description": "Named entity: angmsdag; with a semi-colon", + "output": [ + [ + "Character", + "\u29ae" + ] + ] + }, + { + "input": "&angmsdah", + "description": "Bad named entity: angmsdah without a semi-colon", + "output": [ + [ + "Character", + "&angmsdah" + ] + ] + }, + { + "input": "⦯", + "description": "Named entity: angmsdah; with a semi-colon", + "output": [ + [ + "Character", + "\u29af" + ] + ] + }, + { + "input": "&angrt", + "description": "Bad named entity: angrt without a semi-colon", + "output": [ + [ + "Character", + "&angrt" + ] + ] + }, + { + "input": "∟", + "description": "Named entity: angrt; with a semi-colon", + "output": [ + [ + "Character", + "\u221f" + ] + ] + }, + { + "input": "&angrtvb", + "description": "Bad named entity: angrtvb without a semi-colon", + "output": [ + [ + "Character", + "&angrtvb" + ] + ] + }, + { + "input": "⊾", + "description": "Named entity: angrtvb; with a semi-colon", + "output": [ + [ + "Character", + "\u22be" + ] + ] + }, + { + "input": "&angrtvbd", + "description": "Bad named entity: angrtvbd without a semi-colon", + "output": [ + [ + "Character", + "&angrtvbd" + ] + ] + }, + { + "input": "⦝", + "description": "Named entity: angrtvbd; with a semi-colon", + "output": [ + [ + "Character", + "\u299d" + ] + ] + }, + { + "input": "&angsph", + "description": "Bad named entity: angsph without a semi-colon", + "output": [ + [ + "Character", + "&angsph" + ] + ] + }, + { + "input": "∢", + "description": "Named entity: angsph; with a semi-colon", + "output": [ + [ + "Character", + "\u2222" + ] + ] + }, + { + "input": "&angst", + "description": "Bad named entity: angst without a semi-colon", + "output": [ + [ + "Character", + "&angst" + ] + ] + }, + { + "input": "Å", + "description": "Named entity: angst; with a semi-colon", + "output": [ + [ + "Character", + "\u00c5" + ] + ] + }, + { + "input": "&angzarr", + "description": "Bad named entity: angzarr without a semi-colon", + "output": [ + [ + "Character", + "&angzarr" + ] + ] + }, + { + "input": "⍼", + "description": "Named entity: angzarr; with a semi-colon", + "output": [ + [ + "Character", + "\u237c" + ] + ] + }, + { + "input": "&aogon", + "description": "Bad named entity: aogon without a semi-colon", + "output": [ + [ + "Character", + "&aogon" + ] + ] + }, + { + "input": "ą", + "description": "Named entity: aogon; with a semi-colon", + "output": [ + [ + "Character", + "\u0105" + ] + ] + }, + { + "input": "&aopf", + "description": "Bad named entity: aopf without a semi-colon", + "output": [ + [ + "Character", + "&aopf" + ] + ] + }, + { + "input": "𝕒", + "description": "Named entity: aopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd52" + ] + ] + }, + { + "input": "&ap", + "description": "Bad named entity: ap without a semi-colon", + "output": [ + [ + "Character", + "&ap" + ] + ] + }, + { + "input": "≈", + "description": "Named entity: ap; with a semi-colon", + "output": [ + [ + "Character", + "\u2248" + ] + ] + }, + { + "input": "&apE", + "description": "Bad named entity: apE without a semi-colon", + "output": [ + [ + "Character", + "&apE" + ] + ] + }, + { + "input": "⩰", + "description": "Named entity: apE; with a semi-colon", + "output": [ + [ + "Character", + "\u2a70" + ] + ] + }, + { + "input": "&apacir", + "description": "Bad named entity: apacir without a semi-colon", + "output": [ + [ + "Character", + "&apacir" + ] + ] + }, + { + "input": "⩯", + "description": "Named entity: apacir; with a semi-colon", + "output": [ + [ + "Character", + "\u2a6f" + ] + ] + }, + { + "input": "&ape", + "description": "Bad named entity: ape without a semi-colon", + "output": [ + [ + "Character", + "&ape" + ] + ] + }, + { + "input": "≊", + "description": "Named entity: ape; with a semi-colon", + "output": [ + [ + "Character", + "\u224a" + ] + ] + }, + { + "input": "&apid", + "description": "Bad named entity: apid without a semi-colon", + "output": [ + [ + "Character", + "&apid" + ] + ] + }, + { + "input": "≋", + "description": "Named entity: apid; with a semi-colon", + "output": [ + [ + "Character", + "\u224b" + ] + ] + }, + { + "input": "&apos", + "description": "Bad named entity: apos without a semi-colon", + "output": [ + [ + "Character", + "&apos" + ] + ] + }, + { + "input": "'", + "description": "Named entity: apos; with a semi-colon", + "output": [ + [ + "Character", + "'" + ] + ] + }, + { + "input": "&approx", + "description": "Bad named entity: approx without a semi-colon", + "output": [ + [ + "Character", + "&approx" + ] + ] + }, + { + "input": "≈", + "description": "Named entity: approx; with a semi-colon", + "output": [ + [ + "Character", + "\u2248" + ] + ] + }, + { + "input": "&approxeq", + "description": "Bad named entity: approxeq without a semi-colon", + "output": [ + [ + "Character", + "&approxeq" + ] + ] + }, + { + "input": "≊", + "description": "Named entity: approxeq; with a semi-colon", + "output": [ + [ + "Character", + "\u224a" + ] + ] + }, + { + "input": "å", + "description": "Named entity: aring without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e5" + ] + ] + }, + { + "input": "å", + "description": "Named entity: aring; with a semi-colon", + "output": [ + [ + "Character", + "\u00e5" + ] + ] + }, + { + "input": "&ascr", + "description": "Bad named entity: ascr without a semi-colon", + "output": [ + [ + "Character", + "&ascr" + ] + ] + }, + { + "input": "𝒶", + "description": "Named entity: ascr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb6" + ] + ] + }, + { + "input": "&ast", + "description": "Bad named entity: ast without a semi-colon", + "output": [ + [ + "Character", + "&ast" + ] + ] + }, + { + "input": "*", + "description": "Named entity: ast; with a semi-colon", + "output": [ + [ + "Character", + "*" + ] + ] + }, + { + "input": "&asymp", + "description": "Bad named entity: asymp without a semi-colon", + "output": [ + [ + "Character", + "&asymp" + ] + ] + }, + { + "input": "≈", + "description": "Named entity: asymp; with a semi-colon", + "output": [ + [ + "Character", + "\u2248" + ] + ] + }, + { + "input": "&asympeq", + "description": "Bad named entity: asympeq without a semi-colon", + "output": [ + [ + "Character", + "&asympeq" + ] + ] + }, + { + "input": "≍", + "description": "Named entity: asympeq; with a semi-colon", + "output": [ + [ + "Character", + "\u224d" + ] + ] + }, + { + "input": "ã", + "description": "Named entity: atilde without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e3" + ] + ] + }, + { + "input": "ã", + "description": "Named entity: atilde; with a semi-colon", + "output": [ + [ + "Character", + "\u00e3" + ] + ] + }, + { + "input": "ä", + "description": "Named entity: auml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e4" + ] + ] + }, + { + "input": "ä", + "description": "Named entity: auml; with a semi-colon", + "output": [ + [ + "Character", + "\u00e4" + ] + ] + }, + { + "input": "&awconint", + "description": "Bad named entity: awconint without a semi-colon", + "output": [ + [ + "Character", + "&awconint" + ] + ] + }, + { + "input": "∳", + "description": "Named entity: awconint; with a semi-colon", + "output": [ + [ + "Character", + "\u2233" + ] + ] + }, + { + "input": "&awint", + "description": "Bad named entity: awint without a semi-colon", + "output": [ + [ + "Character", + "&awint" + ] + ] + }, + { + "input": "⨑", + "description": "Named entity: awint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a11" + ] + ] + }, + { + "input": "&bNot", + "description": "Bad named entity: bNot without a semi-colon", + "output": [ + [ + "Character", + "&bNot" + ] + ] + }, + { + "input": "⫭", + "description": "Named entity: bNot; with a semi-colon", + "output": [ + [ + "Character", + "\u2aed" + ] + ] + }, + { + "input": "&backcong", + "description": "Bad named entity: backcong without a semi-colon", + "output": [ + [ + "Character", + "&backcong" + ] + ] + }, + { + "input": "≌", + "description": "Named entity: backcong; with a semi-colon", + "output": [ + [ + "Character", + "\u224c" + ] + ] + }, + { + "input": "&backepsilon", + "description": "Bad named entity: backepsilon without a semi-colon", + "output": [ + [ + "Character", + "&backepsilon" + ] + ] + }, + { + "input": "϶", + "description": "Named entity: backepsilon; with a semi-colon", + "output": [ + [ + "Character", + "\u03f6" + ] + ] + }, + { + "input": "&backprime", + "description": "Bad named entity: backprime without a semi-colon", + "output": [ + [ + "Character", + "&backprime" + ] + ] + }, + { + "input": "‵", + "description": "Named entity: backprime; with a semi-colon", + "output": [ + [ + "Character", + "\u2035" + ] + ] + }, + { + "input": "&backsim", + "description": "Bad named entity: backsim without a semi-colon", + "output": [ + [ + "Character", + "&backsim" + ] + ] + }, + { + "input": "∽", + "description": "Named entity: backsim; with a semi-colon", + "output": [ + [ + "Character", + "\u223d" + ] + ] + }, + { + "input": "&backsimeq", + "description": "Bad named entity: backsimeq without a semi-colon", + "output": [ + [ + "Character", + "&backsimeq" + ] + ] + }, + { + "input": "⋍", + "description": "Named entity: backsimeq; with a semi-colon", + "output": [ + [ + "Character", + "\u22cd" + ] + ] + }, + { + "input": "&barvee", + "description": "Bad named entity: barvee without a semi-colon", + "output": [ + [ + "Character", + "&barvee" + ] + ] + }, + { + "input": "⊽", + "description": "Named entity: barvee; with a semi-colon", + "output": [ + [ + "Character", + "\u22bd" + ] + ] + }, + { + "input": "&barwed", + "description": "Bad named entity: barwed without a semi-colon", + "output": [ + [ + "Character", + "&barwed" + ] + ] + }, + { + "input": "⌅", + "description": "Named entity: barwed; with a semi-colon", + "output": [ + [ + "Character", + "\u2305" + ] + ] + }, + { + "input": "&barwedge", + "description": "Bad named entity: barwedge without a semi-colon", + "output": [ + [ + "Character", + "&barwedge" + ] + ] + }, + { + "input": "⌅", + "description": "Named entity: barwedge; with a semi-colon", + "output": [ + [ + "Character", + "\u2305" + ] + ] + }, + { + "input": "&bbrk", + "description": "Bad named entity: bbrk without a semi-colon", + "output": [ + [ + "Character", + "&bbrk" + ] + ] + }, + { + "input": "⎵", + "description": "Named entity: bbrk; with a semi-colon", + "output": [ + [ + "Character", + "\u23b5" + ] + ] + }, + { + "input": "&bbrktbrk", + "description": "Bad named entity: bbrktbrk without a semi-colon", + "output": [ + [ + "Character", + "&bbrktbrk" + ] + ] + }, + { + "input": "⎶", + "description": "Named entity: bbrktbrk; with a semi-colon", + "output": [ + [ + "Character", + "\u23b6" + ] + ] + }, + { + "input": "&bcong", + "description": "Bad named entity: bcong without a semi-colon", + "output": [ + [ + "Character", + "&bcong" + ] + ] + }, + { + "input": "≌", + "description": "Named entity: bcong; with a semi-colon", + "output": [ + [ + "Character", + "\u224c" + ] + ] + }, + { + "input": "&bcy", + "description": "Bad named entity: bcy without a semi-colon", + "output": [ + [ + "Character", + "&bcy" + ] + ] + }, + { + "input": "б", + "description": "Named entity: bcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0431" + ] + ] + }, + { + "input": "&bdquo", + "description": "Bad named entity: bdquo without a semi-colon", + "output": [ + [ + "Character", + "&bdquo" + ] + ] + }, + { + "input": "„", + "description": "Named entity: bdquo; with a semi-colon", + "output": [ + [ + "Character", + "\u201e" + ] + ] + }, + { + "input": "&becaus", + "description": "Bad named entity: becaus without a semi-colon", + "output": [ + [ + "Character", + "&becaus" + ] + ] + }, + { + "input": "∵", + "description": "Named entity: becaus; with a semi-colon", + "output": [ + [ + "Character", + "\u2235" + ] + ] + }, + { + "input": "&because", + "description": "Bad named entity: because without a semi-colon", + "output": [ + [ + "Character", + "&because" + ] + ] + }, + { + "input": "∵", + "description": "Named entity: because; with a semi-colon", + "output": [ + [ + "Character", + "\u2235" + ] + ] + }, + { + "input": "&bemptyv", + "description": "Bad named entity: bemptyv without a semi-colon", + "output": [ + [ + "Character", + "&bemptyv" + ] + ] + }, + { + "input": "⦰", + "description": "Named entity: bemptyv; with a semi-colon", + "output": [ + [ + "Character", + "\u29b0" + ] + ] + }, + { + "input": "&bepsi", + "description": "Bad named entity: bepsi without a semi-colon", + "output": [ + [ + "Character", + "&bepsi" + ] + ] + }, + { + "input": "϶", + "description": "Named entity: bepsi; with a semi-colon", + "output": [ + [ + "Character", + "\u03f6" + ] + ] + }, + { + "input": "&bernou", + "description": "Bad named entity: bernou without a semi-colon", + "output": [ + [ + "Character", + "&bernou" + ] + ] + }, + { + "input": "ℬ", + "description": "Named entity: bernou; with a semi-colon", + "output": [ + [ + "Character", + "\u212c" + ] + ] + }, + { + "input": "&beta", + "description": "Bad named entity: beta without a semi-colon", + "output": [ + [ + "Character", + "&beta" + ] + ] + }, + { + "input": "β", + "description": "Named entity: beta; with a semi-colon", + "output": [ + [ + "Character", + "\u03b2" + ] + ] + }, + { + "input": "&beth", + "description": "Bad named entity: beth without a semi-colon", + "output": [ + [ + "Character", + "&beth" + ] + ] + }, + { + "input": "ℶ", + "description": "Named entity: beth; with a semi-colon", + "output": [ + [ + "Character", + "\u2136" + ] + ] + }, + { + "input": "&between", + "description": "Bad named entity: between without a semi-colon", + "output": [ + [ + "Character", + "&between" + ] + ] + }, + { + "input": "≬", + "description": "Named entity: between; with a semi-colon", + "output": [ + [ + "Character", + "\u226c" + ] + ] + }, + { + "input": "&bfr", + "description": "Bad named entity: bfr without a semi-colon", + "output": [ + [ + "Character", + "&bfr" + ] + ] + }, + { + "input": "𝔟", + "description": "Named entity: bfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd1f" + ] + ] + }, + { + "input": "&bigcap", + "description": "Bad named entity: bigcap without a semi-colon", + "output": [ + [ + "Character", + "&bigcap" + ] + ] + }, + { + "input": "⋂", + "description": "Named entity: bigcap; with a semi-colon", + "output": [ + [ + "Character", + "\u22c2" + ] + ] + }, + { + "input": "&bigcirc", + "description": "Bad named entity: bigcirc without a semi-colon", + "output": [ + [ + "Character", + "&bigcirc" + ] + ] + }, + { + "input": "◯", + "description": "Named entity: bigcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u25ef" + ] + ] + }, + { + "input": "&bigcup", + "description": "Bad named entity: bigcup without a semi-colon", + "output": [ + [ + "Character", + "&bigcup" + ] + ] + }, + { + "input": "⋃", + "description": "Named entity: bigcup; with a semi-colon", + "output": [ + [ + "Character", + "\u22c3" + ] + ] + }, + { + "input": "&bigodot", + "description": "Bad named entity: bigodot without a semi-colon", + "output": [ + [ + "Character", + "&bigodot" + ] + ] + }, + { + "input": "⨀", + "description": "Named entity: bigodot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a00" + ] + ] + }, + { + "input": "&bigoplus", + "description": "Bad named entity: bigoplus without a semi-colon", + "output": [ + [ + "Character", + "&bigoplus" + ] + ] + }, + { + "input": "⨁", + "description": "Named entity: bigoplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a01" + ] + ] + }, + { + "input": "&bigotimes", + "description": "Bad named entity: bigotimes without a semi-colon", + "output": [ + [ + "Character", + "&bigotimes" + ] + ] + }, + { + "input": "⨂", + "description": "Named entity: bigotimes; with a semi-colon", + "output": [ + [ + "Character", + "\u2a02" + ] + ] + }, + { + "input": "&bigsqcup", + "description": "Bad named entity: bigsqcup without a semi-colon", + "output": [ + [ + "Character", + "&bigsqcup" + ] + ] + }, + { + "input": "⨆", + "description": "Named entity: bigsqcup; with a semi-colon", + "output": [ + [ + "Character", + "\u2a06" + ] + ] + }, + { + "input": "&bigstar", + "description": "Bad named entity: bigstar without a semi-colon", + "output": [ + [ + "Character", + "&bigstar" + ] + ] + }, + { + "input": "★", + "description": "Named entity: bigstar; with a semi-colon", + "output": [ + [ + "Character", + "\u2605" + ] + ] + }, + { + "input": "&bigtriangledown", + "description": "Bad named entity: bigtriangledown without a semi-colon", + "output": [ + [ + "Character", + "&bigtriangledown" + ] + ] + }, + { + "input": "▽", + "description": "Named entity: bigtriangledown; with a semi-colon", + "output": [ + [ + "Character", + "\u25bd" + ] + ] + }, + { + "input": "&bigtriangleup", + "description": "Bad named entity: bigtriangleup without a semi-colon", + "output": [ + [ + "Character", + "&bigtriangleup" + ] + ] + }, + { + "input": "△", + "description": "Named entity: bigtriangleup; with a semi-colon", + "output": [ + [ + "Character", + "\u25b3" + ] + ] + }, + { + "input": "&biguplus", + "description": "Bad named entity: biguplus without a semi-colon", + "output": [ + [ + "Character", + "&biguplus" + ] + ] + }, + { + "input": "⨄", + "description": "Named entity: biguplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a04" + ] + ] + }, + { + "input": "&bigvee", + "description": "Bad named entity: bigvee without a semi-colon", + "output": [ + [ + "Character", + "&bigvee" + ] + ] + }, + { + "input": "⋁", + "description": "Named entity: bigvee; with a semi-colon", + "output": [ + [ + "Character", + "\u22c1" + ] + ] + }, + { + "input": "&bigwedge", + "description": "Bad named entity: bigwedge without a semi-colon", + "output": [ + [ + "Character", + "&bigwedge" + ] + ] + }, + { + "input": "⋀", + "description": "Named entity: bigwedge; with a semi-colon", + "output": [ + [ + "Character", + "\u22c0" + ] + ] + }, + { + "input": "&bkarow", + "description": "Bad named entity: bkarow without a semi-colon", + "output": [ + [ + "Character", + "&bkarow" + ] + ] + }, + { + "input": "⤍", + "description": "Named entity: bkarow; with a semi-colon", + "output": [ + [ + "Character", + "\u290d" + ] + ] + }, + { + "input": "&blacklozenge", + "description": "Bad named entity: blacklozenge without a semi-colon", + "output": [ + [ + "Character", + "&blacklozenge" + ] + ] + }, + { + "input": "⧫", + "description": "Named entity: blacklozenge; with a semi-colon", + "output": [ + [ + "Character", + "\u29eb" + ] + ] + }, + { + "input": "&blacksquare", + "description": "Bad named entity: blacksquare without a semi-colon", + "output": [ + [ + "Character", + "&blacksquare" + ] + ] + }, + { + "input": "▪", + "description": "Named entity: blacksquare; with a semi-colon", + "output": [ + [ + "Character", + "\u25aa" + ] + ] + }, + { + "input": "&blacktriangle", + "description": "Bad named entity: blacktriangle without a semi-colon", + "output": [ + [ + "Character", + "&blacktriangle" + ] + ] + }, + { + "input": "▴", + "description": "Named entity: blacktriangle; with a semi-colon", + "output": [ + [ + "Character", + "\u25b4" + ] + ] + }, + { + "input": "&blacktriangledown", + "description": "Bad named entity: blacktriangledown without a semi-colon", + "output": [ + [ + "Character", + "&blacktriangledown" + ] + ] + }, + { + "input": "▾", + "description": "Named entity: blacktriangledown; with a semi-colon", + "output": [ + [ + "Character", + "\u25be" + ] + ] + }, + { + "input": "&blacktriangleleft", + "description": "Bad named entity: blacktriangleleft without a semi-colon", + "output": [ + [ + "Character", + "&blacktriangleleft" + ] + ] + }, + { + "input": "◂", + "description": "Named entity: blacktriangleleft; with a semi-colon", + "output": [ + [ + "Character", + "\u25c2" + ] + ] + }, + { + "input": "&blacktriangleright", + "description": "Bad named entity: blacktriangleright without a semi-colon", + "output": [ + [ + "Character", + "&blacktriangleright" + ] + ] + }, + { + "input": "▸", + "description": "Named entity: blacktriangleright; with a semi-colon", + "output": [ + [ + "Character", + "\u25b8" + ] + ] + }, + { + "input": "&blank", + "description": "Bad named entity: blank without a semi-colon", + "output": [ + [ + "Character", + "&blank" + ] + ] + }, + { + "input": "␣", + "description": "Named entity: blank; with a semi-colon", + "output": [ + [ + "Character", + "\u2423" + ] + ] + }, + { + "input": "&blk12", + "description": "Bad named entity: blk12 without a semi-colon", + "output": [ + [ + "Character", + "&blk12" + ] + ] + }, + { + "input": "▒", + "description": "Named entity: blk12; with a semi-colon", + "output": [ + [ + "Character", + "\u2592" + ] + ] + }, + { + "input": "&blk14", + "description": "Bad named entity: blk14 without a semi-colon", + "output": [ + [ + "Character", + "&blk14" + ] + ] + }, + { + "input": "░", + "description": "Named entity: blk14; with a semi-colon", + "output": [ + [ + "Character", + "\u2591" + ] + ] + }, + { + "input": "&blk34", + "description": "Bad named entity: blk34 without a semi-colon", + "output": [ + [ + "Character", + "&blk34" + ] + ] + }, + { + "input": "▓", + "description": "Named entity: blk34; with a semi-colon", + "output": [ + [ + "Character", + "\u2593" + ] + ] + }, + { + "input": "&block", + "description": "Bad named entity: block without a semi-colon", + "output": [ + [ + "Character", + "&block" + ] + ] + }, + { + "input": "█", + "description": "Named entity: block; with a semi-colon", + "output": [ + [ + "Character", + "\u2588" + ] + ] + }, + { + "input": "&bne", + "description": "Bad named entity: bne without a semi-colon", + "output": [ + [ + "Character", + "&bne" + ] + ] + }, + { + "input": "=⃥", + "description": "Named entity: bne; with a semi-colon", + "output": [ + [ + "Character", + "=\u20e5" + ] + ] + }, + { + "input": "&bnequiv", + "description": "Bad named entity: bnequiv without a semi-colon", + "output": [ + [ + "Character", + "&bnequiv" + ] + ] + }, + { + "input": "≡⃥", + "description": "Named entity: bnequiv; with a semi-colon", + "output": [ + [ + "Character", + "\u2261\u20e5" + ] + ] + }, + { + "input": "&bnot", + "description": "Bad named entity: bnot without a semi-colon", + "output": [ + [ + "Character", + "&bnot" + ] + ] + }, + { + "input": "⌐", + "description": "Named entity: bnot; with a semi-colon", + "output": [ + [ + "Character", + "\u2310" + ] + ] + }, + { + "input": "&bopf", + "description": "Bad named entity: bopf without a semi-colon", + "output": [ + [ + "Character", + "&bopf" + ] + ] + }, + { + "input": "𝕓", + "description": "Named entity: bopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd53" + ] + ] + }, + { + "input": "&bot", + "description": "Bad named entity: bot without a semi-colon", + "output": [ + [ + "Character", + "&bot" + ] + ] + }, + { + "input": "⊥", + "description": "Named entity: bot; with a semi-colon", + "output": [ + [ + "Character", + "\u22a5" + ] + ] + }, + { + "input": "&bottom", + "description": "Bad named entity: bottom without a semi-colon", + "output": [ + [ + "Character", + "&bottom" + ] + ] + }, + { + "input": "⊥", + "description": "Named entity: bottom; with a semi-colon", + "output": [ + [ + "Character", + "\u22a5" + ] + ] + }, + { + "input": "&bowtie", + "description": "Bad named entity: bowtie without a semi-colon", + "output": [ + [ + "Character", + "&bowtie" + ] + ] + }, + { + "input": "⋈", + "description": "Named entity: bowtie; with a semi-colon", + "output": [ + [ + "Character", + "\u22c8" + ] + ] + }, + { + "input": "&boxDL", + "description": "Bad named entity: boxDL without a semi-colon", + "output": [ + [ + "Character", + "&boxDL" + ] + ] + }, + { + "input": "╗", + "description": "Named entity: boxDL; with a semi-colon", + "output": [ + [ + "Character", + "\u2557" + ] + ] + }, + { + "input": "&boxDR", + "description": "Bad named entity: boxDR without a semi-colon", + "output": [ + [ + "Character", + "&boxDR" + ] + ] + }, + { + "input": "╔", + "description": "Named entity: boxDR; with a semi-colon", + "output": [ + [ + "Character", + "\u2554" + ] + ] + }, + { + "input": "&boxDl", + "description": "Bad named entity: boxDl without a semi-colon", + "output": [ + [ + "Character", + "&boxDl" + ] + ] + }, + { + "input": "╖", + "description": "Named entity: boxDl; with a semi-colon", + "output": [ + [ + "Character", + "\u2556" + ] + ] + }, + { + "input": "&boxDr", + "description": "Bad named entity: boxDr without a semi-colon", + "output": [ + [ + "Character", + "&boxDr" + ] + ] + }, + { + "input": "╓", + "description": "Named entity: boxDr; with a semi-colon", + "output": [ + [ + "Character", + "\u2553" + ] + ] + }, + { + "input": "&boxH", + "description": "Bad named entity: boxH without a semi-colon", + "output": [ + [ + "Character", + "&boxH" + ] + ] + }, + { + "input": "═", + "description": "Named entity: boxH; with a semi-colon", + "output": [ + [ + "Character", + "\u2550" + ] + ] + }, + { + "input": "&boxHD", + "description": "Bad named entity: boxHD without a semi-colon", + "output": [ + [ + "Character", + "&boxHD" + ] + ] + }, + { + "input": "╦", + "description": "Named entity: boxHD; with a semi-colon", + "output": [ + [ + "Character", + "\u2566" + ] + ] + }, + { + "input": "&boxHU", + "description": "Bad named entity: boxHU without a semi-colon", + "output": [ + [ + "Character", + "&boxHU" + ] + ] + }, + { + "input": "╩", + "description": "Named entity: boxHU; with a semi-colon", + "output": [ + [ + "Character", + "\u2569" + ] + ] + }, + { + "input": "&boxHd", + "description": "Bad named entity: boxHd without a semi-colon", + "output": [ + [ + "Character", + "&boxHd" + ] + ] + }, + { + "input": "╤", + "description": "Named entity: boxHd; with a semi-colon", + "output": [ + [ + "Character", + "\u2564" + ] + ] + }, + { + "input": "&boxHu", + "description": "Bad named entity: boxHu without a semi-colon", + "output": [ + [ + "Character", + "&boxHu" + ] + ] + }, + { + "input": "╧", + "description": "Named entity: boxHu; with a semi-colon", + "output": [ + [ + "Character", + "\u2567" + ] + ] + }, + { + "input": "&boxUL", + "description": "Bad named entity: boxUL without a semi-colon", + "output": [ + [ + "Character", + "&boxUL" + ] + ] + }, + { + "input": "╝", + "description": "Named entity: boxUL; with a semi-colon", + "output": [ + [ + "Character", + "\u255d" + ] + ] + }, + { + "input": "&boxUR", + "description": "Bad named entity: boxUR without a semi-colon", + "output": [ + [ + "Character", + "&boxUR" + ] + ] + }, + { + "input": "╚", + "description": "Named entity: boxUR; with a semi-colon", + "output": [ + [ + "Character", + "\u255a" + ] + ] + }, + { + "input": "&boxUl", + "description": "Bad named entity: boxUl without a semi-colon", + "output": [ + [ + "Character", + "&boxUl" + ] + ] + }, + { + "input": "╜", + "description": "Named entity: boxUl; with a semi-colon", + "output": [ + [ + "Character", + "\u255c" + ] + ] + }, + { + "input": "&boxUr", + "description": "Bad named entity: boxUr without a semi-colon", + "output": [ + [ + "Character", + "&boxUr" + ] + ] + }, + { + "input": "╙", + "description": "Named entity: boxUr; with a semi-colon", + "output": [ + [ + "Character", + "\u2559" + ] + ] + }, + { + "input": "&boxV", + "description": "Bad named entity: boxV without a semi-colon", + "output": [ + [ + "Character", + "&boxV" + ] + ] + }, + { + "input": "║", + "description": "Named entity: boxV; with a semi-colon", + "output": [ + [ + "Character", + "\u2551" + ] + ] + }, + { + "input": "&boxVH", + "description": "Bad named entity: boxVH without a semi-colon", + "output": [ + [ + "Character", + "&boxVH" + ] + ] + }, + { + "input": "╬", + "description": "Named entity: boxVH; with a semi-colon", + "output": [ + [ + "Character", + "\u256c" + ] + ] + }, + { + "input": "&boxVL", + "description": "Bad named entity: boxVL without a semi-colon", + "output": [ + [ + "Character", + "&boxVL" + ] + ] + }, + { + "input": "╣", + "description": "Named entity: boxVL; with a semi-colon", + "output": [ + [ + "Character", + "\u2563" + ] + ] + }, + { + "input": "&boxVR", + "description": "Bad named entity: boxVR without a semi-colon", + "output": [ + [ + "Character", + "&boxVR" + ] + ] + }, + { + "input": "╠", + "description": "Named entity: boxVR; with a semi-colon", + "output": [ + [ + "Character", + "\u2560" + ] + ] + }, + { + "input": "&boxVh", + "description": "Bad named entity: boxVh without a semi-colon", + "output": [ + [ + "Character", + "&boxVh" + ] + ] + }, + { + "input": "╫", + "description": "Named entity: boxVh; with a semi-colon", + "output": [ + [ + "Character", + "\u256b" + ] + ] + }, + { + "input": "&boxVl", + "description": "Bad named entity: boxVl without a semi-colon", + "output": [ + [ + "Character", + "&boxVl" + ] + ] + }, + { + "input": "╢", + "description": "Named entity: boxVl; with a semi-colon", + "output": [ + [ + "Character", + "\u2562" + ] + ] + }, + { + "input": "&boxVr", + "description": "Bad named entity: boxVr without a semi-colon", + "output": [ + [ + "Character", + "&boxVr" + ] + ] + }, + { + "input": "╟", + "description": "Named entity: boxVr; with a semi-colon", + "output": [ + [ + "Character", + "\u255f" + ] + ] + }, + { + "input": "&boxbox", + "description": "Bad named entity: boxbox without a semi-colon", + "output": [ + [ + "Character", + "&boxbox" + ] + ] + }, + { + "input": "⧉", + "description": "Named entity: boxbox; with a semi-colon", + "output": [ + [ + "Character", + "\u29c9" + ] + ] + }, + { + "input": "&boxdL", + "description": "Bad named entity: boxdL without a semi-colon", + "output": [ + [ + "Character", + "&boxdL" + ] + ] + }, + { + "input": "╕", + "description": "Named entity: boxdL; with a semi-colon", + "output": [ + [ + "Character", + "\u2555" + ] + ] + }, + { + "input": "&boxdR", + "description": "Bad named entity: boxdR without a semi-colon", + "output": [ + [ + "Character", + "&boxdR" + ] + ] + }, + { + "input": "╒", + "description": "Named entity: boxdR; with a semi-colon", + "output": [ + [ + "Character", + "\u2552" + ] + ] + }, + { + "input": "&boxdl", + "description": "Bad named entity: boxdl without a semi-colon", + "output": [ + [ + "Character", + "&boxdl" + ] + ] + }, + { + "input": "┐", + "description": "Named entity: boxdl; with a semi-colon", + "output": [ + [ + "Character", + "\u2510" + ] + ] + }, + { + "input": "&boxdr", + "description": "Bad named entity: boxdr without a semi-colon", + "output": [ + [ + "Character", + "&boxdr" + ] + ] + }, + { + "input": "┌", + "description": "Named entity: boxdr; with a semi-colon", + "output": [ + [ + "Character", + "\u250c" + ] + ] + }, + { + "input": "&boxh", + "description": "Bad named entity: boxh without a semi-colon", + "output": [ + [ + "Character", + "&boxh" + ] + ] + }, + { + "input": "─", + "description": "Named entity: boxh; with a semi-colon", + "output": [ + [ + "Character", + "\u2500" + ] + ] + }, + { + "input": "&boxhD", + "description": "Bad named entity: boxhD without a semi-colon", + "output": [ + [ + "Character", + "&boxhD" + ] + ] + }, + { + "input": "╥", + "description": "Named entity: boxhD; with a semi-colon", + "output": [ + [ + "Character", + "\u2565" + ] + ] + }, + { + "input": "&boxhU", + "description": "Bad named entity: boxhU without a semi-colon", + "output": [ + [ + "Character", + "&boxhU" + ] + ] + }, + { + "input": "╨", + "description": "Named entity: boxhU; with a semi-colon", + "output": [ + [ + "Character", + "\u2568" + ] + ] + }, + { + "input": "&boxhd", + "description": "Bad named entity: boxhd without a semi-colon", + "output": [ + [ + "Character", + "&boxhd" + ] + ] + }, + { + "input": "┬", + "description": "Named entity: boxhd; with a semi-colon", + "output": [ + [ + "Character", + "\u252c" + ] + ] + }, + { + "input": "&boxhu", + "description": "Bad named entity: boxhu without a semi-colon", + "output": [ + [ + "Character", + "&boxhu" + ] + ] + }, + { + "input": "┴", + "description": "Named entity: boxhu; with a semi-colon", + "output": [ + [ + "Character", + "\u2534" + ] + ] + }, + { + "input": "&boxminus", + "description": "Bad named entity: boxminus without a semi-colon", + "output": [ + [ + "Character", + "&boxminus" + ] + ] + }, + { + "input": "⊟", + "description": "Named entity: boxminus; with a semi-colon", + "output": [ + [ + "Character", + "\u229f" + ] + ] + }, + { + "input": "&boxplus", + "description": "Bad named entity: boxplus without a semi-colon", + "output": [ + [ + "Character", + "&boxplus" + ] + ] + }, + { + "input": "⊞", + "description": "Named entity: boxplus; with a semi-colon", + "output": [ + [ + "Character", + "\u229e" + ] + ] + }, + { + "input": "&boxtimes", + "description": "Bad named entity: boxtimes without a semi-colon", + "output": [ + [ + "Character", + "&boxtimes" + ] + ] + }, + { + "input": "⊠", + "description": "Named entity: boxtimes; with a semi-colon", + "output": [ + [ + "Character", + "\u22a0" + ] + ] + }, + { + "input": "&boxuL", + "description": "Bad named entity: boxuL without a semi-colon", + "output": [ + [ + "Character", + "&boxuL" + ] + ] + }, + { + "input": "╛", + "description": "Named entity: boxuL; with a semi-colon", + "output": [ + [ + "Character", + "\u255b" + ] + ] + }, + { + "input": "&boxuR", + "description": "Bad named entity: boxuR without a semi-colon", + "output": [ + [ + "Character", + "&boxuR" + ] + ] + }, + { + "input": "╘", + "description": "Named entity: boxuR; with a semi-colon", + "output": [ + [ + "Character", + "\u2558" + ] + ] + }, + { + "input": "&boxul", + "description": "Bad named entity: boxul without a semi-colon", + "output": [ + [ + "Character", + "&boxul" + ] + ] + }, + { + "input": "┘", + "description": "Named entity: boxul; with a semi-colon", + "output": [ + [ + "Character", + "\u2518" + ] + ] + }, + { + "input": "&boxur", + "description": "Bad named entity: boxur without a semi-colon", + "output": [ + [ + "Character", + "&boxur" + ] + ] + }, + { + "input": "└", + "description": "Named entity: boxur; with a semi-colon", + "output": [ + [ + "Character", + "\u2514" + ] + ] + }, + { + "input": "&boxv", + "description": "Bad named entity: boxv without a semi-colon", + "output": [ + [ + "Character", + "&boxv" + ] + ] + }, + { + "input": "│", + "description": "Named entity: boxv; with a semi-colon", + "output": [ + [ + "Character", + "\u2502" + ] + ] + }, + { + "input": "&boxvH", + "description": "Bad named entity: boxvH without a semi-colon", + "output": [ + [ + "Character", + "&boxvH" + ] + ] + }, + { + "input": "╪", + "description": "Named entity: boxvH; with a semi-colon", + "output": [ + [ + "Character", + "\u256a" + ] + ] + }, + { + "input": "&boxvL", + "description": "Bad named entity: boxvL without a semi-colon", + "output": [ + [ + "Character", + "&boxvL" + ] + ] + }, + { + "input": "╡", + "description": "Named entity: boxvL; with a semi-colon", + "output": [ + [ + "Character", + "\u2561" + ] + ] + }, + { + "input": "&boxvR", + "description": "Bad named entity: boxvR without a semi-colon", + "output": [ + [ + "Character", + "&boxvR" + ] + ] + }, + { + "input": "╞", + "description": "Named entity: boxvR; with a semi-colon", + "output": [ + [ + "Character", + "\u255e" + ] + ] + }, + { + "input": "&boxvh", + "description": "Bad named entity: boxvh without a semi-colon", + "output": [ + [ + "Character", + "&boxvh" + ] + ] + }, + { + "input": "┼", + "description": "Named entity: boxvh; with a semi-colon", + "output": [ + [ + "Character", + "\u253c" + ] + ] + }, + { + "input": "&boxvl", + "description": "Bad named entity: boxvl without a semi-colon", + "output": [ + [ + "Character", + "&boxvl" + ] + ] + }, + { + "input": "┤", + "description": "Named entity: boxvl; with a semi-colon", + "output": [ + [ + "Character", + "\u2524" + ] + ] + }, + { + "input": "&boxvr", + "description": "Bad named entity: boxvr without a semi-colon", + "output": [ + [ + "Character", + "&boxvr" + ] + ] + }, + { + "input": "├", + "description": "Named entity: boxvr; with a semi-colon", + "output": [ + [ + "Character", + "\u251c" + ] + ] + }, + { + "input": "&bprime", + "description": "Bad named entity: bprime without a semi-colon", + "output": [ + [ + "Character", + "&bprime" + ] + ] + }, + { + "input": "‵", + "description": "Named entity: bprime; with a semi-colon", + "output": [ + [ + "Character", + "\u2035" + ] + ] + }, + { + "input": "&breve", + "description": "Bad named entity: breve without a semi-colon", + "output": [ + [ + "Character", + "&breve" + ] + ] + }, + { + "input": "˘", + "description": "Named entity: breve; with a semi-colon", + "output": [ + [ + "Character", + "\u02d8" + ] + ] + }, + { + "input": "¦", + "description": "Named entity: brvbar without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a6" + ] + ] + }, + { + "input": "¦", + "description": "Named entity: brvbar; with a semi-colon", + "output": [ + [ + "Character", + "\u00a6" + ] + ] + }, + { + "input": "&bscr", + "description": "Bad named entity: bscr without a semi-colon", + "output": [ + [ + "Character", + "&bscr" + ] + ] + }, + { + "input": "𝒷", + "description": "Named entity: bscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb7" + ] + ] + }, + { + "input": "&bsemi", + "description": "Bad named entity: bsemi without a semi-colon", + "output": [ + [ + "Character", + "&bsemi" + ] + ] + }, + { + "input": "⁏", + "description": "Named entity: bsemi; with a semi-colon", + "output": [ + [ + "Character", + "\u204f" + ] + ] + }, + { + "input": "&bsim", + "description": "Bad named entity: bsim without a semi-colon", + "output": [ + [ + "Character", + "&bsim" + ] + ] + }, + { + "input": "∽", + "description": "Named entity: bsim; with a semi-colon", + "output": [ + [ + "Character", + "\u223d" + ] + ] + }, + { + "input": "&bsime", + "description": "Bad named entity: bsime without a semi-colon", + "output": [ + [ + "Character", + "&bsime" + ] + ] + }, + { + "input": "⋍", + "description": "Named entity: bsime; with a semi-colon", + "output": [ + [ + "Character", + "\u22cd" + ] + ] + }, + { + "input": "&bsol", + "description": "Bad named entity: bsol without a semi-colon", + "output": [ + [ + "Character", + "&bsol" + ] + ] + }, + { + "input": "\", + "description": "Named entity: bsol; with a semi-colon", + "output": [ + [ + "Character", + "\\" + ] + ] + }, + { + "input": "&bsolb", + "description": "Bad named entity: bsolb without a semi-colon", + "output": [ + [ + "Character", + "&bsolb" + ] + ] + }, + { + "input": "⧅", + "description": "Named entity: bsolb; with a semi-colon", + "output": [ + [ + "Character", + "\u29c5" + ] + ] + }, + { + "input": "&bsolhsub", + "description": "Bad named entity: bsolhsub without a semi-colon", + "output": [ + [ + "Character", + "&bsolhsub" + ] + ] + }, + { + "input": "⟈", + "description": "Named entity: bsolhsub; with a semi-colon", + "output": [ + [ + "Character", + "\u27c8" + ] + ] + }, + { + "input": "&bull", + "description": "Bad named entity: bull without a semi-colon", + "output": [ + [ + "Character", + "&bull" + ] + ] + }, + { + "input": "•", + "description": "Named entity: bull; with a semi-colon", + "output": [ + [ + "Character", + "\u2022" + ] + ] + }, + { + "input": "&bullet", + "description": "Bad named entity: bullet without a semi-colon", + "output": [ + [ + "Character", + "&bullet" + ] + ] + }, + { + "input": "•", + "description": "Named entity: bullet; with a semi-colon", + "output": [ + [ + "Character", + "\u2022" + ] + ] + }, + { + "input": "&bump", + "description": "Bad named entity: bump without a semi-colon", + "output": [ + [ + "Character", + "&bump" + ] + ] + }, + { + "input": "≎", + "description": "Named entity: bump; with a semi-colon", + "output": [ + [ + "Character", + "\u224e" + ] + ] + }, + { + "input": "&bumpE", + "description": "Bad named entity: bumpE without a semi-colon", + "output": [ + [ + "Character", + "&bumpE" + ] + ] + }, + { + "input": "⪮", + "description": "Named entity: bumpE; with a semi-colon", + "output": [ + [ + "Character", + "\u2aae" + ] + ] + }, + { + "input": "&bumpe", + "description": "Bad named entity: bumpe without a semi-colon", + "output": [ + [ + "Character", + "&bumpe" + ] + ] + }, + { + "input": "≏", + "description": "Named entity: bumpe; with a semi-colon", + "output": [ + [ + "Character", + "\u224f" + ] + ] + }, + { + "input": "&bumpeq", + "description": "Bad named entity: bumpeq without a semi-colon", + "output": [ + [ + "Character", + "&bumpeq" + ] + ] + }, + { + "input": "≏", + "description": "Named entity: bumpeq; with a semi-colon", + "output": [ + [ + "Character", + "\u224f" + ] + ] + }, + { + "input": "&cacute", + "description": "Bad named entity: cacute without a semi-colon", + "output": [ + [ + "Character", + "&cacute" + ] + ] + }, + { + "input": "ć", + "description": "Named entity: cacute; with a semi-colon", + "output": [ + [ + "Character", + "\u0107" + ] + ] + }, + { + "input": "&cap", + "description": "Bad named entity: cap without a semi-colon", + "output": [ + [ + "Character", + "&cap" + ] + ] + }, + { + "input": "∩", + "description": "Named entity: cap; with a semi-colon", + "output": [ + [ + "Character", + "\u2229" + ] + ] + }, + { + "input": "&capand", + "description": "Bad named entity: capand without a semi-colon", + "output": [ + [ + "Character", + "&capand" + ] + ] + }, + { + "input": "⩄", + "description": "Named entity: capand; with a semi-colon", + "output": [ + [ + "Character", + "\u2a44" + ] + ] + }, + { + "input": "&capbrcup", + "description": "Bad named entity: capbrcup without a semi-colon", + "output": [ + [ + "Character", + "&capbrcup" + ] + ] + }, + { + "input": "⩉", + "description": "Named entity: capbrcup; with a semi-colon", + "output": [ + [ + "Character", + "\u2a49" + ] + ] + }, + { + "input": "&capcap", + "description": "Bad named entity: capcap without a semi-colon", + "output": [ + [ + "Character", + "&capcap" + ] + ] + }, + { + "input": "⩋", + "description": "Named entity: capcap; with a semi-colon", + "output": [ + [ + "Character", + "\u2a4b" + ] + ] + }, + { + "input": "&capcup", + "description": "Bad named entity: capcup without a semi-colon", + "output": [ + [ + "Character", + "&capcup" + ] + ] + }, + { + "input": "⩇", + "description": "Named entity: capcup; with a semi-colon", + "output": [ + [ + "Character", + "\u2a47" + ] + ] + }, + { + "input": "&capdot", + "description": "Bad named entity: capdot without a semi-colon", + "output": [ + [ + "Character", + "&capdot" + ] + ] + }, + { + "input": "⩀", + "description": "Named entity: capdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a40" + ] + ] + }, + { + "input": "&caps", + "description": "Bad named entity: caps without a semi-colon", + "output": [ + [ + "Character", + "&caps" + ] + ] + }, + { + "input": "∩︀", + "description": "Named entity: caps; with a semi-colon", + "output": [ + [ + "Character", + "\u2229\ufe00" + ] + ] + }, + { + "input": "&caret", + "description": "Bad named entity: caret without a semi-colon", + "output": [ + [ + "Character", + "&caret" + ] + ] + }, + { + "input": "⁁", + "description": "Named entity: caret; with a semi-colon", + "output": [ + [ + "Character", + "\u2041" + ] + ] + }, + { + "input": "&caron", + "description": "Bad named entity: caron without a semi-colon", + "output": [ + [ + "Character", + "&caron" + ] + ] + }, + { + "input": "ˇ", + "description": "Named entity: caron; with a semi-colon", + "output": [ + [ + "Character", + "\u02c7" + ] + ] + }, + { + "input": "&ccaps", + "description": "Bad named entity: ccaps without a semi-colon", + "output": [ + [ + "Character", + "&ccaps" + ] + ] + }, + { + "input": "⩍", + "description": "Named entity: ccaps; with a semi-colon", + "output": [ + [ + "Character", + "\u2a4d" + ] + ] + }, + { + "input": "&ccaron", + "description": "Bad named entity: ccaron without a semi-colon", + "output": [ + [ + "Character", + "&ccaron" + ] + ] + }, + { + "input": "č", + "description": "Named entity: ccaron; with a semi-colon", + "output": [ + [ + "Character", + "\u010d" + ] + ] + }, + { + "input": "ç", + "description": "Named entity: ccedil without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e7" + ] + ] + }, + { + "input": "ç", + "description": "Named entity: ccedil; with a semi-colon", + "output": [ + [ + "Character", + "\u00e7" + ] + ] + }, + { + "input": "&ccirc", + "description": "Bad named entity: ccirc without a semi-colon", + "output": [ + [ + "Character", + "&ccirc" + ] + ] + }, + { + "input": "ĉ", + "description": "Named entity: ccirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0109" + ] + ] + }, + { + "input": "&ccups", + "description": "Bad named entity: ccups without a semi-colon", + "output": [ + [ + "Character", + "&ccups" + ] + ] + }, + { + "input": "⩌", + "description": "Named entity: ccups; with a semi-colon", + "output": [ + [ + "Character", + "\u2a4c" + ] + ] + }, + { + "input": "&ccupssm", + "description": "Bad named entity: ccupssm without a semi-colon", + "output": [ + [ + "Character", + "&ccupssm" + ] + ] + }, + { + "input": "⩐", + "description": "Named entity: ccupssm; with a semi-colon", + "output": [ + [ + "Character", + "\u2a50" + ] + ] + }, + { + "input": "&cdot", + "description": "Bad named entity: cdot without a semi-colon", + "output": [ + [ + "Character", + "&cdot" + ] + ] + }, + { + "input": "ċ", + "description": "Named entity: cdot; with a semi-colon", + "output": [ + [ + "Character", + "\u010b" + ] + ] + }, + { + "input": "¸", + "description": "Named entity: cedil without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b8" + ] + ] + }, + { + "input": "¸", + "description": "Named entity: cedil; with a semi-colon", + "output": [ + [ + "Character", + "\u00b8" + ] + ] + }, + { + "input": "&cemptyv", + "description": "Bad named entity: cemptyv without a semi-colon", + "output": [ + [ + "Character", + "&cemptyv" + ] + ] + }, + { + "input": "⦲", + "description": "Named entity: cemptyv; with a semi-colon", + "output": [ + [ + "Character", + "\u29b2" + ] + ] + }, + { + "input": "¢", + "description": "Named entity: cent without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a2" + ] + ] + }, + { + "input": "¢", + "description": "Named entity: cent; with a semi-colon", + "output": [ + [ + "Character", + "\u00a2" + ] + ] + }, + { + "input": "·", + "description": "Named entity: centerdot; with a semi-colon", + "output": [ + [ + "Character", + "\u00b7" + ] + ] + }, + { + "input": "&cfr", + "description": "Bad named entity: cfr without a semi-colon", + "output": [ + [ + "Character", + "&cfr" + ] + ] + }, + { + "input": "𝔠", + "description": "Named entity: cfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd20" + ] + ] + }, + { + "input": "&chcy", + "description": "Bad named entity: chcy without a semi-colon", + "output": [ + [ + "Character", + "&chcy" + ] + ] + }, + { + "input": "ч", + "description": "Named entity: chcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0447" + ] + ] + }, + { + "input": "&check", + "description": "Bad named entity: check without a semi-colon", + "output": [ + [ + "Character", + "&check" + ] + ] + }, + { + "input": "✓", + "description": "Named entity: check; with a semi-colon", + "output": [ + [ + "Character", + "\u2713" + ] + ] + }, + { + "input": "&checkmark", + "description": "Bad named entity: checkmark without a semi-colon", + "output": [ + [ + "Character", + "&checkmark" + ] + ] + }, + { + "input": "✓", + "description": "Named entity: checkmark; with a semi-colon", + "output": [ + [ + "Character", + "\u2713" + ] + ] + }, + { + "input": "&chi", + "description": "Bad named entity: chi without a semi-colon", + "output": [ + [ + "Character", + "&chi" + ] + ] + }, + { + "input": "χ", + "description": "Named entity: chi; with a semi-colon", + "output": [ + [ + "Character", + "\u03c7" + ] + ] + }, + { + "input": "&cir", + "description": "Bad named entity: cir without a semi-colon", + "output": [ + [ + "Character", + "&cir" + ] + ] + }, + { + "input": "○", + "description": "Named entity: cir; with a semi-colon", + "output": [ + [ + "Character", + "\u25cb" + ] + ] + }, + { + "input": "&cirE", + "description": "Bad named entity: cirE without a semi-colon", + "output": [ + [ + "Character", + "&cirE" + ] + ] + }, + { + "input": "⧃", + "description": "Named entity: cirE; with a semi-colon", + "output": [ + [ + "Character", + "\u29c3" + ] + ] + }, + { + "input": "&circ", + "description": "Bad named entity: circ without a semi-colon", + "output": [ + [ + "Character", + "&circ" + ] + ] + }, + { + "input": "ˆ", + "description": "Named entity: circ; with a semi-colon", + "output": [ + [ + "Character", + "\u02c6" + ] + ] + }, + { + "input": "&circeq", + "description": "Bad named entity: circeq without a semi-colon", + "output": [ + [ + "Character", + "&circeq" + ] + ] + }, + { + "input": "≗", + "description": "Named entity: circeq; with a semi-colon", + "output": [ + [ + "Character", + "\u2257" + ] + ] + }, + { + "input": "&circlearrowleft", + "description": "Bad named entity: circlearrowleft without a semi-colon", + "output": [ + [ + "Character", + "&circlearrowleft" + ] + ] + }, + { + "input": "↺", + "description": "Named entity: circlearrowleft; with a semi-colon", + "output": [ + [ + "Character", + "\u21ba" + ] + ] + }, + { + "input": "&circlearrowright", + "description": "Bad named entity: circlearrowright without a semi-colon", + "output": [ + [ + "Character", + "&circlearrowright" + ] + ] + }, + { + "input": "↻", + "description": "Named entity: circlearrowright; with a semi-colon", + "output": [ + [ + "Character", + "\u21bb" + ] + ] + }, + { + "input": "&circledR", + "description": "Bad named entity: circledR without a semi-colon", + "output": [ + [ + "Character", + "&circledR" + ] + ] + }, + { + "input": "®", + "description": "Named entity: circledR; with a semi-colon", + "output": [ + [ + "Character", + "\u00ae" + ] + ] + }, + { + "input": "&circledS", + "description": "Bad named entity: circledS without a semi-colon", + "output": [ + [ + "Character", + "&circledS" + ] + ] + }, + { + "input": "Ⓢ", + "description": "Named entity: circledS; with a semi-colon", + "output": [ + [ + "Character", + "\u24c8" + ] + ] + }, + { + "input": "&circledast", + "description": "Bad named entity: circledast without a semi-colon", + "output": [ + [ + "Character", + "&circledast" + ] + ] + }, + { + "input": "⊛", + "description": "Named entity: circledast; with a semi-colon", + "output": [ + [ + "Character", + "\u229b" + ] + ] + }, + { + "input": "&circledcirc", + "description": "Bad named entity: circledcirc without a semi-colon", + "output": [ + [ + "Character", + "&circledcirc" + ] + ] + }, + { + "input": "⊚", + "description": "Named entity: circledcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u229a" + ] + ] + }, + { + "input": "&circleddash", + "description": "Bad named entity: circleddash without a semi-colon", + "output": [ + [ + "Character", + "&circleddash" + ] + ] + }, + { + "input": "⊝", + "description": "Named entity: circleddash; with a semi-colon", + "output": [ + [ + "Character", + "\u229d" + ] + ] + }, + { + "input": "&cire", + "description": "Bad named entity: cire without a semi-colon", + "output": [ + [ + "Character", + "&cire" + ] + ] + }, + { + "input": "≗", + "description": "Named entity: cire; with a semi-colon", + "output": [ + [ + "Character", + "\u2257" + ] + ] + }, + { + "input": "&cirfnint", + "description": "Bad named entity: cirfnint without a semi-colon", + "output": [ + [ + "Character", + "&cirfnint" + ] + ] + }, + { + "input": "⨐", + "description": "Named entity: cirfnint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a10" + ] + ] + }, + { + "input": "&cirmid", + "description": "Bad named entity: cirmid without a semi-colon", + "output": [ + [ + "Character", + "&cirmid" + ] + ] + }, + { + "input": "⫯", + "description": "Named entity: cirmid; with a semi-colon", + "output": [ + [ + "Character", + "\u2aef" + ] + ] + }, + { + "input": "&cirscir", + "description": "Bad named entity: cirscir without a semi-colon", + "output": [ + [ + "Character", + "&cirscir" + ] + ] + }, + { + "input": "⧂", + "description": "Named entity: cirscir; with a semi-colon", + "output": [ + [ + "Character", + "\u29c2" + ] + ] + }, + { + "input": "&clubs", + "description": "Bad named entity: clubs without a semi-colon", + "output": [ + [ + "Character", + "&clubs" + ] + ] + }, + { + "input": "♣", + "description": "Named entity: clubs; with a semi-colon", + "output": [ + [ + "Character", + "\u2663" + ] + ] + }, + { + "input": "&clubsuit", + "description": "Bad named entity: clubsuit without a semi-colon", + "output": [ + [ + "Character", + "&clubsuit" + ] + ] + }, + { + "input": "♣", + "description": "Named entity: clubsuit; with a semi-colon", + "output": [ + [ + "Character", + "\u2663" + ] + ] + }, + { + "input": "&colon", + "description": "Bad named entity: colon without a semi-colon", + "output": [ + [ + "Character", + "&colon" + ] + ] + }, + { + "input": ":", + "description": "Named entity: colon; with a semi-colon", + "output": [ + [ + "Character", + ":" + ] + ] + }, + { + "input": "&colone", + "description": "Bad named entity: colone without a semi-colon", + "output": [ + [ + "Character", + "&colone" + ] + ] + }, + { + "input": "≔", + "description": "Named entity: colone; with a semi-colon", + "output": [ + [ + "Character", + "\u2254" + ] + ] + }, + { + "input": "&coloneq", + "description": "Bad named entity: coloneq without a semi-colon", + "output": [ + [ + "Character", + "&coloneq" + ] + ] + }, + { + "input": "≔", + "description": "Named entity: coloneq; with a semi-colon", + "output": [ + [ + "Character", + "\u2254" + ] + ] + }, + { + "input": "&comma", + "description": "Bad named entity: comma without a semi-colon", + "output": [ + [ + "Character", + "&comma" + ] + ] + }, + { + "input": ",", + "description": "Named entity: comma; with a semi-colon", + "output": [ + [ + "Character", + "," + ] + ] + }, + { + "input": "&commat", + "description": "Bad named entity: commat without a semi-colon", + "output": [ + [ + "Character", + "&commat" + ] + ] + }, + { + "input": "@", + "description": "Named entity: commat; with a semi-colon", + "output": [ + [ + "Character", + "@" + ] + ] + }, + { + "input": "&comp", + "description": "Bad named entity: comp without a semi-colon", + "output": [ + [ + "Character", + "&comp" + ] + ] + }, + { + "input": "∁", + "description": "Named entity: comp; with a semi-colon", + "output": [ + [ + "Character", + "\u2201" + ] + ] + }, + { + "input": "&compfn", + "description": "Bad named entity: compfn without a semi-colon", + "output": [ + [ + "Character", + "&compfn" + ] + ] + }, + { + "input": "∘", + "description": "Named entity: compfn; with a semi-colon", + "output": [ + [ + "Character", + "\u2218" + ] + ] + }, + { + "input": "&complement", + "description": "Bad named entity: complement without a semi-colon", + "output": [ + [ + "Character", + "&complement" + ] + ] + }, + { + "input": "∁", + "description": "Named entity: complement; with a semi-colon", + "output": [ + [ + "Character", + "\u2201" + ] + ] + }, + { + "input": "&complexes", + "description": "Bad named entity: complexes without a semi-colon", + "output": [ + [ + "Character", + "&complexes" + ] + ] + }, + { + "input": "ℂ", + "description": "Named entity: complexes; with a semi-colon", + "output": [ + [ + "Character", + "\u2102" + ] + ] + }, + { + "input": "&cong", + "description": "Bad named entity: cong without a semi-colon", + "output": [ + [ + "Character", + "&cong" + ] + ] + }, + { + "input": "≅", + "description": "Named entity: cong; with a semi-colon", + "output": [ + [ + "Character", + "\u2245" + ] + ] + }, + { + "input": "&congdot", + "description": "Bad named entity: congdot without a semi-colon", + "output": [ + [ + "Character", + "&congdot" + ] + ] + }, + { + "input": "⩭", + "description": "Named entity: congdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a6d" + ] + ] + }, + { + "input": "&conint", + "description": "Bad named entity: conint without a semi-colon", + "output": [ + [ + "Character", + "&conint" + ] + ] + }, + { + "input": "∮", + "description": "Named entity: conint; with a semi-colon", + "output": [ + [ + "Character", + "\u222e" + ] + ] + }, + { + "input": "&copf", + "description": "Bad named entity: copf without a semi-colon", + "output": [ + [ + "Character", + "&copf" + ] + ] + }, + { + "input": "𝕔", + "description": "Named entity: copf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd54" + ] + ] + }, + { + "input": "&coprod", + "description": "Bad named entity: coprod without a semi-colon", + "output": [ + [ + "Character", + "&coprod" + ] + ] + }, + { + "input": "∐", + "description": "Named entity: coprod; with a semi-colon", + "output": [ + [ + "Character", + "\u2210" + ] + ] + }, + { + "input": "©", + "description": "Named entity: copy without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a9" + ] + ] + }, + { + "input": "©", + "description": "Named entity: copy; with a semi-colon", + "output": [ + [ + "Character", + "\u00a9" + ] + ] + }, + { + "input": "℗", + "description": "Named entity: copysr; with a semi-colon", + "output": [ + [ + "Character", + "\u2117" + ] + ] + }, + { + "input": "&crarr", + "description": "Bad named entity: crarr without a semi-colon", + "output": [ + [ + "Character", + "&crarr" + ] + ] + }, + { + "input": "↵", + "description": "Named entity: crarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21b5" + ] + ] + }, + { + "input": "&cross", + "description": "Bad named entity: cross without a semi-colon", + "output": [ + [ + "Character", + "&cross" + ] + ] + }, + { + "input": "✗", + "description": "Named entity: cross; with a semi-colon", + "output": [ + [ + "Character", + "\u2717" + ] + ] + }, + { + "input": "&cscr", + "description": "Bad named entity: cscr without a semi-colon", + "output": [ + [ + "Character", + "&cscr" + ] + ] + }, + { + "input": "𝒸", + "description": "Named entity: cscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb8" + ] + ] + }, + { + "input": "&csub", + "description": "Bad named entity: csub without a semi-colon", + "output": [ + [ + "Character", + "&csub" + ] + ] + }, + { + "input": "⫏", + "description": "Named entity: csub; with a semi-colon", + "output": [ + [ + "Character", + "\u2acf" + ] + ] + }, + { + "input": "&csube", + "description": "Bad named entity: csube without a semi-colon", + "output": [ + [ + "Character", + "&csube" + ] + ] + }, + { + "input": "⫑", + "description": "Named entity: csube; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad1" + ] + ] + }, + { + "input": "&csup", + "description": "Bad named entity: csup without a semi-colon", + "output": [ + [ + "Character", + "&csup" + ] + ] + }, + { + "input": "⫐", + "description": "Named entity: csup; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad0" + ] + ] + }, + { + "input": "&csupe", + "description": "Bad named entity: csupe without a semi-colon", + "output": [ + [ + "Character", + "&csupe" + ] + ] + }, + { + "input": "⫒", + "description": "Named entity: csupe; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad2" + ] + ] + }, + { + "input": "&ctdot", + "description": "Bad named entity: ctdot without a semi-colon", + "output": [ + [ + "Character", + "&ctdot" + ] + ] + }, + { + "input": "⋯", + "description": "Named entity: ctdot; with a semi-colon", + "output": [ + [ + "Character", + "\u22ef" + ] + ] + }, + { + "input": "&cudarrl", + "description": "Bad named entity: cudarrl without a semi-colon", + "output": [ + [ + "Character", + "&cudarrl" + ] + ] + }, + { + "input": "⤸", + "description": "Named entity: cudarrl; with a semi-colon", + "output": [ + [ + "Character", + "\u2938" + ] + ] + }, + { + "input": "&cudarrr", + "description": "Bad named entity: cudarrr without a semi-colon", + "output": [ + [ + "Character", + "&cudarrr" + ] + ] + }, + { + "input": "⤵", + "description": "Named entity: cudarrr; with a semi-colon", + "output": [ + [ + "Character", + "\u2935" + ] + ] + }, + { + "input": "&cuepr", + "description": "Bad named entity: cuepr without a semi-colon", + "output": [ + [ + "Character", + "&cuepr" + ] + ] + }, + { + "input": "⋞", + "description": "Named entity: cuepr; with a semi-colon", + "output": [ + [ + "Character", + "\u22de" + ] + ] + }, + { + "input": "&cuesc", + "description": "Bad named entity: cuesc without a semi-colon", + "output": [ + [ + "Character", + "&cuesc" + ] + ] + }, + { + "input": "⋟", + "description": "Named entity: cuesc; with a semi-colon", + "output": [ + [ + "Character", + "\u22df" + ] + ] + }, + { + "input": "&cularr", + "description": "Bad named entity: cularr without a semi-colon", + "output": [ + [ + "Character", + "&cularr" + ] + ] + }, + { + "input": "↶", + "description": "Named entity: cularr; with a semi-colon", + "output": [ + [ + "Character", + "\u21b6" + ] + ] + }, + { + "input": "&cularrp", + "description": "Bad named entity: cularrp without a semi-colon", + "output": [ + [ + "Character", + "&cularrp" + ] + ] + }, + { + "input": "⤽", + "description": "Named entity: cularrp; with a semi-colon", + "output": [ + [ + "Character", + "\u293d" + ] + ] + }, + { + "input": "&cup", + "description": "Bad named entity: cup without a semi-colon", + "output": [ + [ + "Character", + "&cup" + ] + ] + }, + { + "input": "∪", + "description": "Named entity: cup; with a semi-colon", + "output": [ + [ + "Character", + "\u222a" + ] + ] + }, + { + "input": "&cupbrcap", + "description": "Bad named entity: cupbrcap without a semi-colon", + "output": [ + [ + "Character", + "&cupbrcap" + ] + ] + }, + { + "input": "⩈", + "description": "Named entity: cupbrcap; with a semi-colon", + "output": [ + [ + "Character", + "\u2a48" + ] + ] + }, + { + "input": "&cupcap", + "description": "Bad named entity: cupcap without a semi-colon", + "output": [ + [ + "Character", + "&cupcap" + ] + ] + }, + { + "input": "⩆", + "description": "Named entity: cupcap; with a semi-colon", + "output": [ + [ + "Character", + "\u2a46" + ] + ] + }, + { + "input": "&cupcup", + "description": "Bad named entity: cupcup without a semi-colon", + "output": [ + [ + "Character", + "&cupcup" + ] + ] + }, + { + "input": "⩊", + "description": "Named entity: cupcup; with a semi-colon", + "output": [ + [ + "Character", + "\u2a4a" + ] + ] + }, + { + "input": "&cupdot", + "description": "Bad named entity: cupdot without a semi-colon", + "output": [ + [ + "Character", + "&cupdot" + ] + ] + }, + { + "input": "⊍", + "description": "Named entity: cupdot; with a semi-colon", + "output": [ + [ + "Character", + "\u228d" + ] + ] + }, + { + "input": "&cupor", + "description": "Bad named entity: cupor without a semi-colon", + "output": [ + [ + "Character", + "&cupor" + ] + ] + }, + { + "input": "⩅", + "description": "Named entity: cupor; with a semi-colon", + "output": [ + [ + "Character", + "\u2a45" + ] + ] + }, + { + "input": "&cups", + "description": "Bad named entity: cups without a semi-colon", + "output": [ + [ + "Character", + "&cups" + ] + ] + }, + { + "input": "∪︀", + "description": "Named entity: cups; with a semi-colon", + "output": [ + [ + "Character", + "\u222a\ufe00" + ] + ] + }, + { + "input": "&curarr", + "description": "Bad named entity: curarr without a semi-colon", + "output": [ + [ + "Character", + "&curarr" + ] + ] + }, + { + "input": "↷", + "description": "Named entity: curarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21b7" + ] + ] + }, + { + "input": "&curarrm", + "description": "Bad named entity: curarrm without a semi-colon", + "output": [ + [ + "Character", + "&curarrm" + ] + ] + }, + { + "input": "⤼", + "description": "Named entity: curarrm; with a semi-colon", + "output": [ + [ + "Character", + "\u293c" + ] + ] + }, + { + "input": "&curlyeqprec", + "description": "Bad named entity: curlyeqprec without a semi-colon", + "output": [ + [ + "Character", + "&curlyeqprec" + ] + ] + }, + { + "input": "⋞", + "description": "Named entity: curlyeqprec; with a semi-colon", + "output": [ + [ + "Character", + "\u22de" + ] + ] + }, + { + "input": "&curlyeqsucc", + "description": "Bad named entity: curlyeqsucc without a semi-colon", + "output": [ + [ + "Character", + "&curlyeqsucc" + ] + ] + }, + { + "input": "⋟", + "description": "Named entity: curlyeqsucc; with a semi-colon", + "output": [ + [ + "Character", + "\u22df" + ] + ] + }, + { + "input": "&curlyvee", + "description": "Bad named entity: curlyvee without a semi-colon", + "output": [ + [ + "Character", + "&curlyvee" + ] + ] + }, + { + "input": "⋎", + "description": "Named entity: curlyvee; with a semi-colon", + "output": [ + [ + "Character", + "\u22ce" + ] + ] + }, + { + "input": "&curlywedge", + "description": "Bad named entity: curlywedge without a semi-colon", + "output": [ + [ + "Character", + "&curlywedge" + ] + ] + }, + { + "input": "⋏", + "description": "Named entity: curlywedge; with a semi-colon", + "output": [ + [ + "Character", + "\u22cf" + ] + ] + }, + { + "input": "¤", + "description": "Named entity: curren without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a4" + ] + ] + }, + { + "input": "¤", + "description": "Named entity: curren; with a semi-colon", + "output": [ + [ + "Character", + "\u00a4" + ] + ] + }, + { + "input": "&curvearrowleft", + "description": "Bad named entity: curvearrowleft without a semi-colon", + "output": [ + [ + "Character", + "&curvearrowleft" + ] + ] + }, + { + "input": "↶", + "description": "Named entity: curvearrowleft; with a semi-colon", + "output": [ + [ + "Character", + "\u21b6" + ] + ] + }, + { + "input": "&curvearrowright", + "description": "Bad named entity: curvearrowright without a semi-colon", + "output": [ + [ + "Character", + "&curvearrowright" + ] + ] + }, + { + "input": "↷", + "description": "Named entity: curvearrowright; with a semi-colon", + "output": [ + [ + "Character", + "\u21b7" + ] + ] + }, + { + "input": "&cuvee", + "description": "Bad named entity: cuvee without a semi-colon", + "output": [ + [ + "Character", + "&cuvee" + ] + ] + }, + { + "input": "⋎", + "description": "Named entity: cuvee; with a semi-colon", + "output": [ + [ + "Character", + "\u22ce" + ] + ] + }, + { + "input": "&cuwed", + "description": "Bad named entity: cuwed without a semi-colon", + "output": [ + [ + "Character", + "&cuwed" + ] + ] + }, + { + "input": "⋏", + "description": "Named entity: cuwed; with a semi-colon", + "output": [ + [ + "Character", + "\u22cf" + ] + ] + }, + { + "input": "&cwconint", + "description": "Bad named entity: cwconint without a semi-colon", + "output": [ + [ + "Character", + "&cwconint" + ] + ] + }, + { + "input": "∲", + "description": "Named entity: cwconint; with a semi-colon", + "output": [ + [ + "Character", + "\u2232" + ] + ] + }, + { + "input": "&cwint", + "description": "Bad named entity: cwint without a semi-colon", + "output": [ + [ + "Character", + "&cwint" + ] + ] + }, + { + "input": "∱", + "description": "Named entity: cwint; with a semi-colon", + "output": [ + [ + "Character", + "\u2231" + ] + ] + }, + { + "input": "&cylcty", + "description": "Bad named entity: cylcty without a semi-colon", + "output": [ + [ + "Character", + "&cylcty" + ] + ] + }, + { + "input": "⌭", + "description": "Named entity: cylcty; with a semi-colon", + "output": [ + [ + "Character", + "\u232d" + ] + ] + }, + { + "input": "&dArr", + "description": "Bad named entity: dArr without a semi-colon", + "output": [ + [ + "Character", + "&dArr" + ] + ] + }, + { + "input": "⇓", + "description": "Named entity: dArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d3" + ] + ] + }, + { + "input": "&dHar", + "description": "Bad named entity: dHar without a semi-colon", + "output": [ + [ + "Character", + "&dHar" + ] + ] + }, + { + "input": "⥥", + "description": "Named entity: dHar; with a semi-colon", + "output": [ + [ + "Character", + "\u2965" + ] + ] + }, + { + "input": "&dagger", + "description": "Bad named entity: dagger without a semi-colon", + "output": [ + [ + "Character", + "&dagger" + ] + ] + }, + { + "input": "†", + "description": "Named entity: dagger; with a semi-colon", + "output": [ + [ + "Character", + "\u2020" + ] + ] + }, + { + "input": "&daleth", + "description": "Bad named entity: daleth without a semi-colon", + "output": [ + [ + "Character", + "&daleth" + ] + ] + }, + { + "input": "ℸ", + "description": "Named entity: daleth; with a semi-colon", + "output": [ + [ + "Character", + "\u2138" + ] + ] + }, + { + "input": "&darr", + "description": "Bad named entity: darr without a semi-colon", + "output": [ + [ + "Character", + "&darr" + ] + ] + }, + { + "input": "↓", + "description": "Named entity: darr; with a semi-colon", + "output": [ + [ + "Character", + "\u2193" + ] + ] + }, + { + "input": "&dash", + "description": "Bad named entity: dash without a semi-colon", + "output": [ + [ + "Character", + "&dash" + ] + ] + }, + { + "input": "‐", + "description": "Named entity: dash; with a semi-colon", + "output": [ + [ + "Character", + "\u2010" + ] + ] + }, + { + "input": "&dashv", + "description": "Bad named entity: dashv without a semi-colon", + "output": [ + [ + "Character", + "&dashv" + ] + ] + }, + { + "input": "⊣", + "description": "Named entity: dashv; with a semi-colon", + "output": [ + [ + "Character", + "\u22a3" + ] + ] + }, + { + "input": "&dbkarow", + "description": "Bad named entity: dbkarow without a semi-colon", + "output": [ + [ + "Character", + "&dbkarow" + ] + ] + }, + { + "input": "⤏", + "description": "Named entity: dbkarow; with a semi-colon", + "output": [ + [ + "Character", + "\u290f" + ] + ] + }, + { + "input": "&dblac", + "description": "Bad named entity: dblac without a semi-colon", + "output": [ + [ + "Character", + "&dblac" + ] + ] + }, + { + "input": "˝", + "description": "Named entity: dblac; with a semi-colon", + "output": [ + [ + "Character", + "\u02dd" + ] + ] + }, + { + "input": "&dcaron", + "description": "Bad named entity: dcaron without a semi-colon", + "output": [ + [ + "Character", + "&dcaron" + ] + ] + }, + { + "input": "ď", + "description": "Named entity: dcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u010f" + ] + ] + }, + { + "input": "&dcy", + "description": "Bad named entity: dcy without a semi-colon", + "output": [ + [ + "Character", + "&dcy" + ] + ] + }, + { + "input": "д", + "description": "Named entity: dcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0434" + ] + ] + }, + { + "input": "&dd", + "description": "Bad named entity: dd without a semi-colon", + "output": [ + [ + "Character", + "&dd" + ] + ] + }, + { + "input": "ⅆ", + "description": "Named entity: dd; with a semi-colon", + "output": [ + [ + "Character", + "\u2146" + ] + ] + }, + { + "input": "&ddagger", + "description": "Bad named entity: ddagger without a semi-colon", + "output": [ + [ + "Character", + "&ddagger" + ] + ] + }, + { + "input": "‡", + "description": "Named entity: ddagger; with a semi-colon", + "output": [ + [ + "Character", + "\u2021" + ] + ] + }, + { + "input": "&ddarr", + "description": "Bad named entity: ddarr without a semi-colon", + "output": [ + [ + "Character", + "&ddarr" + ] + ] + }, + { + "input": "⇊", + "description": "Named entity: ddarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21ca" + ] + ] + }, + { + "input": "&ddotseq", + "description": "Bad named entity: ddotseq without a semi-colon", + "output": [ + [ + "Character", + "&ddotseq" + ] + ] + }, + { + "input": "⩷", + "description": "Named entity: ddotseq; with a semi-colon", + "output": [ + [ + "Character", + "\u2a77" + ] + ] + }, + { + "input": "°", + "description": "Named entity: deg without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b0" + ] + ] + }, + { + "input": "°", + "description": "Named entity: deg; with a semi-colon", + "output": [ + [ + "Character", + "\u00b0" + ] + ] + }, + { + "input": "&delta", + "description": "Bad named entity: delta without a semi-colon", + "output": [ + [ + "Character", + "&delta" + ] + ] + }, + { + "input": "δ", + "description": "Named entity: delta; with a semi-colon", + "output": [ + [ + "Character", + "\u03b4" + ] + ] + }, + { + "input": "&demptyv", + "description": "Bad named entity: demptyv without a semi-colon", + "output": [ + [ + "Character", + "&demptyv" + ] + ] + }, + { + "input": "⦱", + "description": "Named entity: demptyv; with a semi-colon", + "output": [ + [ + "Character", + "\u29b1" + ] + ] + }, + { + "input": "&dfisht", + "description": "Bad named entity: dfisht without a semi-colon", + "output": [ + [ + "Character", + "&dfisht" + ] + ] + }, + { + "input": "⥿", + "description": "Named entity: dfisht; with a semi-colon", + "output": [ + [ + "Character", + "\u297f" + ] + ] + }, + { + "input": "&dfr", + "description": "Bad named entity: dfr without a semi-colon", + "output": [ + [ + "Character", + "&dfr" + ] + ] + }, + { + "input": "𝔡", + "description": "Named entity: dfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd21" + ] + ] + }, + { + "input": "&dharl", + "description": "Bad named entity: dharl without a semi-colon", + "output": [ + [ + "Character", + "&dharl" + ] + ] + }, + { + "input": "⇃", + "description": "Named entity: dharl; with a semi-colon", + "output": [ + [ + "Character", + "\u21c3" + ] + ] + }, + { + "input": "&dharr", + "description": "Bad named entity: dharr without a semi-colon", + "output": [ + [ + "Character", + "&dharr" + ] + ] + }, + { + "input": "⇂", + "description": "Named entity: dharr; with a semi-colon", + "output": [ + [ + "Character", + "\u21c2" + ] + ] + }, + { + "input": "&diam", + "description": "Bad named entity: diam without a semi-colon", + "output": [ + [ + "Character", + "&diam" + ] + ] + }, + { + "input": "⋄", + "description": "Named entity: diam; with a semi-colon", + "output": [ + [ + "Character", + "\u22c4" + ] + ] + }, + { + "input": "&diamond", + "description": "Bad named entity: diamond without a semi-colon", + "output": [ + [ + "Character", + "&diamond" + ] + ] + }, + { + "input": "⋄", + "description": "Named entity: diamond; with a semi-colon", + "output": [ + [ + "Character", + "\u22c4" + ] + ] + }, + { + "input": "&diamondsuit", + "description": "Bad named entity: diamondsuit without a semi-colon", + "output": [ + [ + "Character", + "&diamondsuit" + ] + ] + }, + { + "input": "♦", + "description": "Named entity: diamondsuit; with a semi-colon", + "output": [ + [ + "Character", + "\u2666" + ] + ] + }, + { + "input": "&diams", + "description": "Bad named entity: diams without a semi-colon", + "output": [ + [ + "Character", + "&diams" + ] + ] + }, + { + "input": "♦", + "description": "Named entity: diams; with a semi-colon", + "output": [ + [ + "Character", + "\u2666" + ] + ] + }, + { + "input": "&die", + "description": "Bad named entity: die without a semi-colon", + "output": [ + [ + "Character", + "&die" + ] + ] + }, + { + "input": "¨", + "description": "Named entity: die; with a semi-colon", + "output": [ + [ + "Character", + "\u00a8" + ] + ] + }, + { + "input": "&digamma", + "description": "Bad named entity: digamma without a semi-colon", + "output": [ + [ + "Character", + "&digamma" + ] + ] + }, + { + "input": "ϝ", + "description": "Named entity: digamma; with a semi-colon", + "output": [ + [ + "Character", + "\u03dd" + ] + ] + }, + { + "input": "&disin", + "description": "Bad named entity: disin without a semi-colon", + "output": [ + [ + "Character", + "&disin" + ] + ] + }, + { + "input": "⋲", + "description": "Named entity: disin; with a semi-colon", + "output": [ + [ + "Character", + "\u22f2" + ] + ] + }, + { + "input": "&div", + "description": "Bad named entity: div without a semi-colon", + "output": [ + [ + "Character", + "&div" + ] + ] + }, + { + "input": "÷", + "description": "Named entity: div; with a semi-colon", + "output": [ + [ + "Character", + "\u00f7" + ] + ] + }, + { + "input": "÷", + "description": "Named entity: divide without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f7" + ] + ] + }, + { + "input": "÷", + "description": "Named entity: divide; with a semi-colon", + "output": [ + [ + "Character", + "\u00f7" + ] + ] + }, + { + "input": "⋇", + "description": "Named entity: divideontimes; with a semi-colon", + "output": [ + [ + "Character", + "\u22c7" + ] + ] + }, + { + "input": "&divonx", + "description": "Bad named entity: divonx without a semi-colon", + "output": [ + [ + "Character", + "&divonx" + ] + ] + }, + { + "input": "⋇", + "description": "Named entity: divonx; with a semi-colon", + "output": [ + [ + "Character", + "\u22c7" + ] + ] + }, + { + "input": "&djcy", + "description": "Bad named entity: djcy without a semi-colon", + "output": [ + [ + "Character", + "&djcy" + ] + ] + }, + { + "input": "ђ", + "description": "Named entity: djcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0452" + ] + ] + }, + { + "input": "&dlcorn", + "description": "Bad named entity: dlcorn without a semi-colon", + "output": [ + [ + "Character", + "&dlcorn" + ] + ] + }, + { + "input": "⌞", + "description": "Named entity: dlcorn; with a semi-colon", + "output": [ + [ + "Character", + "\u231e" + ] + ] + }, + { + "input": "&dlcrop", + "description": "Bad named entity: dlcrop without a semi-colon", + "output": [ + [ + "Character", + "&dlcrop" + ] + ] + }, + { + "input": "⌍", + "description": "Named entity: dlcrop; with a semi-colon", + "output": [ + [ + "Character", + "\u230d" + ] + ] + }, + { + "input": "&dollar", + "description": "Bad named entity: dollar without a semi-colon", + "output": [ + [ + "Character", + "&dollar" + ] + ] + }, + { + "input": "$", + "description": "Named entity: dollar; with a semi-colon", + "output": [ + [ + "Character", + "$" + ] + ] + }, + { + "input": "&dopf", + "description": "Bad named entity: dopf without a semi-colon", + "output": [ + [ + "Character", + "&dopf" + ] + ] + }, + { + "input": "𝕕", + "description": "Named entity: dopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd55" + ] + ] + }, + { + "input": "&dot", + "description": "Bad named entity: dot without a semi-colon", + "output": [ + [ + "Character", + "&dot" + ] + ] + }, + { + "input": "˙", + "description": "Named entity: dot; with a semi-colon", + "output": [ + [ + "Character", + "\u02d9" + ] + ] + }, + { + "input": "&doteq", + "description": "Bad named entity: doteq without a semi-colon", + "output": [ + [ + "Character", + "&doteq" + ] + ] + }, + { + "input": "≐", + "description": "Named entity: doteq; with a semi-colon", + "output": [ + [ + "Character", + "\u2250" + ] + ] + }, + { + "input": "&doteqdot", + "description": "Bad named entity: doteqdot without a semi-colon", + "output": [ + [ + "Character", + "&doteqdot" + ] + ] + }, + { + "input": "≑", + "description": "Named entity: doteqdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2251" + ] + ] + }, + { + "input": "&dotminus", + "description": "Bad named entity: dotminus without a semi-colon", + "output": [ + [ + "Character", + "&dotminus" + ] + ] + }, + { + "input": "∸", + "description": "Named entity: dotminus; with a semi-colon", + "output": [ + [ + "Character", + "\u2238" + ] + ] + }, + { + "input": "&dotplus", + "description": "Bad named entity: dotplus without a semi-colon", + "output": [ + [ + "Character", + "&dotplus" + ] + ] + }, + { + "input": "∔", + "description": "Named entity: dotplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2214" + ] + ] + }, + { + "input": "&dotsquare", + "description": "Bad named entity: dotsquare without a semi-colon", + "output": [ + [ + "Character", + "&dotsquare" + ] + ] + }, + { + "input": "⊡", + "description": "Named entity: dotsquare; with a semi-colon", + "output": [ + [ + "Character", + "\u22a1" + ] + ] + }, + { + "input": "&doublebarwedge", + "description": "Bad named entity: doublebarwedge without a semi-colon", + "output": [ + [ + "Character", + "&doublebarwedge" + ] + ] + }, + { + "input": "⌆", + "description": "Named entity: doublebarwedge; with a semi-colon", + "output": [ + [ + "Character", + "\u2306" + ] + ] + }, + { + "input": "&downarrow", + "description": "Bad named entity: downarrow without a semi-colon", + "output": [ + [ + "Character", + "&downarrow" + ] + ] + }, + { + "input": "↓", + "description": "Named entity: downarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2193" + ] + ] + }, + { + "input": "&downdownarrows", + "description": "Bad named entity: downdownarrows without a semi-colon", + "output": [ + [ + "Character", + "&downdownarrows" + ] + ] + }, + { + "input": "⇊", + "description": "Named entity: downdownarrows; with a semi-colon", + "output": [ + [ + "Character", + "\u21ca" + ] + ] + }, + { + "input": "&downharpoonleft", + "description": "Bad named entity: downharpoonleft without a semi-colon", + "output": [ + [ + "Character", + "&downharpoonleft" + ] + ] + }, + { + "input": "⇃", + "description": "Named entity: downharpoonleft; with a semi-colon", + "output": [ + [ + "Character", + "\u21c3" + ] + ] + }, + { + "input": "&downharpoonright", + "description": "Bad named entity: downharpoonright without a semi-colon", + "output": [ + [ + "Character", + "&downharpoonright" + ] + ] + }, + { + "input": "⇂", + "description": "Named entity: downharpoonright; with a semi-colon", + "output": [ + [ + "Character", + "\u21c2" + ] + ] + }, + { + "input": "&drbkarow", + "description": "Bad named entity: drbkarow without a semi-colon", + "output": [ + [ + "Character", + "&drbkarow" + ] + ] + }, + { + "input": "⤐", + "description": "Named entity: drbkarow; with a semi-colon", + "output": [ + [ + "Character", + "\u2910" + ] + ] + }, + { + "input": "&drcorn", + "description": "Bad named entity: drcorn without a semi-colon", + "output": [ + [ + "Character", + "&drcorn" + ] + ] + }, + { + "input": "⌟", + "description": "Named entity: drcorn; with a semi-colon", + "output": [ + [ + "Character", + "\u231f" + ] + ] + }, + { + "input": "&drcrop", + "description": "Bad named entity: drcrop without a semi-colon", + "output": [ + [ + "Character", + "&drcrop" + ] + ] + }, + { + "input": "⌌", + "description": "Named entity: drcrop; with a semi-colon", + "output": [ + [ + "Character", + "\u230c" + ] + ] + }, + { + "input": "&dscr", + "description": "Bad named entity: dscr without a semi-colon", + "output": [ + [ + "Character", + "&dscr" + ] + ] + }, + { + "input": "𝒹", + "description": "Named entity: dscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcb9" + ] + ] + }, + { + "input": "&dscy", + "description": "Bad named entity: dscy without a semi-colon", + "output": [ + [ + "Character", + "&dscy" + ] + ] + }, + { + "input": "ѕ", + "description": "Named entity: dscy; with a semi-colon", + "output": [ + [ + "Character", + "\u0455" + ] + ] + }, + { + "input": "&dsol", + "description": "Bad named entity: dsol without a semi-colon", + "output": [ + [ + "Character", + "&dsol" + ] + ] + }, + { + "input": "⧶", + "description": "Named entity: dsol; with a semi-colon", + "output": [ + [ + "Character", + "\u29f6" + ] + ] + }, + { + "input": "&dstrok", + "description": "Bad named entity: dstrok without a semi-colon", + "output": [ + [ + "Character", + "&dstrok" + ] + ] + }, + { + "input": "đ", + "description": "Named entity: dstrok; with a semi-colon", + "output": [ + [ + "Character", + "\u0111" + ] + ] + }, + { + "input": "&dtdot", + "description": "Bad named entity: dtdot without a semi-colon", + "output": [ + [ + "Character", + "&dtdot" + ] + ] + }, + { + "input": "⋱", + "description": "Named entity: dtdot; with a semi-colon", + "output": [ + [ + "Character", + "\u22f1" + ] + ] + }, + { + "input": "&dtri", + "description": "Bad named entity: dtri without a semi-colon", + "output": [ + [ + "Character", + "&dtri" + ] + ] + }, + { + "input": "▿", + "description": "Named entity: dtri; with a semi-colon", + "output": [ + [ + "Character", + "\u25bf" + ] + ] + }, + { + "input": "&dtrif", + "description": "Bad named entity: dtrif without a semi-colon", + "output": [ + [ + "Character", + "&dtrif" + ] + ] + }, + { + "input": "▾", + "description": "Named entity: dtrif; with a semi-colon", + "output": [ + [ + "Character", + "\u25be" + ] + ] + }, + { + "input": "&duarr", + "description": "Bad named entity: duarr without a semi-colon", + "output": [ + [ + "Character", + "&duarr" + ] + ] + }, + { + "input": "⇵", + "description": "Named entity: duarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21f5" + ] + ] + }, + { + "input": "&duhar", + "description": "Bad named entity: duhar without a semi-colon", + "output": [ + [ + "Character", + "&duhar" + ] + ] + }, + { + "input": "⥯", + "description": "Named entity: duhar; with a semi-colon", + "output": [ + [ + "Character", + "\u296f" + ] + ] + }, + { + "input": "&dwangle", + "description": "Bad named entity: dwangle without a semi-colon", + "output": [ + [ + "Character", + "&dwangle" + ] + ] + }, + { + "input": "⦦", + "description": "Named entity: dwangle; with a semi-colon", + "output": [ + [ + "Character", + "\u29a6" + ] + ] + }, + { + "input": "&dzcy", + "description": "Bad named entity: dzcy without a semi-colon", + "output": [ + [ + "Character", + "&dzcy" + ] + ] + }, + { + "input": "џ", + "description": "Named entity: dzcy; with a semi-colon", + "output": [ + [ + "Character", + "\u045f" + ] + ] + }, + { + "input": "&dzigrarr", + "description": "Bad named entity: dzigrarr without a semi-colon", + "output": [ + [ + "Character", + "&dzigrarr" + ] + ] + }, + { + "input": "⟿", + "description": "Named entity: dzigrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u27ff" + ] + ] + }, + { + "input": "&eDDot", + "description": "Bad named entity: eDDot without a semi-colon", + "output": [ + [ + "Character", + "&eDDot" + ] + ] + }, + { + "input": "⩷", + "description": "Named entity: eDDot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a77" + ] + ] + }, + { + "input": "&eDot", + "description": "Bad named entity: eDot without a semi-colon", + "output": [ + [ + "Character", + "&eDot" + ] + ] + }, + { + "input": "≑", + "description": "Named entity: eDot; with a semi-colon", + "output": [ + [ + "Character", + "\u2251" + ] + ] + }, + { + "input": "é", + "description": "Named entity: eacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e9" + ] + ] + }, + { + "input": "é", + "description": "Named entity: eacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00e9" + ] + ] + }, + { + "input": "&easter", + "description": "Bad named entity: easter without a semi-colon", + "output": [ + [ + "Character", + "&easter" + ] + ] + }, + { + "input": "⩮", + "description": "Named entity: easter; with a semi-colon", + "output": [ + [ + "Character", + "\u2a6e" + ] + ] + }, + { + "input": "&ecaron", + "description": "Bad named entity: ecaron without a semi-colon", + "output": [ + [ + "Character", + "&ecaron" + ] + ] + }, + { + "input": "ě", + "description": "Named entity: ecaron; with a semi-colon", + "output": [ + [ + "Character", + "\u011b" + ] + ] + }, + { + "input": "&ecir", + "description": "Bad named entity: ecir without a semi-colon", + "output": [ + [ + "Character", + "&ecir" + ] + ] + }, + { + "input": "≖", + "description": "Named entity: ecir; with a semi-colon", + "output": [ + [ + "Character", + "\u2256" + ] + ] + }, + { + "input": "ê", + "description": "Named entity: ecirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ea" + ] + ] + }, + { + "input": "ê", + "description": "Named entity: ecirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00ea" + ] + ] + }, + { + "input": "&ecolon", + "description": "Bad named entity: ecolon without a semi-colon", + "output": [ + [ + "Character", + "&ecolon" + ] + ] + }, + { + "input": "≕", + "description": "Named entity: ecolon; with a semi-colon", + "output": [ + [ + "Character", + "\u2255" + ] + ] + }, + { + "input": "&ecy", + "description": "Bad named entity: ecy without a semi-colon", + "output": [ + [ + "Character", + "&ecy" + ] + ] + }, + { + "input": "э", + "description": "Named entity: ecy; with a semi-colon", + "output": [ + [ + "Character", + "\u044d" + ] + ] + }, + { + "input": "&edot", + "description": "Bad named entity: edot without a semi-colon", + "output": [ + [ + "Character", + "&edot" + ] + ] + }, + { + "input": "ė", + "description": "Named entity: edot; with a semi-colon", + "output": [ + [ + "Character", + "\u0117" + ] + ] + }, + { + "input": "&ee", + "description": "Bad named entity: ee without a semi-colon", + "output": [ + [ + "Character", + "&ee" + ] + ] + }, + { + "input": "ⅇ", + "description": "Named entity: ee; with a semi-colon", + "output": [ + [ + "Character", + "\u2147" + ] + ] + }, + { + "input": "&efDot", + "description": "Bad named entity: efDot without a semi-colon", + "output": [ + [ + "Character", + "&efDot" + ] + ] + }, + { + "input": "≒", + "description": "Named entity: efDot; with a semi-colon", + "output": [ + [ + "Character", + "\u2252" + ] + ] + }, + { + "input": "&efr", + "description": "Bad named entity: efr without a semi-colon", + "output": [ + [ + "Character", + "&efr" + ] + ] + }, + { + "input": "𝔢", + "description": "Named entity: efr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd22" + ] + ] + }, + { + "input": "&eg", + "description": "Bad named entity: eg without a semi-colon", + "output": [ + [ + "Character", + "&eg" + ] + ] + }, + { + "input": "⪚", + "description": "Named entity: eg; with a semi-colon", + "output": [ + [ + "Character", + "\u2a9a" + ] + ] + }, + { + "input": "è", + "description": "Named entity: egrave without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00e8" + ] + ] + }, + { + "input": "è", + "description": "Named entity: egrave; with a semi-colon", + "output": [ + [ + "Character", + "\u00e8" + ] + ] + }, + { + "input": "&egs", + "description": "Bad named entity: egs without a semi-colon", + "output": [ + [ + "Character", + "&egs" + ] + ] + }, + { + "input": "⪖", + "description": "Named entity: egs; with a semi-colon", + "output": [ + [ + "Character", + "\u2a96" + ] + ] + }, + { + "input": "&egsdot", + "description": "Bad named entity: egsdot without a semi-colon", + "output": [ + [ + "Character", + "&egsdot" + ] + ] + }, + { + "input": "⪘", + "description": "Named entity: egsdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a98" + ] + ] + }, + { + "input": "&el", + "description": "Bad named entity: el without a semi-colon", + "output": [ + [ + "Character", + "&el" + ] + ] + }, + { + "input": "⪙", + "description": "Named entity: el; with a semi-colon", + "output": [ + [ + "Character", + "\u2a99" + ] + ] + }, + { + "input": "&elinters", + "description": "Bad named entity: elinters without a semi-colon", + "output": [ + [ + "Character", + "&elinters" + ] + ] + }, + { + "input": "⏧", + "description": "Named entity: elinters; with a semi-colon", + "output": [ + [ + "Character", + "\u23e7" + ] + ] + }, + { + "input": "&ell", + "description": "Bad named entity: ell without a semi-colon", + "output": [ + [ + "Character", + "&ell" + ] + ] + }, + { + "input": "ℓ", + "description": "Named entity: ell; with a semi-colon", + "output": [ + [ + "Character", + "\u2113" + ] + ] + }, + { + "input": "&els", + "description": "Bad named entity: els without a semi-colon", + "output": [ + [ + "Character", + "&els" + ] + ] + }, + { + "input": "⪕", + "description": "Named entity: els; with a semi-colon", + "output": [ + [ + "Character", + "\u2a95" + ] + ] + }, + { + "input": "&elsdot", + "description": "Bad named entity: elsdot without a semi-colon", + "output": [ + [ + "Character", + "&elsdot" + ] + ] + }, + { + "input": "⪗", + "description": "Named entity: elsdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a97" + ] + ] + }, + { + "input": "&emacr", + "description": "Bad named entity: emacr without a semi-colon", + "output": [ + [ + "Character", + "&emacr" + ] + ] + }, + { + "input": "ē", + "description": "Named entity: emacr; with a semi-colon", + "output": [ + [ + "Character", + "\u0113" + ] + ] + }, + { + "input": "&empty", + "description": "Bad named entity: empty without a semi-colon", + "output": [ + [ + "Character", + "&empty" + ] + ] + }, + { + "input": "∅", + "description": "Named entity: empty; with a semi-colon", + "output": [ + [ + "Character", + "\u2205" + ] + ] + }, + { + "input": "&emptyset", + "description": "Bad named entity: emptyset without a semi-colon", + "output": [ + [ + "Character", + "&emptyset" + ] + ] + }, + { + "input": "∅", + "description": "Named entity: emptyset; with a semi-colon", + "output": [ + [ + "Character", + "\u2205" + ] + ] + }, + { + "input": "&emptyv", + "description": "Bad named entity: emptyv without a semi-colon", + "output": [ + [ + "Character", + "&emptyv" + ] + ] + }, + { + "input": "∅", + "description": "Named entity: emptyv; with a semi-colon", + "output": [ + [ + "Character", + "\u2205" + ] + ] + }, + { + "input": "&emsp", + "description": "Bad named entity: emsp without a semi-colon", + "output": [ + [ + "Character", + "&emsp" + ] + ] + }, + { + "input": "&emsp13", + "description": "Bad named entity: emsp13 without a semi-colon", + "output": [ + [ + "Character", + "&emsp13" + ] + ] + }, + { + "input": " ", + "description": "Named entity: emsp13; with a semi-colon", + "output": [ + [ + "Character", + "\u2004" + ] + ] + }, + { + "input": "&emsp14", + "description": "Bad named entity: emsp14 without a semi-colon", + "output": [ + [ + "Character", + "&emsp14" + ] + ] + }, + { + "input": " ", + "description": "Named entity: emsp14; with a semi-colon", + "output": [ + [ + "Character", + "\u2005" + ] + ] + }, + { + "input": " ", + "description": "Named entity: emsp; with a semi-colon", + "output": [ + [ + "Character", + "\u2003" + ] + ] + }, + { + "input": "&eng", + "description": "Bad named entity: eng without a semi-colon", + "output": [ + [ + "Character", + "&eng" + ] + ] + }, + { + "input": "ŋ", + "description": "Named entity: eng; with a semi-colon", + "output": [ + [ + "Character", + "\u014b" + ] + ] + }, + { + "input": "&ensp", + "description": "Bad named entity: ensp without a semi-colon", + "output": [ + [ + "Character", + "&ensp" + ] + ] + }, + { + "input": " ", + "description": "Named entity: ensp; with a semi-colon", + "output": [ + [ + "Character", + "\u2002" + ] + ] + }, + { + "input": "&eogon", + "description": "Bad named entity: eogon without a semi-colon", + "output": [ + [ + "Character", + "&eogon" + ] + ] + }, + { + "input": "ę", + "description": "Named entity: eogon; with a semi-colon", + "output": [ + [ + "Character", + "\u0119" + ] + ] + }, + { + "input": "&eopf", + "description": "Bad named entity: eopf without a semi-colon", + "output": [ + [ + "Character", + "&eopf" + ] + ] + }, + { + "input": "𝕖", + "description": "Named entity: eopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd56" + ] + ] + }, + { + "input": "&epar", + "description": "Bad named entity: epar without a semi-colon", + "output": [ + [ + "Character", + "&epar" + ] + ] + }, + { + "input": "⋕", + "description": "Named entity: epar; with a semi-colon", + "output": [ + [ + "Character", + "\u22d5" + ] + ] + }, + { + "input": "&eparsl", + "description": "Bad named entity: eparsl without a semi-colon", + "output": [ + [ + "Character", + "&eparsl" + ] + ] + }, + { + "input": "⧣", + "description": "Named entity: eparsl; with a semi-colon", + "output": [ + [ + "Character", + "\u29e3" + ] + ] + }, + { + "input": "&eplus", + "description": "Bad named entity: eplus without a semi-colon", + "output": [ + [ + "Character", + "&eplus" + ] + ] + }, + { + "input": "⩱", + "description": "Named entity: eplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a71" + ] + ] + }, + { + "input": "&epsi", + "description": "Bad named entity: epsi without a semi-colon", + "output": [ + [ + "Character", + "&epsi" + ] + ] + }, + { + "input": "ε", + "description": "Named entity: epsi; with a semi-colon", + "output": [ + [ + "Character", + "\u03b5" + ] + ] + }, + { + "input": "&epsilon", + "description": "Bad named entity: epsilon without a semi-colon", + "output": [ + [ + "Character", + "&epsilon" + ] + ] + }, + { + "input": "ε", + "description": "Named entity: epsilon; with a semi-colon", + "output": [ + [ + "Character", + "\u03b5" + ] + ] + }, + { + "input": "&epsiv", + "description": "Bad named entity: epsiv without a semi-colon", + "output": [ + [ + "Character", + "&epsiv" + ] + ] + }, + { + "input": "ϵ", + "description": "Named entity: epsiv; with a semi-colon", + "output": [ + [ + "Character", + "\u03f5" + ] + ] + }, + { + "input": "&eqcirc", + "description": "Bad named entity: eqcirc without a semi-colon", + "output": [ + [ + "Character", + "&eqcirc" + ] + ] + }, + { + "input": "≖", + "description": "Named entity: eqcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u2256" + ] + ] + }, + { + "input": "&eqcolon", + "description": "Bad named entity: eqcolon without a semi-colon", + "output": [ + [ + "Character", + "&eqcolon" + ] + ] + }, + { + "input": "≕", + "description": "Named entity: eqcolon; with a semi-colon", + "output": [ + [ + "Character", + "\u2255" + ] + ] + }, + { + "input": "&eqsim", + "description": "Bad named entity: eqsim without a semi-colon", + "output": [ + [ + "Character", + "&eqsim" + ] + ] + }, + { + "input": "≂", + "description": "Named entity: eqsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2242" + ] + ] + }, + { + "input": "&eqslantgtr", + "description": "Bad named entity: eqslantgtr without a semi-colon", + "output": [ + [ + "Character", + "&eqslantgtr" + ] + ] + }, + { + "input": "⪖", + "description": "Named entity: eqslantgtr; with a semi-colon", + "output": [ + [ + "Character", + "\u2a96" + ] + ] + }, + { + "input": "&eqslantless", + "description": "Bad named entity: eqslantless without a semi-colon", + "output": [ + [ + "Character", + "&eqslantless" + ] + ] + }, + { + "input": "⪕", + "description": "Named entity: eqslantless; with a semi-colon", + "output": [ + [ + "Character", + "\u2a95" + ] + ] + }, + { + "input": "&equals", + "description": "Bad named entity: equals without a semi-colon", + "output": [ + [ + "Character", + "&equals" + ] + ] + }, + { + "input": "=", + "description": "Named entity: equals; with a semi-colon", + "output": [ + [ + "Character", + "=" + ] + ] + }, + { + "input": "&equest", + "description": "Bad named entity: equest without a semi-colon", + "output": [ + [ + "Character", + "&equest" + ] + ] + }, + { + "input": "≟", + "description": "Named entity: equest; with a semi-colon", + "output": [ + [ + "Character", + "\u225f" + ] + ] + }, + { + "input": "&equiv", + "description": "Bad named entity: equiv without a semi-colon", + "output": [ + [ + "Character", + "&equiv" + ] + ] + }, + { + "input": "≡", + "description": "Named entity: equiv; with a semi-colon", + "output": [ + [ + "Character", + "\u2261" + ] + ] + }, + { + "input": "&equivDD", + "description": "Bad named entity: equivDD without a semi-colon", + "output": [ + [ + "Character", + "&equivDD" + ] + ] + }, + { + "input": "⩸", + "description": "Named entity: equivDD; with a semi-colon", + "output": [ + [ + "Character", + "\u2a78" + ] + ] + }, + { + "input": "&eqvparsl", + "description": "Bad named entity: eqvparsl without a semi-colon", + "output": [ + [ + "Character", + "&eqvparsl" + ] + ] + }, + { + "input": "⧥", + "description": "Named entity: eqvparsl; with a semi-colon", + "output": [ + [ + "Character", + "\u29e5" + ] + ] + }, + { + "input": "&erDot", + "description": "Bad named entity: erDot without a semi-colon", + "output": [ + [ + "Character", + "&erDot" + ] + ] + }, + { + "input": "≓", + "description": "Named entity: erDot; with a semi-colon", + "output": [ + [ + "Character", + "\u2253" + ] + ] + }, + { + "input": "&erarr", + "description": "Bad named entity: erarr without a semi-colon", + "output": [ + [ + "Character", + "&erarr" + ] + ] + }, + { + "input": "⥱", + "description": "Named entity: erarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2971" + ] + ] + }, + { + "input": "&escr", + "description": "Bad named entity: escr without a semi-colon", + "output": [ + [ + "Character", + "&escr" + ] + ] + }, + { + "input": "ℯ", + "description": "Named entity: escr; with a semi-colon", + "output": [ + [ + "Character", + "\u212f" + ] + ] + }, + { + "input": "&esdot", + "description": "Bad named entity: esdot without a semi-colon", + "output": [ + [ + "Character", + "&esdot" + ] + ] + }, + { + "input": "≐", + "description": "Named entity: esdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2250" + ] + ] + }, + { + "input": "&esim", + "description": "Bad named entity: esim without a semi-colon", + "output": [ + [ + "Character", + "&esim" + ] + ] + }, + { + "input": "≂", + "description": "Named entity: esim; with a semi-colon", + "output": [ + [ + "Character", + "\u2242" + ] + ] + }, + { + "input": "&eta", + "description": "Bad named entity: eta without a semi-colon", + "output": [ + [ + "Character", + "&eta" + ] + ] + }, + { + "input": "η", + "description": "Named entity: eta; with a semi-colon", + "output": [ + [ + "Character", + "\u03b7" + ] + ] + }, + { + "input": "ð", + "description": "Named entity: eth without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f0" + ] + ] + }, + { + "input": "ð", + "description": "Named entity: eth; with a semi-colon", + "output": [ + [ + "Character", + "\u00f0" + ] + ] + }, + { + "input": "ë", + "description": "Named entity: euml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00eb" + ] + ] + }, + { + "input": "ë", + "description": "Named entity: euml; with a semi-colon", + "output": [ + [ + "Character", + "\u00eb" + ] + ] + }, + { + "input": "&euro", + "description": "Bad named entity: euro without a semi-colon", + "output": [ + [ + "Character", + "&euro" + ] + ] + }, + { + "input": "€", + "description": "Named entity: euro; with a semi-colon", + "output": [ + [ + "Character", + "\u20ac" + ] + ] + }, + { + "input": "&excl", + "description": "Bad named entity: excl without a semi-colon", + "output": [ + [ + "Character", + "&excl" + ] + ] + }, + { + "input": "!", + "description": "Named entity: excl; with a semi-colon", + "output": [ + [ + "Character", + "!" + ] + ] + }, + { + "input": "&exist", + "description": "Bad named entity: exist without a semi-colon", + "output": [ + [ + "Character", + "&exist" + ] + ] + }, + { + "input": "∃", + "description": "Named entity: exist; with a semi-colon", + "output": [ + [ + "Character", + "\u2203" + ] + ] + }, + { + "input": "&expectation", + "description": "Bad named entity: expectation without a semi-colon", + "output": [ + [ + "Character", + "&expectation" + ] + ] + }, + { + "input": "ℰ", + "description": "Named entity: expectation; with a semi-colon", + "output": [ + [ + "Character", + "\u2130" + ] + ] + }, + { + "input": "&exponentiale", + "description": "Bad named entity: exponentiale without a semi-colon", + "output": [ + [ + "Character", + "&exponentiale" + ] + ] + }, + { + "input": "ⅇ", + "description": "Named entity: exponentiale; with a semi-colon", + "output": [ + [ + "Character", + "\u2147" + ] + ] + }, + { + "input": "&fallingdotseq", + "description": "Bad named entity: fallingdotseq without a semi-colon", + "output": [ + [ + "Character", + "&fallingdotseq" + ] + ] + }, + { + "input": "≒", + "description": "Named entity: fallingdotseq; with a semi-colon", + "output": [ + [ + "Character", + "\u2252" + ] + ] + }, + { + "input": "&fcy", + "description": "Bad named entity: fcy without a semi-colon", + "output": [ + [ + "Character", + "&fcy" + ] + ] + }, + { + "input": "ф", + "description": "Named entity: fcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0444" + ] + ] + }, + { + "input": "&female", + "description": "Bad named entity: female without a semi-colon", + "output": [ + [ + "Character", + "&female" + ] + ] + }, + { + "input": "♀", + "description": "Named entity: female; with a semi-colon", + "output": [ + [ + "Character", + "\u2640" + ] + ] + }, + { + "input": "&ffilig", + "description": "Bad named entity: ffilig without a semi-colon", + "output": [ + [ + "Character", + "&ffilig" + ] + ] + }, + { + "input": "ffi", + "description": "Named entity: ffilig; with a semi-colon", + "output": [ + [ + "Character", + "\ufb03" + ] + ] + }, + { + "input": "&fflig", + "description": "Bad named entity: fflig without a semi-colon", + "output": [ + [ + "Character", + "&fflig" + ] + ] + }, + { + "input": "ff", + "description": "Named entity: fflig; with a semi-colon", + "output": [ + [ + "Character", + "\ufb00" + ] + ] + }, + { + "input": "&ffllig", + "description": "Bad named entity: ffllig without a semi-colon", + "output": [ + [ + "Character", + "&ffllig" + ] + ] + }, + { + "input": "ffl", + "description": "Named entity: ffllig; with a semi-colon", + "output": [ + [ + "Character", + "\ufb04" + ] + ] + }, + { + "input": "&ffr", + "description": "Bad named entity: ffr without a semi-colon", + "output": [ + [ + "Character", + "&ffr" + ] + ] + }, + { + "input": "𝔣", + "description": "Named entity: ffr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd23" + ] + ] + }, + { + "input": "&filig", + "description": "Bad named entity: filig without a semi-colon", + "output": [ + [ + "Character", + "&filig" + ] + ] + }, + { + "input": "fi", + "description": "Named entity: filig; with a semi-colon", + "output": [ + [ + "Character", + "\ufb01" + ] + ] + }, + { + "input": "&fjlig", + "description": "Bad named entity: fjlig without a semi-colon", + "output": [ + [ + "Character", + "&fjlig" + ] + ] + }, + { + "input": "fj", + "description": "Named entity: fjlig; with a semi-colon", + "output": [ + [ + "Character", + "fj" + ] + ] + }, + { + "input": "&flat", + "description": "Bad named entity: flat without a semi-colon", + "output": [ + [ + "Character", + "&flat" + ] + ] + }, + { + "input": "♭", + "description": "Named entity: flat; with a semi-colon", + "output": [ + [ + "Character", + "\u266d" + ] + ] + }, + { + "input": "&fllig", + "description": "Bad named entity: fllig without a semi-colon", + "output": [ + [ + "Character", + "&fllig" + ] + ] + }, + { + "input": "fl", + "description": "Named entity: fllig; with a semi-colon", + "output": [ + [ + "Character", + "\ufb02" + ] + ] + }, + { + "input": "&fltns", + "description": "Bad named entity: fltns without a semi-colon", + "output": [ + [ + "Character", + "&fltns" + ] + ] + }, + { + "input": "▱", + "description": "Named entity: fltns; with a semi-colon", + "output": [ + [ + "Character", + "\u25b1" + ] + ] + }, + { + "input": "&fnof", + "description": "Bad named entity: fnof without a semi-colon", + "output": [ + [ + "Character", + "&fnof" + ] + ] + }, + { + "input": "ƒ", + "description": "Named entity: fnof; with a semi-colon", + "output": [ + [ + "Character", + "\u0192" + ] + ] + }, + { + "input": "&fopf", + "description": "Bad named entity: fopf without a semi-colon", + "output": [ + [ + "Character", + "&fopf" + ] + ] + }, + { + "input": "𝕗", + "description": "Named entity: fopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd57" + ] + ] + }, + { + "input": "&forall", + "description": "Bad named entity: forall without a semi-colon", + "output": [ + [ + "Character", + "&forall" + ] + ] + }, + { + "input": "∀", + "description": "Named entity: forall; with a semi-colon", + "output": [ + [ + "Character", + "\u2200" + ] + ] + }, + { + "input": "&fork", + "description": "Bad named entity: fork without a semi-colon", + "output": [ + [ + "Character", + "&fork" + ] + ] + }, + { + "input": "⋔", + "description": "Named entity: fork; with a semi-colon", + "output": [ + [ + "Character", + "\u22d4" + ] + ] + }, + { + "input": "&forkv", + "description": "Bad named entity: forkv without a semi-colon", + "output": [ + [ + "Character", + "&forkv" + ] + ] + }, + { + "input": "⫙", + "description": "Named entity: forkv; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad9" + ] + ] + }, + { + "input": "&fpartint", + "description": "Bad named entity: fpartint without a semi-colon", + "output": [ + [ + "Character", + "&fpartint" + ] + ] + }, + { + "input": "⨍", + "description": "Named entity: fpartint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a0d" + ] + ] + }, + { + "input": "½", + "description": "Named entity: frac12 without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00bd" + ] + ] + }, + { + "input": "½", + "description": "Named entity: frac12; with a semi-colon", + "output": [ + [ + "Character", + "\u00bd" + ] + ] + }, + { + "input": "&frac13", + "description": "Bad named entity: frac13 without a semi-colon", + "output": [ + [ + "Character", + "&frac13" + ] + ] + }, + { + "input": "⅓", + "description": "Named entity: frac13; with a semi-colon", + "output": [ + [ + "Character", + "\u2153" + ] + ] + }, + { + "input": "¼", + "description": "Named entity: frac14 without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00bc" + ] + ] + }, + { + "input": "¼", + "description": "Named entity: frac14; with a semi-colon", + "output": [ + [ + "Character", + "\u00bc" + ] + ] + }, + { + "input": "&frac15", + "description": "Bad named entity: frac15 without a semi-colon", + "output": [ + [ + "Character", + "&frac15" + ] + ] + }, + { + "input": "⅕", + "description": "Named entity: frac15; with a semi-colon", + "output": [ + [ + "Character", + "\u2155" + ] + ] + }, + { + "input": "&frac16", + "description": "Bad named entity: frac16 without a semi-colon", + "output": [ + [ + "Character", + "&frac16" + ] + ] + }, + { + "input": "⅙", + "description": "Named entity: frac16; with a semi-colon", + "output": [ + [ + "Character", + "\u2159" + ] + ] + }, + { + "input": "&frac18", + "description": "Bad named entity: frac18 without a semi-colon", + "output": [ + [ + "Character", + "&frac18" + ] + ] + }, + { + "input": "⅛", + "description": "Named entity: frac18; with a semi-colon", + "output": [ + [ + "Character", + "\u215b" + ] + ] + }, + { + "input": "&frac23", + "description": "Bad named entity: frac23 without a semi-colon", + "output": [ + [ + "Character", + "&frac23" + ] + ] + }, + { + "input": "⅔", + "description": "Named entity: frac23; with a semi-colon", + "output": [ + [ + "Character", + "\u2154" + ] + ] + }, + { + "input": "&frac25", + "description": "Bad named entity: frac25 without a semi-colon", + "output": [ + [ + "Character", + "&frac25" + ] + ] + }, + { + "input": "⅖", + "description": "Named entity: frac25; with a semi-colon", + "output": [ + [ + "Character", + "\u2156" + ] + ] + }, + { + "input": "¾", + "description": "Named entity: frac34 without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00be" + ] + ] + }, + { + "input": "¾", + "description": "Named entity: frac34; with a semi-colon", + "output": [ + [ + "Character", + "\u00be" + ] + ] + }, + { + "input": "&frac35", + "description": "Bad named entity: frac35 without a semi-colon", + "output": [ + [ + "Character", + "&frac35" + ] + ] + }, + { + "input": "⅗", + "description": "Named entity: frac35; with a semi-colon", + "output": [ + [ + "Character", + "\u2157" + ] + ] + }, + { + "input": "&frac38", + "description": "Bad named entity: frac38 without a semi-colon", + "output": [ + [ + "Character", + "&frac38" + ] + ] + }, + { + "input": "⅜", + "description": "Named entity: frac38; with a semi-colon", + "output": [ + [ + "Character", + "\u215c" + ] + ] + }, + { + "input": "&frac45", + "description": "Bad named entity: frac45 without a semi-colon", + "output": [ + [ + "Character", + "&frac45" + ] + ] + }, + { + "input": "⅘", + "description": "Named entity: frac45; with a semi-colon", + "output": [ + [ + "Character", + "\u2158" + ] + ] + }, + { + "input": "&frac56", + "description": "Bad named entity: frac56 without a semi-colon", + "output": [ + [ + "Character", + "&frac56" + ] + ] + }, + { + "input": "⅚", + "description": "Named entity: frac56; with a semi-colon", + "output": [ + [ + "Character", + "\u215a" + ] + ] + }, + { + "input": "&frac58", + "description": "Bad named entity: frac58 without a semi-colon", + "output": [ + [ + "Character", + "&frac58" + ] + ] + }, + { + "input": "⅝", + "description": "Named entity: frac58; with a semi-colon", + "output": [ + [ + "Character", + "\u215d" + ] + ] + }, + { + "input": "&frac78", + "description": "Bad named entity: frac78 without a semi-colon", + "output": [ + [ + "Character", + "&frac78" + ] + ] + }, + { + "input": "⅞", + "description": "Named entity: frac78; with a semi-colon", + "output": [ + [ + "Character", + "\u215e" + ] + ] + }, + { + "input": "&frasl", + "description": "Bad named entity: frasl without a semi-colon", + "output": [ + [ + "Character", + "&frasl" + ] + ] + }, + { + "input": "⁄", + "description": "Named entity: frasl; with a semi-colon", + "output": [ + [ + "Character", + "\u2044" + ] + ] + }, + { + "input": "&frown", + "description": "Bad named entity: frown without a semi-colon", + "output": [ + [ + "Character", + "&frown" + ] + ] + }, + { + "input": "⌢", + "description": "Named entity: frown; with a semi-colon", + "output": [ + [ + "Character", + "\u2322" + ] + ] + }, + { + "input": "&fscr", + "description": "Bad named entity: fscr without a semi-colon", + "output": [ + [ + "Character", + "&fscr" + ] + ] + }, + { + "input": "𝒻", + "description": "Named entity: fscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcbb" + ] + ] + }, + { + "input": "&gE", + "description": "Bad named entity: gE without a semi-colon", + "output": [ + [ + "Character", + "&gE" + ] + ] + }, + { + "input": "≧", + "description": "Named entity: gE; with a semi-colon", + "output": [ + [ + "Character", + "\u2267" + ] + ] + }, + { + "input": "&gEl", + "description": "Bad named entity: gEl without a semi-colon", + "output": [ + [ + "Character", + "&gEl" + ] + ] + }, + { + "input": "⪌", + "description": "Named entity: gEl; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8c" + ] + ] + }, + { + "input": "&gacute", + "description": "Bad named entity: gacute without a semi-colon", + "output": [ + [ + "Character", + "&gacute" + ] + ] + }, + { + "input": "ǵ", + "description": "Named entity: gacute; with a semi-colon", + "output": [ + [ + "Character", + "\u01f5" + ] + ] + }, + { + "input": "&gamma", + "description": "Bad named entity: gamma without a semi-colon", + "output": [ + [ + "Character", + "&gamma" + ] + ] + }, + { + "input": "γ", + "description": "Named entity: gamma; with a semi-colon", + "output": [ + [ + "Character", + "\u03b3" + ] + ] + }, + { + "input": "&gammad", + "description": "Bad named entity: gammad without a semi-colon", + "output": [ + [ + "Character", + "&gammad" + ] + ] + }, + { + "input": "ϝ", + "description": "Named entity: gammad; with a semi-colon", + "output": [ + [ + "Character", + "\u03dd" + ] + ] + }, + { + "input": "&gap", + "description": "Bad named entity: gap without a semi-colon", + "output": [ + [ + "Character", + "&gap" + ] + ] + }, + { + "input": "⪆", + "description": "Named entity: gap; with a semi-colon", + "output": [ + [ + "Character", + "\u2a86" + ] + ] + }, + { + "input": "&gbreve", + "description": "Bad named entity: gbreve without a semi-colon", + "output": [ + [ + "Character", + "&gbreve" + ] + ] + }, + { + "input": "ğ", + "description": "Named entity: gbreve; with a semi-colon", + "output": [ + [ + "Character", + "\u011f" + ] + ] + }, + { + "input": "&gcirc", + "description": "Bad named entity: gcirc without a semi-colon", + "output": [ + [ + "Character", + "&gcirc" + ] + ] + }, + { + "input": "ĝ", + "description": "Named entity: gcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u011d" + ] + ] + }, + { + "input": "&gcy", + "description": "Bad named entity: gcy without a semi-colon", + "output": [ + [ + "Character", + "&gcy" + ] + ] + }, + { + "input": "г", + "description": "Named entity: gcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0433" + ] + ] + }, + { + "input": "&gdot", + "description": "Bad named entity: gdot without a semi-colon", + "output": [ + [ + "Character", + "&gdot" + ] + ] + }, + { + "input": "ġ", + "description": "Named entity: gdot; with a semi-colon", + "output": [ + [ + "Character", + "\u0121" + ] + ] + }, + { + "input": "&ge", + "description": "Bad named entity: ge without a semi-colon", + "output": [ + [ + "Character", + "&ge" + ] + ] + }, + { + "input": "≥", + "description": "Named entity: ge; with a semi-colon", + "output": [ + [ + "Character", + "\u2265" + ] + ] + }, + { + "input": "&gel", + "description": "Bad named entity: gel without a semi-colon", + "output": [ + [ + "Character", + "&gel" + ] + ] + }, + { + "input": "⋛", + "description": "Named entity: gel; with a semi-colon", + "output": [ + [ + "Character", + "\u22db" + ] + ] + }, + { + "input": "&geq", + "description": "Bad named entity: geq without a semi-colon", + "output": [ + [ + "Character", + "&geq" + ] + ] + }, + { + "input": "≥", + "description": "Named entity: geq; with a semi-colon", + "output": [ + [ + "Character", + "\u2265" + ] + ] + }, + { + "input": "&geqq", + "description": "Bad named entity: geqq without a semi-colon", + "output": [ + [ + "Character", + "&geqq" + ] + ] + }, + { + "input": "≧", + "description": "Named entity: geqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2267" + ] + ] + }, + { + "input": "&geqslant", + "description": "Bad named entity: geqslant without a semi-colon", + "output": [ + [ + "Character", + "&geqslant" + ] + ] + }, + { + "input": "⩾", + "description": "Named entity: geqslant; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7e" + ] + ] + }, + { + "input": "&ges", + "description": "Bad named entity: ges without a semi-colon", + "output": [ + [ + "Character", + "&ges" + ] + ] + }, + { + "input": "⩾", + "description": "Named entity: ges; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7e" + ] + ] + }, + { + "input": "&gescc", + "description": "Bad named entity: gescc without a semi-colon", + "output": [ + [ + "Character", + "&gescc" + ] + ] + }, + { + "input": "⪩", + "description": "Named entity: gescc; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa9" + ] + ] + }, + { + "input": "&gesdot", + "description": "Bad named entity: gesdot without a semi-colon", + "output": [ + [ + "Character", + "&gesdot" + ] + ] + }, + { + "input": "⪀", + "description": "Named entity: gesdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a80" + ] + ] + }, + { + "input": "&gesdoto", + "description": "Bad named entity: gesdoto without a semi-colon", + "output": [ + [ + "Character", + "&gesdoto" + ] + ] + }, + { + "input": "⪂", + "description": "Named entity: gesdoto; with a semi-colon", + "output": [ + [ + "Character", + "\u2a82" + ] + ] + }, + { + "input": "&gesdotol", + "description": "Bad named entity: gesdotol without a semi-colon", + "output": [ + [ + "Character", + "&gesdotol" + ] + ] + }, + { + "input": "⪄", + "description": "Named entity: gesdotol; with a semi-colon", + "output": [ + [ + "Character", + "\u2a84" + ] + ] + }, + { + "input": "&gesl", + "description": "Bad named entity: gesl without a semi-colon", + "output": [ + [ + "Character", + "&gesl" + ] + ] + }, + { + "input": "⋛︀", + "description": "Named entity: gesl; with a semi-colon", + "output": [ + [ + "Character", + "\u22db\ufe00" + ] + ] + }, + { + "input": "&gesles", + "description": "Bad named entity: gesles without a semi-colon", + "output": [ + [ + "Character", + "&gesles" + ] + ] + }, + { + "input": "⪔", + "description": "Named entity: gesles; with a semi-colon", + "output": [ + [ + "Character", + "\u2a94" + ] + ] + }, + { + "input": "&gfr", + "description": "Bad named entity: gfr without a semi-colon", + "output": [ + [ + "Character", + "&gfr" + ] + ] + }, + { + "input": "𝔤", + "description": "Named entity: gfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd24" + ] + ] + }, + { + "input": "&gg", + "description": "Bad named entity: gg without a semi-colon", + "output": [ + [ + "Character", + "&gg" + ] + ] + }, + { + "input": "≫", + "description": "Named entity: gg; with a semi-colon", + "output": [ + [ + "Character", + "\u226b" + ] + ] + }, + { + "input": "&ggg", + "description": "Bad named entity: ggg without a semi-colon", + "output": [ + [ + "Character", + "&ggg" + ] + ] + }, + { + "input": "⋙", + "description": "Named entity: ggg; with a semi-colon", + "output": [ + [ + "Character", + "\u22d9" + ] + ] + }, + { + "input": "&gimel", + "description": "Bad named entity: gimel without a semi-colon", + "output": [ + [ + "Character", + "&gimel" + ] + ] + }, + { + "input": "ℷ", + "description": "Named entity: gimel; with a semi-colon", + "output": [ + [ + "Character", + "\u2137" + ] + ] + }, + { + "input": "&gjcy", + "description": "Bad named entity: gjcy without a semi-colon", + "output": [ + [ + "Character", + "&gjcy" + ] + ] + }, + { + "input": "ѓ", + "description": "Named entity: gjcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0453" + ] + ] + }, + { + "input": "&gl", + "description": "Bad named entity: gl without a semi-colon", + "output": [ + [ + "Character", + "&gl" + ] + ] + }, + { + "input": "≷", + "description": "Named entity: gl; with a semi-colon", + "output": [ + [ + "Character", + "\u2277" + ] + ] + }, + { + "input": "&glE", + "description": "Bad named entity: glE without a semi-colon", + "output": [ + [ + "Character", + "&glE" + ] + ] + }, + { + "input": "⪒", + "description": "Named entity: glE; with a semi-colon", + "output": [ + [ + "Character", + "\u2a92" + ] + ] + }, + { + "input": "&gla", + "description": "Bad named entity: gla without a semi-colon", + "output": [ + [ + "Character", + "&gla" + ] + ] + }, + { + "input": "⪥", + "description": "Named entity: gla; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa5" + ] + ] + }, + { + "input": "&glj", + "description": "Bad named entity: glj without a semi-colon", + "output": [ + [ + "Character", + "&glj" + ] + ] + }, + { + "input": "⪤", + "description": "Named entity: glj; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa4" + ] + ] + }, + { + "input": "&gnE", + "description": "Bad named entity: gnE without a semi-colon", + "output": [ + [ + "Character", + "&gnE" + ] + ] + }, + { + "input": "≩", + "description": "Named entity: gnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2269" + ] + ] + }, + { + "input": "&gnap", + "description": "Bad named entity: gnap without a semi-colon", + "output": [ + [ + "Character", + "&gnap" + ] + ] + }, + { + "input": "⪊", + "description": "Named entity: gnap; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8a" + ] + ] + }, + { + "input": "&gnapprox", + "description": "Bad named entity: gnapprox without a semi-colon", + "output": [ + [ + "Character", + "&gnapprox" + ] + ] + }, + { + "input": "⪊", + "description": "Named entity: gnapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8a" + ] + ] + }, + { + "input": "&gne", + "description": "Bad named entity: gne without a semi-colon", + "output": [ + [ + "Character", + "&gne" + ] + ] + }, + { + "input": "⪈", + "description": "Named entity: gne; with a semi-colon", + "output": [ + [ + "Character", + "\u2a88" + ] + ] + }, + { + "input": "&gneq", + "description": "Bad named entity: gneq without a semi-colon", + "output": [ + [ + "Character", + "&gneq" + ] + ] + }, + { + "input": "⪈", + "description": "Named entity: gneq; with a semi-colon", + "output": [ + [ + "Character", + "\u2a88" + ] + ] + }, + { + "input": "&gneqq", + "description": "Bad named entity: gneqq without a semi-colon", + "output": [ + [ + "Character", + "&gneqq" + ] + ] + }, + { + "input": "≩", + "description": "Named entity: gneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2269" + ] + ] + }, + { + "input": "&gnsim", + "description": "Bad named entity: gnsim without a semi-colon", + "output": [ + [ + "Character", + "&gnsim" + ] + ] + }, + { + "input": "⋧", + "description": "Named entity: gnsim; with a semi-colon", + "output": [ + [ + "Character", + "\u22e7" + ] + ] + }, + { + "input": "&gopf", + "description": "Bad named entity: gopf without a semi-colon", + "output": [ + [ + "Character", + "&gopf" + ] + ] + }, + { + "input": "𝕘", + "description": "Named entity: gopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd58" + ] + ] + }, + { + "input": "&grave", + "description": "Bad named entity: grave without a semi-colon", + "output": [ + [ + "Character", + "&grave" + ] + ] + }, + { + "input": "`", + "description": "Named entity: grave; with a semi-colon", + "output": [ + [ + "Character", + "`" + ] + ] + }, + { + "input": "&gscr", + "description": "Bad named entity: gscr without a semi-colon", + "output": [ + [ + "Character", + "&gscr" + ] + ] + }, + { + "input": "ℊ", + "description": "Named entity: gscr; with a semi-colon", + "output": [ + [ + "Character", + "\u210a" + ] + ] + }, + { + "input": "&gsim", + "description": "Bad named entity: gsim without a semi-colon", + "output": [ + [ + "Character", + "&gsim" + ] + ] + }, + { + "input": "≳", + "description": "Named entity: gsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2273" + ] + ] + }, + { + "input": "&gsime", + "description": "Bad named entity: gsime without a semi-colon", + "output": [ + [ + "Character", + "&gsime" + ] + ] + }, + { + "input": "⪎", + "description": "Named entity: gsime; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8e" + ] + ] + }, + { + "input": "&gsiml", + "description": "Bad named entity: gsiml without a semi-colon", + "output": [ + [ + "Character", + "&gsiml" + ] + ] + }, + { + "input": "⪐", + "description": "Named entity: gsiml; with a semi-colon", + "output": [ + [ + "Character", + "\u2a90" + ] + ] + }, + { + "input": ">", + "description": "Named entity: gt without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + ">" + ] + ] + }, + { + "input": ">", + "description": "Named entity: gt; with a semi-colon", + "output": [ + [ + "Character", + ">" + ] + ] + }, + { + "input": "⪧", + "description": "Named entity: gtcc; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa7" + ] + ] + }, + { + "input": "⩺", + "description": "Named entity: gtcir; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7a" + ] + ] + }, + { + "input": "⋗", + "description": "Named entity: gtdot; with a semi-colon", + "output": [ + [ + "Character", + "\u22d7" + ] + ] + }, + { + "input": "⦕", + "description": "Named entity: gtlPar; with a semi-colon", + "output": [ + [ + "Character", + "\u2995" + ] + ] + }, + { + "input": "⩼", + "description": "Named entity: gtquest; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7c" + ] + ] + }, + { + "input": "⪆", + "description": "Named entity: gtrapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2a86" + ] + ] + }, + { + "input": "⥸", + "description": "Named entity: gtrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2978" + ] + ] + }, + { + "input": "⋗", + "description": "Named entity: gtrdot; with a semi-colon", + "output": [ + [ + "Character", + "\u22d7" + ] + ] + }, + { + "input": "⋛", + "description": "Named entity: gtreqless; with a semi-colon", + "output": [ + [ + "Character", + "\u22db" + ] + ] + }, + { + "input": "⪌", + "description": "Named entity: gtreqqless; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8c" + ] + ] + }, + { + "input": "≷", + "description": "Named entity: gtrless; with a semi-colon", + "output": [ + [ + "Character", + "\u2277" + ] + ] + }, + { + "input": "≳", + "description": "Named entity: gtrsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2273" + ] + ] + }, + { + "input": "&gvertneqq", + "description": "Bad named entity: gvertneqq without a semi-colon", + "output": [ + [ + "Character", + "&gvertneqq" + ] + ] + }, + { + "input": "≩︀", + "description": "Named entity: gvertneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2269\ufe00" + ] + ] + }, + { + "input": "&gvnE", + "description": "Bad named entity: gvnE without a semi-colon", + "output": [ + [ + "Character", + "&gvnE" + ] + ] + }, + { + "input": "≩︀", + "description": "Named entity: gvnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2269\ufe00" + ] + ] + }, + { + "input": "&hArr", + "description": "Bad named entity: hArr without a semi-colon", + "output": [ + [ + "Character", + "&hArr" + ] + ] + }, + { + "input": "⇔", + "description": "Named entity: hArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d4" + ] + ] + }, + { + "input": "&hairsp", + "description": "Bad named entity: hairsp without a semi-colon", + "output": [ + [ + "Character", + "&hairsp" + ] + ] + }, + { + "input": " ", + "description": "Named entity: hairsp; with a semi-colon", + "output": [ + [ + "Character", + "\u200a" + ] + ] + }, + { + "input": "&half", + "description": "Bad named entity: half without a semi-colon", + "output": [ + [ + "Character", + "&half" + ] + ] + }, + { + "input": "½", + "description": "Named entity: half; with a semi-colon", + "output": [ + [ + "Character", + "\u00bd" + ] + ] + }, + { + "input": "&hamilt", + "description": "Bad named entity: hamilt without a semi-colon", + "output": [ + [ + "Character", + "&hamilt" + ] + ] + }, + { + "input": "ℋ", + "description": "Named entity: hamilt; with a semi-colon", + "output": [ + [ + "Character", + "\u210b" + ] + ] + }, + { + "input": "&hardcy", + "description": "Bad named entity: hardcy without a semi-colon", + "output": [ + [ + "Character", + "&hardcy" + ] + ] + }, + { + "input": "ъ", + "description": "Named entity: hardcy; with a semi-colon", + "output": [ + [ + "Character", + "\u044a" + ] + ] + }, + { + "input": "&harr", + "description": "Bad named entity: harr without a semi-colon", + "output": [ + [ + "Character", + "&harr" + ] + ] + }, + { + "input": "↔", + "description": "Named entity: harr; with a semi-colon", + "output": [ + [ + "Character", + "\u2194" + ] + ] + }, + { + "input": "&harrcir", + "description": "Bad named entity: harrcir without a semi-colon", + "output": [ + [ + "Character", + "&harrcir" + ] + ] + }, + { + "input": "⥈", + "description": "Named entity: harrcir; with a semi-colon", + "output": [ + [ + "Character", + "\u2948" + ] + ] + }, + { + "input": "&harrw", + "description": "Bad named entity: harrw without a semi-colon", + "output": [ + [ + "Character", + "&harrw" + ] + ] + }, + { + "input": "↭", + "description": "Named entity: harrw; with a semi-colon", + "output": [ + [ + "Character", + "\u21ad" + ] + ] + }, + { + "input": "&hbar", + "description": "Bad named entity: hbar without a semi-colon", + "output": [ + [ + "Character", + "&hbar" + ] + ] + }, + { + "input": "ℏ", + "description": "Named entity: hbar; with a semi-colon", + "output": [ + [ + "Character", + "\u210f" + ] + ] + }, + { + "input": "&hcirc", + "description": "Bad named entity: hcirc without a semi-colon", + "output": [ + [ + "Character", + "&hcirc" + ] + ] + }, + { + "input": "ĥ", + "description": "Named entity: hcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0125" + ] + ] + }, + { + "input": "&hearts", + "description": "Bad named entity: hearts without a semi-colon", + "output": [ + [ + "Character", + "&hearts" + ] + ] + }, + { + "input": "♥", + "description": "Named entity: hearts; with a semi-colon", + "output": [ + [ + "Character", + "\u2665" + ] + ] + }, + { + "input": "&heartsuit", + "description": "Bad named entity: heartsuit without a semi-colon", + "output": [ + [ + "Character", + "&heartsuit" + ] + ] + }, + { + "input": "♥", + "description": "Named entity: heartsuit; with a semi-colon", + "output": [ + [ + "Character", + "\u2665" + ] + ] + }, + { + "input": "&hellip", + "description": "Bad named entity: hellip without a semi-colon", + "output": [ + [ + "Character", + "&hellip" + ] + ] + }, + { + "input": "…", + "description": "Named entity: hellip; with a semi-colon", + "output": [ + [ + "Character", + "\u2026" + ] + ] + }, + { + "input": "&hercon", + "description": "Bad named entity: hercon without a semi-colon", + "output": [ + [ + "Character", + "&hercon" + ] + ] + }, + { + "input": "⊹", + "description": "Named entity: hercon; with a semi-colon", + "output": [ + [ + "Character", + "\u22b9" + ] + ] + }, + { + "input": "&hfr", + "description": "Bad named entity: hfr without a semi-colon", + "output": [ + [ + "Character", + "&hfr" + ] + ] + }, + { + "input": "𝔥", + "description": "Named entity: hfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd25" + ] + ] + }, + { + "input": "&hksearow", + "description": "Bad named entity: hksearow without a semi-colon", + "output": [ + [ + "Character", + "&hksearow" + ] + ] + }, + { + "input": "⤥", + "description": "Named entity: hksearow; with a semi-colon", + "output": [ + [ + "Character", + "\u2925" + ] + ] + }, + { + "input": "&hkswarow", + "description": "Bad named entity: hkswarow without a semi-colon", + "output": [ + [ + "Character", + "&hkswarow" + ] + ] + }, + { + "input": "⤦", + "description": "Named entity: hkswarow; with a semi-colon", + "output": [ + [ + "Character", + "\u2926" + ] + ] + }, + { + "input": "&hoarr", + "description": "Bad named entity: hoarr without a semi-colon", + "output": [ + [ + "Character", + "&hoarr" + ] + ] + }, + { + "input": "⇿", + "description": "Named entity: hoarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21ff" + ] + ] + }, + { + "input": "&homtht", + "description": "Bad named entity: homtht without a semi-colon", + "output": [ + [ + "Character", + "&homtht" + ] + ] + }, + { + "input": "∻", + "description": "Named entity: homtht; with a semi-colon", + "output": [ + [ + "Character", + "\u223b" + ] + ] + }, + { + "input": "&hookleftarrow", + "description": "Bad named entity: hookleftarrow without a semi-colon", + "output": [ + [ + "Character", + "&hookleftarrow" + ] + ] + }, + { + "input": "↩", + "description": "Named entity: hookleftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21a9" + ] + ] + }, + { + "input": "&hookrightarrow", + "description": "Bad named entity: hookrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&hookrightarrow" + ] + ] + }, + { + "input": "↪", + "description": "Named entity: hookrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21aa" + ] + ] + }, + { + "input": "&hopf", + "description": "Bad named entity: hopf without a semi-colon", + "output": [ + [ + "Character", + "&hopf" + ] + ] + }, + { + "input": "𝕙", + "description": "Named entity: hopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd59" + ] + ] + }, + { + "input": "&horbar", + "description": "Bad named entity: horbar without a semi-colon", + "output": [ + [ + "Character", + "&horbar" + ] + ] + }, + { + "input": "―", + "description": "Named entity: horbar; with a semi-colon", + "output": [ + [ + "Character", + "\u2015" + ] + ] + }, + { + "input": "&hscr", + "description": "Bad named entity: hscr without a semi-colon", + "output": [ + [ + "Character", + "&hscr" + ] + ] + }, + { + "input": "𝒽", + "description": "Named entity: hscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcbd" + ] + ] + }, + { + "input": "&hslash", + "description": "Bad named entity: hslash without a semi-colon", + "output": [ + [ + "Character", + "&hslash" + ] + ] + }, + { + "input": "ℏ", + "description": "Named entity: hslash; with a semi-colon", + "output": [ + [ + "Character", + "\u210f" + ] + ] + }, + { + "input": "&hstrok", + "description": "Bad named entity: hstrok without a semi-colon", + "output": [ + [ + "Character", + "&hstrok" + ] + ] + }, + { + "input": "ħ", + "description": "Named entity: hstrok; with a semi-colon", + "output": [ + [ + "Character", + "\u0127" + ] + ] + }, + { + "input": "&hybull", + "description": "Bad named entity: hybull without a semi-colon", + "output": [ + [ + "Character", + "&hybull" + ] + ] + }, + { + "input": "⁃", + "description": "Named entity: hybull; with a semi-colon", + "output": [ + [ + "Character", + "\u2043" + ] + ] + }, + { + "input": "&hyphen", + "description": "Bad named entity: hyphen without a semi-colon", + "output": [ + [ + "Character", + "&hyphen" + ] + ] + }, + { + "input": "‐", + "description": "Named entity: hyphen; with a semi-colon", + "output": [ + [ + "Character", + "\u2010" + ] + ] + }, + { + "input": "í", + "description": "Named entity: iacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ed" + ] + ] + }, + { + "input": "í", + "description": "Named entity: iacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00ed" + ] + ] + }, + { + "input": "&ic", + "description": "Bad named entity: ic without a semi-colon", + "output": [ + [ + "Character", + "&ic" + ] + ] + }, + { + "input": "⁣", + "description": "Named entity: ic; with a semi-colon", + "output": [ + [ + "Character", + "\u2063" + ] + ] + }, + { + "input": "î", + "description": "Named entity: icirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ee" + ] + ] + }, + { + "input": "î", + "description": "Named entity: icirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00ee" + ] + ] + }, + { + "input": "&icy", + "description": "Bad named entity: icy without a semi-colon", + "output": [ + [ + "Character", + "&icy" + ] + ] + }, + { + "input": "и", + "description": "Named entity: icy; with a semi-colon", + "output": [ + [ + "Character", + "\u0438" + ] + ] + }, + { + "input": "&iecy", + "description": "Bad named entity: iecy without a semi-colon", + "output": [ + [ + "Character", + "&iecy" + ] + ] + }, + { + "input": "е", + "description": "Named entity: iecy; with a semi-colon", + "output": [ + [ + "Character", + "\u0435" + ] + ] + }, + { + "input": "¡", + "description": "Named entity: iexcl without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a1" + ] + ] + }, + { + "input": "¡", + "description": "Named entity: iexcl; with a semi-colon", + "output": [ + [ + "Character", + "\u00a1" + ] + ] + }, + { + "input": "&iff", + "description": "Bad named entity: iff without a semi-colon", + "output": [ + [ + "Character", + "&iff" + ] + ] + }, + { + "input": "⇔", + "description": "Named entity: iff; with a semi-colon", + "output": [ + [ + "Character", + "\u21d4" + ] + ] + }, + { + "input": "&ifr", + "description": "Bad named entity: ifr without a semi-colon", + "output": [ + [ + "Character", + "&ifr" + ] + ] + }, + { + "input": "𝔦", + "description": "Named entity: ifr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd26" + ] + ] + }, + { + "input": "ì", + "description": "Named entity: igrave without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ec" + ] + ] + }, + { + "input": "ì", + "description": "Named entity: igrave; with a semi-colon", + "output": [ + [ + "Character", + "\u00ec" + ] + ] + }, + { + "input": "&ii", + "description": "Bad named entity: ii without a semi-colon", + "output": [ + [ + "Character", + "&ii" + ] + ] + }, + { + "input": "ⅈ", + "description": "Named entity: ii; with a semi-colon", + "output": [ + [ + "Character", + "\u2148" + ] + ] + }, + { + "input": "&iiiint", + "description": "Bad named entity: iiiint without a semi-colon", + "output": [ + [ + "Character", + "&iiiint" + ] + ] + }, + { + "input": "⨌", + "description": "Named entity: iiiint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a0c" + ] + ] + }, + { + "input": "&iiint", + "description": "Bad named entity: iiint without a semi-colon", + "output": [ + [ + "Character", + "&iiint" + ] + ] + }, + { + "input": "∭", + "description": "Named entity: iiint; with a semi-colon", + "output": [ + [ + "Character", + "\u222d" + ] + ] + }, + { + "input": "&iinfin", + "description": "Bad named entity: iinfin without a semi-colon", + "output": [ + [ + "Character", + "&iinfin" + ] + ] + }, + { + "input": "⧜", + "description": "Named entity: iinfin; with a semi-colon", + "output": [ + [ + "Character", + "\u29dc" + ] + ] + }, + { + "input": "&iiota", + "description": "Bad named entity: iiota without a semi-colon", + "output": [ + [ + "Character", + "&iiota" + ] + ] + }, + { + "input": "℩", + "description": "Named entity: iiota; with a semi-colon", + "output": [ + [ + "Character", + "\u2129" + ] + ] + }, + { + "input": "&ijlig", + "description": "Bad named entity: ijlig without a semi-colon", + "output": [ + [ + "Character", + "&ijlig" + ] + ] + }, + { + "input": "ij", + "description": "Named entity: ijlig; with a semi-colon", + "output": [ + [ + "Character", + "\u0133" + ] + ] + }, + { + "input": "&imacr", + "description": "Bad named entity: imacr without a semi-colon", + "output": [ + [ + "Character", + "&imacr" + ] + ] + }, + { + "input": "ī", + "description": "Named entity: imacr; with a semi-colon", + "output": [ + [ + "Character", + "\u012b" + ] + ] + }, + { + "input": "&image", + "description": "Bad named entity: image without a semi-colon", + "output": [ + [ + "Character", + "&image" + ] + ] + }, + { + "input": "ℑ", + "description": "Named entity: image; with a semi-colon", + "output": [ + [ + "Character", + "\u2111" + ] + ] + }, + { + "input": "&imagline", + "description": "Bad named entity: imagline without a semi-colon", + "output": [ + [ + "Character", + "&imagline" + ] + ] + }, + { + "input": "ℐ", + "description": "Named entity: imagline; with a semi-colon", + "output": [ + [ + "Character", + "\u2110" + ] + ] + }, + { + "input": "&imagpart", + "description": "Bad named entity: imagpart without a semi-colon", + "output": [ + [ + "Character", + "&imagpart" + ] + ] + }, + { + "input": "ℑ", + "description": "Named entity: imagpart; with a semi-colon", + "output": [ + [ + "Character", + "\u2111" + ] + ] + }, + { + "input": "&imath", + "description": "Bad named entity: imath without a semi-colon", + "output": [ + [ + "Character", + "&imath" + ] + ] + }, + { + "input": "ı", + "description": "Named entity: imath; with a semi-colon", + "output": [ + [ + "Character", + "\u0131" + ] + ] + }, + { + "input": "&imof", + "description": "Bad named entity: imof without a semi-colon", + "output": [ + [ + "Character", + "&imof" + ] + ] + }, + { + "input": "⊷", + "description": "Named entity: imof; with a semi-colon", + "output": [ + [ + "Character", + "\u22b7" + ] + ] + }, + { + "input": "&imped", + "description": "Bad named entity: imped without a semi-colon", + "output": [ + [ + "Character", + "&imped" + ] + ] + }, + { + "input": "Ƶ", + "description": "Named entity: imped; with a semi-colon", + "output": [ + [ + "Character", + "\u01b5" + ] + ] + }, + { + "input": "&in", + "description": "Bad named entity: in without a semi-colon", + "output": [ + [ + "Character", + "&in" + ] + ] + }, + { + "input": "∈", + "description": "Named entity: in; with a semi-colon", + "output": [ + [ + "Character", + "\u2208" + ] + ] + }, + { + "input": "&incare", + "description": "Bad named entity: incare without a semi-colon", + "output": [ + [ + "Character", + "&incare" + ] + ] + }, + { + "input": "℅", + "description": "Named entity: incare; with a semi-colon", + "output": [ + [ + "Character", + "\u2105" + ] + ] + }, + { + "input": "&infin", + "description": "Bad named entity: infin without a semi-colon", + "output": [ + [ + "Character", + "&infin" + ] + ] + }, + { + "input": "∞", + "description": "Named entity: infin; with a semi-colon", + "output": [ + [ + "Character", + "\u221e" + ] + ] + }, + { + "input": "&infintie", + "description": "Bad named entity: infintie without a semi-colon", + "output": [ + [ + "Character", + "&infintie" + ] + ] + }, + { + "input": "⧝", + "description": "Named entity: infintie; with a semi-colon", + "output": [ + [ + "Character", + "\u29dd" + ] + ] + }, + { + "input": "&inodot", + "description": "Bad named entity: inodot without a semi-colon", + "output": [ + [ + "Character", + "&inodot" + ] + ] + }, + { + "input": "ı", + "description": "Named entity: inodot; with a semi-colon", + "output": [ + [ + "Character", + "\u0131" + ] + ] + }, + { + "input": "&int", + "description": "Bad named entity: int without a semi-colon", + "output": [ + [ + "Character", + "&int" + ] + ] + }, + { + "input": "∫", + "description": "Named entity: int; with a semi-colon", + "output": [ + [ + "Character", + "\u222b" + ] + ] + }, + { + "input": "&intcal", + "description": "Bad named entity: intcal without a semi-colon", + "output": [ + [ + "Character", + "&intcal" + ] + ] + }, + { + "input": "⊺", + "description": "Named entity: intcal; with a semi-colon", + "output": [ + [ + "Character", + "\u22ba" + ] + ] + }, + { + "input": "&integers", + "description": "Bad named entity: integers without a semi-colon", + "output": [ + [ + "Character", + "&integers" + ] + ] + }, + { + "input": "ℤ", + "description": "Named entity: integers; with a semi-colon", + "output": [ + [ + "Character", + "\u2124" + ] + ] + }, + { + "input": "&intercal", + "description": "Bad named entity: intercal without a semi-colon", + "output": [ + [ + "Character", + "&intercal" + ] + ] + }, + { + "input": "⊺", + "description": "Named entity: intercal; with a semi-colon", + "output": [ + [ + "Character", + "\u22ba" + ] + ] + }, + { + "input": "&intlarhk", + "description": "Bad named entity: intlarhk without a semi-colon", + "output": [ + [ + "Character", + "&intlarhk" + ] + ] + }, + { + "input": "⨗", + "description": "Named entity: intlarhk; with a semi-colon", + "output": [ + [ + "Character", + "\u2a17" + ] + ] + }, + { + "input": "&intprod", + "description": "Bad named entity: intprod without a semi-colon", + "output": [ + [ + "Character", + "&intprod" + ] + ] + }, + { + "input": "⨼", + "description": "Named entity: intprod; with a semi-colon", + "output": [ + [ + "Character", + "\u2a3c" + ] + ] + }, + { + "input": "&iocy", + "description": "Bad named entity: iocy without a semi-colon", + "output": [ + [ + "Character", + "&iocy" + ] + ] + }, + { + "input": "ё", + "description": "Named entity: iocy; with a semi-colon", + "output": [ + [ + "Character", + "\u0451" + ] + ] + }, + { + "input": "&iogon", + "description": "Bad named entity: iogon without a semi-colon", + "output": [ + [ + "Character", + "&iogon" + ] + ] + }, + { + "input": "į", + "description": "Named entity: iogon; with a semi-colon", + "output": [ + [ + "Character", + "\u012f" + ] + ] + }, + { + "input": "&iopf", + "description": "Bad named entity: iopf without a semi-colon", + "output": [ + [ + "Character", + "&iopf" + ] + ] + }, + { + "input": "𝕚", + "description": "Named entity: iopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd5a" + ] + ] + }, + { + "input": "&iota", + "description": "Bad named entity: iota without a semi-colon", + "output": [ + [ + "Character", + "&iota" + ] + ] + }, + { + "input": "ι", + "description": "Named entity: iota; with a semi-colon", + "output": [ + [ + "Character", + "\u03b9" + ] + ] + }, + { + "input": "&iprod", + "description": "Bad named entity: iprod without a semi-colon", + "output": [ + [ + "Character", + "&iprod" + ] + ] + }, + { + "input": "⨼", + "description": "Named entity: iprod; with a semi-colon", + "output": [ + [ + "Character", + "\u2a3c" + ] + ] + }, + { + "input": "¿", + "description": "Named entity: iquest without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00bf" + ] + ] + }, + { + "input": "¿", + "description": "Named entity: iquest; with a semi-colon", + "output": [ + [ + "Character", + "\u00bf" + ] + ] + }, + { + "input": "&iscr", + "description": "Bad named entity: iscr without a semi-colon", + "output": [ + [ + "Character", + "&iscr" + ] + ] + }, + { + "input": "𝒾", + "description": "Named entity: iscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcbe" + ] + ] + }, + { + "input": "&isin", + "description": "Bad named entity: isin without a semi-colon", + "output": [ + [ + "Character", + "&isin" + ] + ] + }, + { + "input": "∈", + "description": "Named entity: isin; with a semi-colon", + "output": [ + [ + "Character", + "\u2208" + ] + ] + }, + { + "input": "&isinE", + "description": "Bad named entity: isinE without a semi-colon", + "output": [ + [ + "Character", + "&isinE" + ] + ] + }, + { + "input": "⋹", + "description": "Named entity: isinE; with a semi-colon", + "output": [ + [ + "Character", + "\u22f9" + ] + ] + }, + { + "input": "&isindot", + "description": "Bad named entity: isindot without a semi-colon", + "output": [ + [ + "Character", + "&isindot" + ] + ] + }, + { + "input": "⋵", + "description": "Named entity: isindot; with a semi-colon", + "output": [ + [ + "Character", + "\u22f5" + ] + ] + }, + { + "input": "&isins", + "description": "Bad named entity: isins without a semi-colon", + "output": [ + [ + "Character", + "&isins" + ] + ] + }, + { + "input": "⋴", + "description": "Named entity: isins; with a semi-colon", + "output": [ + [ + "Character", + "\u22f4" + ] + ] + }, + { + "input": "&isinsv", + "description": "Bad named entity: isinsv without a semi-colon", + "output": [ + [ + "Character", + "&isinsv" + ] + ] + }, + { + "input": "⋳", + "description": "Named entity: isinsv; with a semi-colon", + "output": [ + [ + "Character", + "\u22f3" + ] + ] + }, + { + "input": "&isinv", + "description": "Bad named entity: isinv without a semi-colon", + "output": [ + [ + "Character", + "&isinv" + ] + ] + }, + { + "input": "∈", + "description": "Named entity: isinv; with a semi-colon", + "output": [ + [ + "Character", + "\u2208" + ] + ] + }, + { + "input": "&it", + "description": "Bad named entity: it without a semi-colon", + "output": [ + [ + "Character", + "&it" + ] + ] + }, + { + "input": "⁢", + "description": "Named entity: it; with a semi-colon", + "output": [ + [ + "Character", + "\u2062" + ] + ] + }, + { + "input": "&itilde", + "description": "Bad named entity: itilde without a semi-colon", + "output": [ + [ + "Character", + "&itilde" + ] + ] + }, + { + "input": "ĩ", + "description": "Named entity: itilde; with a semi-colon", + "output": [ + [ + "Character", + "\u0129" + ] + ] + }, + { + "input": "&iukcy", + "description": "Bad named entity: iukcy without a semi-colon", + "output": [ + [ + "Character", + "&iukcy" + ] + ] + }, + { + "input": "і", + "description": "Named entity: iukcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0456" + ] + ] + }, + { + "input": "ï", + "description": "Named entity: iuml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ef" + ] + ] + }, + { + "input": "ï", + "description": "Named entity: iuml; with a semi-colon", + "output": [ + [ + "Character", + "\u00ef" + ] + ] + }, + { + "input": "&jcirc", + "description": "Bad named entity: jcirc without a semi-colon", + "output": [ + [ + "Character", + "&jcirc" + ] + ] + }, + { + "input": "ĵ", + "description": "Named entity: jcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0135" + ] + ] + }, + { + "input": "&jcy", + "description": "Bad named entity: jcy without a semi-colon", + "output": [ + [ + "Character", + "&jcy" + ] + ] + }, + { + "input": "й", + "description": "Named entity: jcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0439" + ] + ] + }, + { + "input": "&jfr", + "description": "Bad named entity: jfr without a semi-colon", + "output": [ + [ + "Character", + "&jfr" + ] + ] + }, + { + "input": "𝔧", + "description": "Named entity: jfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd27" + ] + ] + }, + { + "input": "&jmath", + "description": "Bad named entity: jmath without a semi-colon", + "output": [ + [ + "Character", + "&jmath" + ] + ] + }, + { + "input": "ȷ", + "description": "Named entity: jmath; with a semi-colon", + "output": [ + [ + "Character", + "\u0237" + ] + ] + }, + { + "input": "&jopf", + "description": "Bad named entity: jopf without a semi-colon", + "output": [ + [ + "Character", + "&jopf" + ] + ] + }, + { + "input": "𝕛", + "description": "Named entity: jopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd5b" + ] + ] + }, + { + "input": "&jscr", + "description": "Bad named entity: jscr without a semi-colon", + "output": [ + [ + "Character", + "&jscr" + ] + ] + }, + { + "input": "𝒿", + "description": "Named entity: jscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcbf" + ] + ] + }, + { + "input": "&jsercy", + "description": "Bad named entity: jsercy without a semi-colon", + "output": [ + [ + "Character", + "&jsercy" + ] + ] + }, + { + "input": "ј", + "description": "Named entity: jsercy; with a semi-colon", + "output": [ + [ + "Character", + "\u0458" + ] + ] + }, + { + "input": "&jukcy", + "description": "Bad named entity: jukcy without a semi-colon", + "output": [ + [ + "Character", + "&jukcy" + ] + ] + }, + { + "input": "є", + "description": "Named entity: jukcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0454" + ] + ] + }, + { + "input": "&kappa", + "description": "Bad named entity: kappa without a semi-colon", + "output": [ + [ + "Character", + "&kappa" + ] + ] + }, + { + "input": "κ", + "description": "Named entity: kappa; with a semi-colon", + "output": [ + [ + "Character", + "\u03ba" + ] + ] + }, + { + "input": "&kappav", + "description": "Bad named entity: kappav without a semi-colon", + "output": [ + [ + "Character", + "&kappav" + ] + ] + }, + { + "input": "ϰ", + "description": "Named entity: kappav; with a semi-colon", + "output": [ + [ + "Character", + "\u03f0" + ] + ] + }, + { + "input": "&kcedil", + "description": "Bad named entity: kcedil without a semi-colon", + "output": [ + [ + "Character", + "&kcedil" + ] + ] + }, + { + "input": "ķ", + "description": "Named entity: kcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0137" + ] + ] + }, + { + "input": "&kcy", + "description": "Bad named entity: kcy without a semi-colon", + "output": [ + [ + "Character", + "&kcy" + ] + ] + }, + { + "input": "к", + "description": "Named entity: kcy; with a semi-colon", + "output": [ + [ + "Character", + "\u043a" + ] + ] + }, + { + "input": "&kfr", + "description": "Bad named entity: kfr without a semi-colon", + "output": [ + [ + "Character", + "&kfr" + ] + ] + }, + { + "input": "𝔨", + "description": "Named entity: kfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd28" + ] + ] + }, + { + "input": "&kgreen", + "description": "Bad named entity: kgreen without a semi-colon", + "output": [ + [ + "Character", + "&kgreen" + ] + ] + }, + { + "input": "ĸ", + "description": "Named entity: kgreen; with a semi-colon", + "output": [ + [ + "Character", + "\u0138" + ] + ] + }, + { + "input": "&khcy", + "description": "Bad named entity: khcy without a semi-colon", + "output": [ + [ + "Character", + "&khcy" + ] + ] + }, + { + "input": "х", + "description": "Named entity: khcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0445" + ] + ] + }, + { + "input": "&kjcy", + "description": "Bad named entity: kjcy without a semi-colon", + "output": [ + [ + "Character", + "&kjcy" + ] + ] + }, + { + "input": "ќ", + "description": "Named entity: kjcy; with a semi-colon", + "output": [ + [ + "Character", + "\u045c" + ] + ] + }, + { + "input": "&kopf", + "description": "Bad named entity: kopf without a semi-colon", + "output": [ + [ + "Character", + "&kopf" + ] + ] + }, + { + "input": "𝕜", + "description": "Named entity: kopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd5c" + ] + ] + }, + { + "input": "&kscr", + "description": "Bad named entity: kscr without a semi-colon", + "output": [ + [ + "Character", + "&kscr" + ] + ] + }, + { + "input": "𝓀", + "description": "Named entity: kscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc0" + ] + ] + }, + { + "input": "&lAarr", + "description": "Bad named entity: lAarr without a semi-colon", + "output": [ + [ + "Character", + "&lAarr" + ] + ] + }, + { + "input": "⇚", + "description": "Named entity: lAarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21da" + ] + ] + }, + { + "input": "&lArr", + "description": "Bad named entity: lArr without a semi-colon", + "output": [ + [ + "Character", + "&lArr" + ] + ] + }, + { + "input": "⇐", + "description": "Named entity: lArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d0" + ] + ] + }, + { + "input": "&lAtail", + "description": "Bad named entity: lAtail without a semi-colon", + "output": [ + [ + "Character", + "&lAtail" + ] + ] + }, + { + "input": "⤛", + "description": "Named entity: lAtail; with a semi-colon", + "output": [ + [ + "Character", + "\u291b" + ] + ] + }, + { + "input": "&lBarr", + "description": "Bad named entity: lBarr without a semi-colon", + "output": [ + [ + "Character", + "&lBarr" + ] + ] + }, + { + "input": "⤎", + "description": "Named entity: lBarr; with a semi-colon", + "output": [ + [ + "Character", + "\u290e" + ] + ] + }, + { + "input": "&lE", + "description": "Bad named entity: lE without a semi-colon", + "output": [ + [ + "Character", + "&lE" + ] + ] + }, + { + "input": "≦", + "description": "Named entity: lE; with a semi-colon", + "output": [ + [ + "Character", + "\u2266" + ] + ] + }, + { + "input": "&lEg", + "description": "Bad named entity: lEg without a semi-colon", + "output": [ + [ + "Character", + "&lEg" + ] + ] + }, + { + "input": "⪋", + "description": "Named entity: lEg; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8b" + ] + ] + }, + { + "input": "&lHar", + "description": "Bad named entity: lHar without a semi-colon", + "output": [ + [ + "Character", + "&lHar" + ] + ] + }, + { + "input": "⥢", + "description": "Named entity: lHar; with a semi-colon", + "output": [ + [ + "Character", + "\u2962" + ] + ] + }, + { + "input": "&lacute", + "description": "Bad named entity: lacute without a semi-colon", + "output": [ + [ + "Character", + "&lacute" + ] + ] + }, + { + "input": "ĺ", + "description": "Named entity: lacute; with a semi-colon", + "output": [ + [ + "Character", + "\u013a" + ] + ] + }, + { + "input": "&laemptyv", + "description": "Bad named entity: laemptyv without a semi-colon", + "output": [ + [ + "Character", + "&laemptyv" + ] + ] + }, + { + "input": "⦴", + "description": "Named entity: laemptyv; with a semi-colon", + "output": [ + [ + "Character", + "\u29b4" + ] + ] + }, + { + "input": "&lagran", + "description": "Bad named entity: lagran without a semi-colon", + "output": [ + [ + "Character", + "&lagran" + ] + ] + }, + { + "input": "ℒ", + "description": "Named entity: lagran; with a semi-colon", + "output": [ + [ + "Character", + "\u2112" + ] + ] + }, + { + "input": "&lambda", + "description": "Bad named entity: lambda without a semi-colon", + "output": [ + [ + "Character", + "&lambda" + ] + ] + }, + { + "input": "λ", + "description": "Named entity: lambda; with a semi-colon", + "output": [ + [ + "Character", + "\u03bb" + ] + ] + }, + { + "input": "&lang", + "description": "Bad named entity: lang without a semi-colon", + "output": [ + [ + "Character", + "&lang" + ] + ] + }, + { + "input": "⟨", + "description": "Named entity: lang; with a semi-colon", + "output": [ + [ + "Character", + "\u27e8" + ] + ] + }, + { + "input": "&langd", + "description": "Bad named entity: langd without a semi-colon", + "output": [ + [ + "Character", + "&langd" + ] + ] + }, + { + "input": "⦑", + "description": "Named entity: langd; with a semi-colon", + "output": [ + [ + "Character", + "\u2991" + ] + ] + }, + { + "input": "&langle", + "description": "Bad named entity: langle without a semi-colon", + "output": [ + [ + "Character", + "&langle" + ] + ] + }, + { + "input": "⟨", + "description": "Named entity: langle; with a semi-colon", + "output": [ + [ + "Character", + "\u27e8" + ] + ] + }, + { + "input": "&lap", + "description": "Bad named entity: lap without a semi-colon", + "output": [ + [ + "Character", + "&lap" + ] + ] + }, + { + "input": "⪅", + "description": "Named entity: lap; with a semi-colon", + "output": [ + [ + "Character", + "\u2a85" + ] + ] + }, + { + "input": "«", + "description": "Named entity: laquo without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ab" + ] + ] + }, + { + "input": "«", + "description": "Named entity: laquo; with a semi-colon", + "output": [ + [ + "Character", + "\u00ab" + ] + ] + }, + { + "input": "&larr", + "description": "Bad named entity: larr without a semi-colon", + "output": [ + [ + "Character", + "&larr" + ] + ] + }, + { + "input": "←", + "description": "Named entity: larr; with a semi-colon", + "output": [ + [ + "Character", + "\u2190" + ] + ] + }, + { + "input": "&larrb", + "description": "Bad named entity: larrb without a semi-colon", + "output": [ + [ + "Character", + "&larrb" + ] + ] + }, + { + "input": "⇤", + "description": "Named entity: larrb; with a semi-colon", + "output": [ + [ + "Character", + "\u21e4" + ] + ] + }, + { + "input": "&larrbfs", + "description": "Bad named entity: larrbfs without a semi-colon", + "output": [ + [ + "Character", + "&larrbfs" + ] + ] + }, + { + "input": "⤟", + "description": "Named entity: larrbfs; with a semi-colon", + "output": [ + [ + "Character", + "\u291f" + ] + ] + }, + { + "input": "&larrfs", + "description": "Bad named entity: larrfs without a semi-colon", + "output": [ + [ + "Character", + "&larrfs" + ] + ] + }, + { + "input": "⤝", + "description": "Named entity: larrfs; with a semi-colon", + "output": [ + [ + "Character", + "\u291d" + ] + ] + }, + { + "input": "&larrhk", + "description": "Bad named entity: larrhk without a semi-colon", + "output": [ + [ + "Character", + "&larrhk" + ] + ] + }, + { + "input": "↩", + "description": "Named entity: larrhk; with a semi-colon", + "output": [ + [ + "Character", + "\u21a9" + ] + ] + }, + { + "input": "&larrlp", + "description": "Bad named entity: larrlp without a semi-colon", + "output": [ + [ + "Character", + "&larrlp" + ] + ] + }, + { + "input": "↫", + "description": "Named entity: larrlp; with a semi-colon", + "output": [ + [ + "Character", + "\u21ab" + ] + ] + }, + { + "input": "&larrpl", + "description": "Bad named entity: larrpl without a semi-colon", + "output": [ + [ + "Character", + "&larrpl" + ] + ] + }, + { + "input": "⤹", + "description": "Named entity: larrpl; with a semi-colon", + "output": [ + [ + "Character", + "\u2939" + ] + ] + }, + { + "input": "&larrsim", + "description": "Bad named entity: larrsim without a semi-colon", + "output": [ + [ + "Character", + "&larrsim" + ] + ] + }, + { + "input": "⥳", + "description": "Named entity: larrsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2973" + ] + ] + }, + { + "input": "&larrtl", + "description": "Bad named entity: larrtl without a semi-colon", + "output": [ + [ + "Character", + "&larrtl" + ] + ] + }, + { + "input": "↢", + "description": "Named entity: larrtl; with a semi-colon", + "output": [ + [ + "Character", + "\u21a2" + ] + ] + }, + { + "input": "&lat", + "description": "Bad named entity: lat without a semi-colon", + "output": [ + [ + "Character", + "&lat" + ] + ] + }, + { + "input": "⪫", + "description": "Named entity: lat; with a semi-colon", + "output": [ + [ + "Character", + "\u2aab" + ] + ] + }, + { + "input": "&latail", + "description": "Bad named entity: latail without a semi-colon", + "output": [ + [ + "Character", + "&latail" + ] + ] + }, + { + "input": "⤙", + "description": "Named entity: latail; with a semi-colon", + "output": [ + [ + "Character", + "\u2919" + ] + ] + }, + { + "input": "&late", + "description": "Bad named entity: late without a semi-colon", + "output": [ + [ + "Character", + "&late" + ] + ] + }, + { + "input": "⪭", + "description": "Named entity: late; with a semi-colon", + "output": [ + [ + "Character", + "\u2aad" + ] + ] + }, + { + "input": "&lates", + "description": "Bad named entity: lates without a semi-colon", + "output": [ + [ + "Character", + "&lates" + ] + ] + }, + { + "input": "⪭︀", + "description": "Named entity: lates; with a semi-colon", + "output": [ + [ + "Character", + "\u2aad\ufe00" + ] + ] + }, + { + "input": "&lbarr", + "description": "Bad named entity: lbarr without a semi-colon", + "output": [ + [ + "Character", + "&lbarr" + ] + ] + }, + { + "input": "⤌", + "description": "Named entity: lbarr; with a semi-colon", + "output": [ + [ + "Character", + "\u290c" + ] + ] + }, + { + "input": "&lbbrk", + "description": "Bad named entity: lbbrk without a semi-colon", + "output": [ + [ + "Character", + "&lbbrk" + ] + ] + }, + { + "input": "❲", + "description": "Named entity: lbbrk; with a semi-colon", + "output": [ + [ + "Character", + "\u2772" + ] + ] + }, + { + "input": "&lbrace", + "description": "Bad named entity: lbrace without a semi-colon", + "output": [ + [ + "Character", + "&lbrace" + ] + ] + }, + { + "input": "{", + "description": "Named entity: lbrace; with a semi-colon", + "output": [ + [ + "Character", + "{" + ] + ] + }, + { + "input": "&lbrack", + "description": "Bad named entity: lbrack without a semi-colon", + "output": [ + [ + "Character", + "&lbrack" + ] + ] + }, + { + "input": "[", + "description": "Named entity: lbrack; with a semi-colon", + "output": [ + [ + "Character", + "[" + ] + ] + }, + { + "input": "&lbrke", + "description": "Bad named entity: lbrke without a semi-colon", + "output": [ + [ + "Character", + "&lbrke" + ] + ] + }, + { + "input": "⦋", + "description": "Named entity: lbrke; with a semi-colon", + "output": [ + [ + "Character", + "\u298b" + ] + ] + }, + { + "input": "&lbrksld", + "description": "Bad named entity: lbrksld without a semi-colon", + "output": [ + [ + "Character", + "&lbrksld" + ] + ] + }, + { + "input": "⦏", + "description": "Named entity: lbrksld; with a semi-colon", + "output": [ + [ + "Character", + "\u298f" + ] + ] + }, + { + "input": "&lbrkslu", + "description": "Bad named entity: lbrkslu without a semi-colon", + "output": [ + [ + "Character", + "&lbrkslu" + ] + ] + }, + { + "input": "⦍", + "description": "Named entity: lbrkslu; with a semi-colon", + "output": [ + [ + "Character", + "\u298d" + ] + ] + }, + { + "input": "&lcaron", + "description": "Bad named entity: lcaron without a semi-colon", + "output": [ + [ + "Character", + "&lcaron" + ] + ] + }, + { + "input": "ľ", + "description": "Named entity: lcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u013e" + ] + ] + }, + { + "input": "&lcedil", + "description": "Bad named entity: lcedil without a semi-colon", + "output": [ + [ + "Character", + "&lcedil" + ] + ] + }, + { + "input": "ļ", + "description": "Named entity: lcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u013c" + ] + ] + }, + { + "input": "&lceil", + "description": "Bad named entity: lceil without a semi-colon", + "output": [ + [ + "Character", + "&lceil" + ] + ] + }, + { + "input": "⌈", + "description": "Named entity: lceil; with a semi-colon", + "output": [ + [ + "Character", + "\u2308" + ] + ] + }, + { + "input": "&lcub", + "description": "Bad named entity: lcub without a semi-colon", + "output": [ + [ + "Character", + "&lcub" + ] + ] + }, + { + "input": "{", + "description": "Named entity: lcub; with a semi-colon", + "output": [ + [ + "Character", + "{" + ] + ] + }, + { + "input": "&lcy", + "description": "Bad named entity: lcy without a semi-colon", + "output": [ + [ + "Character", + "&lcy" + ] + ] + }, + { + "input": "л", + "description": "Named entity: lcy; with a semi-colon", + "output": [ + [ + "Character", + "\u043b" + ] + ] + }, + { + "input": "&ldca", + "description": "Bad named entity: ldca without a semi-colon", + "output": [ + [ + "Character", + "&ldca" + ] + ] + }, + { + "input": "⤶", + "description": "Named entity: ldca; with a semi-colon", + "output": [ + [ + "Character", + "\u2936" + ] + ] + }, + { + "input": "&ldquo", + "description": "Bad named entity: ldquo without a semi-colon", + "output": [ + [ + "Character", + "&ldquo" + ] + ] + }, + { + "input": "“", + "description": "Named entity: ldquo; with a semi-colon", + "output": [ + [ + "Character", + "\u201c" + ] + ] + }, + { + "input": "&ldquor", + "description": "Bad named entity: ldquor without a semi-colon", + "output": [ + [ + "Character", + "&ldquor" + ] + ] + }, + { + "input": "„", + "description": "Named entity: ldquor; with a semi-colon", + "output": [ + [ + "Character", + "\u201e" + ] + ] + }, + { + "input": "&ldrdhar", + "description": "Bad named entity: ldrdhar without a semi-colon", + "output": [ + [ + "Character", + "&ldrdhar" + ] + ] + }, + { + "input": "⥧", + "description": "Named entity: ldrdhar; with a semi-colon", + "output": [ + [ + "Character", + "\u2967" + ] + ] + }, + { + "input": "&ldrushar", + "description": "Bad named entity: ldrushar without a semi-colon", + "output": [ + [ + "Character", + "&ldrushar" + ] + ] + }, + { + "input": "⥋", + "description": "Named entity: ldrushar; with a semi-colon", + "output": [ + [ + "Character", + "\u294b" + ] + ] + }, + { + "input": "&ldsh", + "description": "Bad named entity: ldsh without a semi-colon", + "output": [ + [ + "Character", + "&ldsh" + ] + ] + }, + { + "input": "↲", + "description": "Named entity: ldsh; with a semi-colon", + "output": [ + [ + "Character", + "\u21b2" + ] + ] + }, + { + "input": "&le", + "description": "Bad named entity: le without a semi-colon", + "output": [ + [ + "Character", + "&le" + ] + ] + }, + { + "input": "≤", + "description": "Named entity: le; with a semi-colon", + "output": [ + [ + "Character", + "\u2264" + ] + ] + }, + { + "input": "&leftarrow", + "description": "Bad named entity: leftarrow without a semi-colon", + "output": [ + [ + "Character", + "&leftarrow" + ] + ] + }, + { + "input": "←", + "description": "Named entity: leftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2190" + ] + ] + }, + { + "input": "&leftarrowtail", + "description": "Bad named entity: leftarrowtail without a semi-colon", + "output": [ + [ + "Character", + "&leftarrowtail" + ] + ] + }, + { + "input": "↢", + "description": "Named entity: leftarrowtail; with a semi-colon", + "output": [ + [ + "Character", + "\u21a2" + ] + ] + }, + { + "input": "&leftharpoondown", + "description": "Bad named entity: leftharpoondown without a semi-colon", + "output": [ + [ + "Character", + "&leftharpoondown" + ] + ] + }, + { + "input": "↽", + "description": "Named entity: leftharpoondown; with a semi-colon", + "output": [ + [ + "Character", + "\u21bd" + ] + ] + }, + { + "input": "&leftharpoonup", + "description": "Bad named entity: leftharpoonup without a semi-colon", + "output": [ + [ + "Character", + "&leftharpoonup" + ] + ] + }, + { + "input": "↼", + "description": "Named entity: leftharpoonup; with a semi-colon", + "output": [ + [ + "Character", + "\u21bc" + ] + ] + }, + { + "input": "&leftleftarrows", + "description": "Bad named entity: leftleftarrows without a semi-colon", + "output": [ + [ + "Character", + "&leftleftarrows" + ] + ] + }, + { + "input": "⇇", + "description": "Named entity: leftleftarrows; with a semi-colon", + "output": [ + [ + "Character", + "\u21c7" + ] + ] + }, + { + "input": "&leftrightarrow", + "description": "Bad named entity: leftrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&leftrightarrow" + ] + ] + }, + { + "input": "↔", + "description": "Named entity: leftrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2194" + ] + ] + }, + { + "input": "&leftrightarrows", + "description": "Bad named entity: leftrightarrows without a semi-colon", + "output": [ + [ + "Character", + "&leftrightarrows" + ] + ] + }, + { + "input": "⇆", + "description": "Named entity: leftrightarrows; with a semi-colon", + "output": [ + [ + "Character", + "\u21c6" + ] + ] + }, + { + "input": "&leftrightharpoons", + "description": "Bad named entity: leftrightharpoons without a semi-colon", + "output": [ + [ + "Character", + "&leftrightharpoons" + ] + ] + }, + { + "input": "⇋", + "description": "Named entity: leftrightharpoons; with a semi-colon", + "output": [ + [ + "Character", + "\u21cb" + ] + ] + }, + { + "input": "&leftrightsquigarrow", + "description": "Bad named entity: leftrightsquigarrow without a semi-colon", + "output": [ + [ + "Character", + "&leftrightsquigarrow" + ] + ] + }, + { + "input": "↭", + "description": "Named entity: leftrightsquigarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21ad" + ] + ] + }, + { + "input": "&leftthreetimes", + "description": "Bad named entity: leftthreetimes without a semi-colon", + "output": [ + [ + "Character", + "&leftthreetimes" + ] + ] + }, + { + "input": "⋋", + "description": "Named entity: leftthreetimes; with a semi-colon", + "output": [ + [ + "Character", + "\u22cb" + ] + ] + }, + { + "input": "&leg", + "description": "Bad named entity: leg without a semi-colon", + "output": [ + [ + "Character", + "&leg" + ] + ] + }, + { + "input": "⋚", + "description": "Named entity: leg; with a semi-colon", + "output": [ + [ + "Character", + "\u22da" + ] + ] + }, + { + "input": "&leq", + "description": "Bad named entity: leq without a semi-colon", + "output": [ + [ + "Character", + "&leq" + ] + ] + }, + { + "input": "≤", + "description": "Named entity: leq; with a semi-colon", + "output": [ + [ + "Character", + "\u2264" + ] + ] + }, + { + "input": "&leqq", + "description": "Bad named entity: leqq without a semi-colon", + "output": [ + [ + "Character", + "&leqq" + ] + ] + }, + { + "input": "≦", + "description": "Named entity: leqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2266" + ] + ] + }, + { + "input": "&leqslant", + "description": "Bad named entity: leqslant without a semi-colon", + "output": [ + [ + "Character", + "&leqslant" + ] + ] + }, + { + "input": "⩽", + "description": "Named entity: leqslant; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7d" + ] + ] + }, + { + "input": "&les", + "description": "Bad named entity: les without a semi-colon", + "output": [ + [ + "Character", + "&les" + ] + ] + }, + { + "input": "⩽", + "description": "Named entity: les; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7d" + ] + ] + }, + { + "input": "&lescc", + "description": "Bad named entity: lescc without a semi-colon", + "output": [ + [ + "Character", + "&lescc" + ] + ] + }, + { + "input": "⪨", + "description": "Named entity: lescc; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa8" + ] + ] + }, + { + "input": "&lesdot", + "description": "Bad named entity: lesdot without a semi-colon", + "output": [ + [ + "Character", + "&lesdot" + ] + ] + }, + { + "input": "⩿", + "description": "Named entity: lesdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7f" + ] + ] + }, + { + "input": "&lesdoto", + "description": "Bad named entity: lesdoto without a semi-colon", + "output": [ + [ + "Character", + "&lesdoto" + ] + ] + }, + { + "input": "⪁", + "description": "Named entity: lesdoto; with a semi-colon", + "output": [ + [ + "Character", + "\u2a81" + ] + ] + }, + { + "input": "&lesdotor", + "description": "Bad named entity: lesdotor without a semi-colon", + "output": [ + [ + "Character", + "&lesdotor" + ] + ] + }, + { + "input": "⪃", + "description": "Named entity: lesdotor; with a semi-colon", + "output": [ + [ + "Character", + "\u2a83" + ] + ] + }, + { + "input": "&lesg", + "description": "Bad named entity: lesg without a semi-colon", + "output": [ + [ + "Character", + "&lesg" + ] + ] + }, + { + "input": "⋚︀", + "description": "Named entity: lesg; with a semi-colon", + "output": [ + [ + "Character", + "\u22da\ufe00" + ] + ] + }, + { + "input": "&lesges", + "description": "Bad named entity: lesges without a semi-colon", + "output": [ + [ + "Character", + "&lesges" + ] + ] + }, + { + "input": "⪓", + "description": "Named entity: lesges; with a semi-colon", + "output": [ + [ + "Character", + "\u2a93" + ] + ] + }, + { + "input": "&lessapprox", + "description": "Bad named entity: lessapprox without a semi-colon", + "output": [ + [ + "Character", + "&lessapprox" + ] + ] + }, + { + "input": "⪅", + "description": "Named entity: lessapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2a85" + ] + ] + }, + { + "input": "&lessdot", + "description": "Bad named entity: lessdot without a semi-colon", + "output": [ + [ + "Character", + "&lessdot" + ] + ] + }, + { + "input": "⋖", + "description": "Named entity: lessdot; with a semi-colon", + "output": [ + [ + "Character", + "\u22d6" + ] + ] + }, + { + "input": "&lesseqgtr", + "description": "Bad named entity: lesseqgtr without a semi-colon", + "output": [ + [ + "Character", + "&lesseqgtr" + ] + ] + }, + { + "input": "⋚", + "description": "Named entity: lesseqgtr; with a semi-colon", + "output": [ + [ + "Character", + "\u22da" + ] + ] + }, + { + "input": "&lesseqqgtr", + "description": "Bad named entity: lesseqqgtr without a semi-colon", + "output": [ + [ + "Character", + "&lesseqqgtr" + ] + ] + }, + { + "input": "⪋", + "description": "Named entity: lesseqqgtr; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8b" + ] + ] + }, + { + "input": "&lessgtr", + "description": "Bad named entity: lessgtr without a semi-colon", + "output": [ + [ + "Character", + "&lessgtr" + ] + ] + }, + { + "input": "≶", + "description": "Named entity: lessgtr; with a semi-colon", + "output": [ + [ + "Character", + "\u2276" + ] + ] + }, + { + "input": "&lesssim", + "description": "Bad named entity: lesssim without a semi-colon", + "output": [ + [ + "Character", + "&lesssim" + ] + ] + }, + { + "input": "≲", + "description": "Named entity: lesssim; with a semi-colon", + "output": [ + [ + "Character", + "\u2272" + ] + ] + }, + { + "input": "&lfisht", + "description": "Bad named entity: lfisht without a semi-colon", + "output": [ + [ + "Character", + "&lfisht" + ] + ] + }, + { + "input": "⥼", + "description": "Named entity: lfisht; with a semi-colon", + "output": [ + [ + "Character", + "\u297c" + ] + ] + }, + { + "input": "&lfloor", + "description": "Bad named entity: lfloor without a semi-colon", + "output": [ + [ + "Character", + "&lfloor" + ] + ] + }, + { + "input": "⌊", + "description": "Named entity: lfloor; with a semi-colon", + "output": [ + [ + "Character", + "\u230a" + ] + ] + }, + { + "input": "&lfr", + "description": "Bad named entity: lfr without a semi-colon", + "output": [ + [ + "Character", + "&lfr" + ] + ] + }, + { + "input": "𝔩", + "description": "Named entity: lfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd29" + ] + ] + }, + { + "input": "&lg", + "description": "Bad named entity: lg without a semi-colon", + "output": [ + [ + "Character", + "&lg" + ] + ] + }, + { + "input": "≶", + "description": "Named entity: lg; with a semi-colon", + "output": [ + [ + "Character", + "\u2276" + ] + ] + }, + { + "input": "&lgE", + "description": "Bad named entity: lgE without a semi-colon", + "output": [ + [ + "Character", + "&lgE" + ] + ] + }, + { + "input": "⪑", + "description": "Named entity: lgE; with a semi-colon", + "output": [ + [ + "Character", + "\u2a91" + ] + ] + }, + { + "input": "&lhard", + "description": "Bad named entity: lhard without a semi-colon", + "output": [ + [ + "Character", + "&lhard" + ] + ] + }, + { + "input": "↽", + "description": "Named entity: lhard; with a semi-colon", + "output": [ + [ + "Character", + "\u21bd" + ] + ] + }, + { + "input": "&lharu", + "description": "Bad named entity: lharu without a semi-colon", + "output": [ + [ + "Character", + "&lharu" + ] + ] + }, + { + "input": "↼", + "description": "Named entity: lharu; with a semi-colon", + "output": [ + [ + "Character", + "\u21bc" + ] + ] + }, + { + "input": "&lharul", + "description": "Bad named entity: lharul without a semi-colon", + "output": [ + [ + "Character", + "&lharul" + ] + ] + }, + { + "input": "⥪", + "description": "Named entity: lharul; with a semi-colon", + "output": [ + [ + "Character", + "\u296a" + ] + ] + }, + { + "input": "&lhblk", + "description": "Bad named entity: lhblk without a semi-colon", + "output": [ + [ + "Character", + "&lhblk" + ] + ] + }, + { + "input": "▄", + "description": "Named entity: lhblk; with a semi-colon", + "output": [ + [ + "Character", + "\u2584" + ] + ] + }, + { + "input": "&ljcy", + "description": "Bad named entity: ljcy without a semi-colon", + "output": [ + [ + "Character", + "&ljcy" + ] + ] + }, + { + "input": "љ", + "description": "Named entity: ljcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0459" + ] + ] + }, + { + "input": "&ll", + "description": "Bad named entity: ll without a semi-colon", + "output": [ + [ + "Character", + "&ll" + ] + ] + }, + { + "input": "≪", + "description": "Named entity: ll; with a semi-colon", + "output": [ + [ + "Character", + "\u226a" + ] + ] + }, + { + "input": "&llarr", + "description": "Bad named entity: llarr without a semi-colon", + "output": [ + [ + "Character", + "&llarr" + ] + ] + }, + { + "input": "⇇", + "description": "Named entity: llarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21c7" + ] + ] + }, + { + "input": "&llcorner", + "description": "Bad named entity: llcorner without a semi-colon", + "output": [ + [ + "Character", + "&llcorner" + ] + ] + }, + { + "input": "⌞", + "description": "Named entity: llcorner; with a semi-colon", + "output": [ + [ + "Character", + "\u231e" + ] + ] + }, + { + "input": "&llhard", + "description": "Bad named entity: llhard without a semi-colon", + "output": [ + [ + "Character", + "&llhard" + ] + ] + }, + { + "input": "⥫", + "description": "Named entity: llhard; with a semi-colon", + "output": [ + [ + "Character", + "\u296b" + ] + ] + }, + { + "input": "&lltri", + "description": "Bad named entity: lltri without a semi-colon", + "output": [ + [ + "Character", + "&lltri" + ] + ] + }, + { + "input": "◺", + "description": "Named entity: lltri; with a semi-colon", + "output": [ + [ + "Character", + "\u25fa" + ] + ] + }, + { + "input": "&lmidot", + "description": "Bad named entity: lmidot without a semi-colon", + "output": [ + [ + "Character", + "&lmidot" + ] + ] + }, + { + "input": "ŀ", + "description": "Named entity: lmidot; with a semi-colon", + "output": [ + [ + "Character", + "\u0140" + ] + ] + }, + { + "input": "&lmoust", + "description": "Bad named entity: lmoust without a semi-colon", + "output": [ + [ + "Character", + "&lmoust" + ] + ] + }, + { + "input": "⎰", + "description": "Named entity: lmoust; with a semi-colon", + "output": [ + [ + "Character", + "\u23b0" + ] + ] + }, + { + "input": "&lmoustache", + "description": "Bad named entity: lmoustache without a semi-colon", + "output": [ + [ + "Character", + "&lmoustache" + ] + ] + }, + { + "input": "⎰", + "description": "Named entity: lmoustache; with a semi-colon", + "output": [ + [ + "Character", + "\u23b0" + ] + ] + }, + { + "input": "&lnE", + "description": "Bad named entity: lnE without a semi-colon", + "output": [ + [ + "Character", + "&lnE" + ] + ] + }, + { + "input": "≨", + "description": "Named entity: lnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2268" + ] + ] + }, + { + "input": "&lnap", + "description": "Bad named entity: lnap without a semi-colon", + "output": [ + [ + "Character", + "&lnap" + ] + ] + }, + { + "input": "⪉", + "description": "Named entity: lnap; with a semi-colon", + "output": [ + [ + "Character", + "\u2a89" + ] + ] + }, + { + "input": "&lnapprox", + "description": "Bad named entity: lnapprox without a semi-colon", + "output": [ + [ + "Character", + "&lnapprox" + ] + ] + }, + { + "input": "⪉", + "description": "Named entity: lnapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2a89" + ] + ] + }, + { + "input": "&lne", + "description": "Bad named entity: lne without a semi-colon", + "output": [ + [ + "Character", + "&lne" + ] + ] + }, + { + "input": "⪇", + "description": "Named entity: lne; with a semi-colon", + "output": [ + [ + "Character", + "\u2a87" + ] + ] + }, + { + "input": "&lneq", + "description": "Bad named entity: lneq without a semi-colon", + "output": [ + [ + "Character", + "&lneq" + ] + ] + }, + { + "input": "⪇", + "description": "Named entity: lneq; with a semi-colon", + "output": [ + [ + "Character", + "\u2a87" + ] + ] + }, + { + "input": "&lneqq", + "description": "Bad named entity: lneqq without a semi-colon", + "output": [ + [ + "Character", + "&lneqq" + ] + ] + }, + { + "input": "≨", + "description": "Named entity: lneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2268" + ] + ] + }, + { + "input": "&lnsim", + "description": "Bad named entity: lnsim without a semi-colon", + "output": [ + [ + "Character", + "&lnsim" + ] + ] + }, + { + "input": "⋦", + "description": "Named entity: lnsim; with a semi-colon", + "output": [ + [ + "Character", + "\u22e6" + ] + ] + }, + { + "input": "&loang", + "description": "Bad named entity: loang without a semi-colon", + "output": [ + [ + "Character", + "&loang" + ] + ] + }, + { + "input": "⟬", + "description": "Named entity: loang; with a semi-colon", + "output": [ + [ + "Character", + "\u27ec" + ] + ] + }, + { + "input": "&loarr", + "description": "Bad named entity: loarr without a semi-colon", + "output": [ + [ + "Character", + "&loarr" + ] + ] + }, + { + "input": "⇽", + "description": "Named entity: loarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21fd" + ] + ] + }, + { + "input": "&lobrk", + "description": "Bad named entity: lobrk without a semi-colon", + "output": [ + [ + "Character", + "&lobrk" + ] + ] + }, + { + "input": "⟦", + "description": "Named entity: lobrk; with a semi-colon", + "output": [ + [ + "Character", + "\u27e6" + ] + ] + }, + { + "input": "&longleftarrow", + "description": "Bad named entity: longleftarrow without a semi-colon", + "output": [ + [ + "Character", + "&longleftarrow" + ] + ] + }, + { + "input": "⟵", + "description": "Named entity: longleftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f5" + ] + ] + }, + { + "input": "&longleftrightarrow", + "description": "Bad named entity: longleftrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&longleftrightarrow" + ] + ] + }, + { + "input": "⟷", + "description": "Named entity: longleftrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f7" + ] + ] + }, + { + "input": "&longmapsto", + "description": "Bad named entity: longmapsto without a semi-colon", + "output": [ + [ + "Character", + "&longmapsto" + ] + ] + }, + { + "input": "⟼", + "description": "Named entity: longmapsto; with a semi-colon", + "output": [ + [ + "Character", + "\u27fc" + ] + ] + }, + { + "input": "&longrightarrow", + "description": "Bad named entity: longrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&longrightarrow" + ] + ] + }, + { + "input": "⟶", + "description": "Named entity: longrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u27f6" + ] + ] + }, + { + "input": "&looparrowleft", + "description": "Bad named entity: looparrowleft without a semi-colon", + "output": [ + [ + "Character", + "&looparrowleft" + ] + ] + }, + { + "input": "↫", + "description": "Named entity: looparrowleft; with a semi-colon", + "output": [ + [ + "Character", + "\u21ab" + ] + ] + }, + { + "input": "&looparrowright", + "description": "Bad named entity: looparrowright without a semi-colon", + "output": [ + [ + "Character", + "&looparrowright" + ] + ] + }, + { + "input": "↬", + "description": "Named entity: looparrowright; with a semi-colon", + "output": [ + [ + "Character", + "\u21ac" + ] + ] + }, + { + "input": "&lopar", + "description": "Bad named entity: lopar without a semi-colon", + "output": [ + [ + "Character", + "&lopar" + ] + ] + }, + { + "input": "⦅", + "description": "Named entity: lopar; with a semi-colon", + "output": [ + [ + "Character", + "\u2985" + ] + ] + }, + { + "input": "&lopf", + "description": "Bad named entity: lopf without a semi-colon", + "output": [ + [ + "Character", + "&lopf" + ] + ] + }, + { + "input": "𝕝", + "description": "Named entity: lopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd5d" + ] + ] + }, + { + "input": "&loplus", + "description": "Bad named entity: loplus without a semi-colon", + "output": [ + [ + "Character", + "&loplus" + ] + ] + }, + { + "input": "⨭", + "description": "Named entity: loplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a2d" + ] + ] + }, + { + "input": "&lotimes", + "description": "Bad named entity: lotimes without a semi-colon", + "output": [ + [ + "Character", + "&lotimes" + ] + ] + }, + { + "input": "⨴", + "description": "Named entity: lotimes; with a semi-colon", + "output": [ + [ + "Character", + "\u2a34" + ] + ] + }, + { + "input": "&lowast", + "description": "Bad named entity: lowast without a semi-colon", + "output": [ + [ + "Character", + "&lowast" + ] + ] + }, + { + "input": "∗", + "description": "Named entity: lowast; with a semi-colon", + "output": [ + [ + "Character", + "\u2217" + ] + ] + }, + { + "input": "&lowbar", + "description": "Bad named entity: lowbar without a semi-colon", + "output": [ + [ + "Character", + "&lowbar" + ] + ] + }, + { + "input": "_", + "description": "Named entity: lowbar; with a semi-colon", + "output": [ + [ + "Character", + "_" + ] + ] + }, + { + "input": "&loz", + "description": "Bad named entity: loz without a semi-colon", + "output": [ + [ + "Character", + "&loz" + ] + ] + }, + { + "input": "◊", + "description": "Named entity: loz; with a semi-colon", + "output": [ + [ + "Character", + "\u25ca" + ] + ] + }, + { + "input": "&lozenge", + "description": "Bad named entity: lozenge without a semi-colon", + "output": [ + [ + "Character", + "&lozenge" + ] + ] + }, + { + "input": "◊", + "description": "Named entity: lozenge; with a semi-colon", + "output": [ + [ + "Character", + "\u25ca" + ] + ] + }, + { + "input": "&lozf", + "description": "Bad named entity: lozf without a semi-colon", + "output": [ + [ + "Character", + "&lozf" + ] + ] + }, + { + "input": "⧫", + "description": "Named entity: lozf; with a semi-colon", + "output": [ + [ + "Character", + "\u29eb" + ] + ] + }, + { + "input": "&lpar", + "description": "Bad named entity: lpar without a semi-colon", + "output": [ + [ + "Character", + "&lpar" + ] + ] + }, + { + "input": "(", + "description": "Named entity: lpar; with a semi-colon", + "output": [ + [ + "Character", + "(" + ] + ] + }, + { + "input": "&lparlt", + "description": "Bad named entity: lparlt without a semi-colon", + "output": [ + [ + "Character", + "&lparlt" + ] + ] + }, + { + "input": "⦓", + "description": "Named entity: lparlt; with a semi-colon", + "output": [ + [ + "Character", + "\u2993" + ] + ] + }, + { + "input": "&lrarr", + "description": "Bad named entity: lrarr without a semi-colon", + "output": [ + [ + "Character", + "&lrarr" + ] + ] + }, + { + "input": "⇆", + "description": "Named entity: lrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21c6" + ] + ] + }, + { + "input": "&lrcorner", + "description": "Bad named entity: lrcorner without a semi-colon", + "output": [ + [ + "Character", + "&lrcorner" + ] + ] + }, + { + "input": "⌟", + "description": "Named entity: lrcorner; with a semi-colon", + "output": [ + [ + "Character", + "\u231f" + ] + ] + }, + { + "input": "&lrhar", + "description": "Bad named entity: lrhar without a semi-colon", + "output": [ + [ + "Character", + "&lrhar" + ] + ] + }, + { + "input": "⇋", + "description": "Named entity: lrhar; with a semi-colon", + "output": [ + [ + "Character", + "\u21cb" + ] + ] + }, + { + "input": "&lrhard", + "description": "Bad named entity: lrhard without a semi-colon", + "output": [ + [ + "Character", + "&lrhard" + ] + ] + }, + { + "input": "⥭", + "description": "Named entity: lrhard; with a semi-colon", + "output": [ + [ + "Character", + "\u296d" + ] + ] + }, + { + "input": "&lrm", + "description": "Bad named entity: lrm without a semi-colon", + "output": [ + [ + "Character", + "&lrm" + ] + ] + }, + { + "input": "‎", + "description": "Named entity: lrm; with a semi-colon", + "output": [ + [ + "Character", + "\u200e" + ] + ] + }, + { + "input": "&lrtri", + "description": "Bad named entity: lrtri without a semi-colon", + "output": [ + [ + "Character", + "&lrtri" + ] + ] + }, + { + "input": "⊿", + "description": "Named entity: lrtri; with a semi-colon", + "output": [ + [ + "Character", + "\u22bf" + ] + ] + }, + { + "input": "&lsaquo", + "description": "Bad named entity: lsaquo without a semi-colon", + "output": [ + [ + "Character", + "&lsaquo" + ] + ] + }, + { + "input": "‹", + "description": "Named entity: lsaquo; with a semi-colon", + "output": [ + [ + "Character", + "\u2039" + ] + ] + }, + { + "input": "&lscr", + "description": "Bad named entity: lscr without a semi-colon", + "output": [ + [ + "Character", + "&lscr" + ] + ] + }, + { + "input": "𝓁", + "description": "Named entity: lscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc1" + ] + ] + }, + { + "input": "&lsh", + "description": "Bad named entity: lsh without a semi-colon", + "output": [ + [ + "Character", + "&lsh" + ] + ] + }, + { + "input": "↰", + "description": "Named entity: lsh; with a semi-colon", + "output": [ + [ + "Character", + "\u21b0" + ] + ] + }, + { + "input": "&lsim", + "description": "Bad named entity: lsim without a semi-colon", + "output": [ + [ + "Character", + "&lsim" + ] + ] + }, + { + "input": "≲", + "description": "Named entity: lsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2272" + ] + ] + }, + { + "input": "&lsime", + "description": "Bad named entity: lsime without a semi-colon", + "output": [ + [ + "Character", + "&lsime" + ] + ] + }, + { + "input": "⪍", + "description": "Named entity: lsime; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8d" + ] + ] + }, + { + "input": "&lsimg", + "description": "Bad named entity: lsimg without a semi-colon", + "output": [ + [ + "Character", + "&lsimg" + ] + ] + }, + { + "input": "⪏", + "description": "Named entity: lsimg; with a semi-colon", + "output": [ + [ + "Character", + "\u2a8f" + ] + ] + }, + { + "input": "&lsqb", + "description": "Bad named entity: lsqb without a semi-colon", + "output": [ + [ + "Character", + "&lsqb" + ] + ] + }, + { + "input": "[", + "description": "Named entity: lsqb; with a semi-colon", + "output": [ + [ + "Character", + "[" + ] + ] + }, + { + "input": "&lsquo", + "description": "Bad named entity: lsquo without a semi-colon", + "output": [ + [ + "Character", + "&lsquo" + ] + ] + }, + { + "input": "‘", + "description": "Named entity: lsquo; with a semi-colon", + "output": [ + [ + "Character", + "\u2018" + ] + ] + }, + { + "input": "&lsquor", + "description": "Bad named entity: lsquor without a semi-colon", + "output": [ + [ + "Character", + "&lsquor" + ] + ] + }, + { + "input": "‚", + "description": "Named entity: lsquor; with a semi-colon", + "output": [ + [ + "Character", + "\u201a" + ] + ] + }, + { + "input": "&lstrok", + "description": "Bad named entity: lstrok without a semi-colon", + "output": [ + [ + "Character", + "&lstrok" + ] + ] + }, + { + "input": "ł", + "description": "Named entity: lstrok; with a semi-colon", + "output": [ + [ + "Character", + "\u0142" + ] + ] + }, + { + "input": "<", + "description": "Named entity: lt without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "<" + ] + ] + }, + { + "input": "<", + "description": "Named entity: lt; with a semi-colon", + "output": [ + [ + "Character", + "<" + ] + ] + }, + { + "input": "⪦", + "description": "Named entity: ltcc; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa6" + ] + ] + }, + { + "input": "⩹", + "description": "Named entity: ltcir; with a semi-colon", + "output": [ + [ + "Character", + "\u2a79" + ] + ] + }, + { + "input": "⋖", + "description": "Named entity: ltdot; with a semi-colon", + "output": [ + [ + "Character", + "\u22d6" + ] + ] + }, + { + "input": "⋋", + "description": "Named entity: lthree; with a semi-colon", + "output": [ + [ + "Character", + "\u22cb" + ] + ] + }, + { + "input": "⋉", + "description": "Named entity: ltimes; with a semi-colon", + "output": [ + [ + "Character", + "\u22c9" + ] + ] + }, + { + "input": "⥶", + "description": "Named entity: ltlarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2976" + ] + ] + }, + { + "input": "⩻", + "description": "Named entity: ltquest; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7b" + ] + ] + }, + { + "input": "⦖", + "description": "Named entity: ltrPar; with a semi-colon", + "output": [ + [ + "Character", + "\u2996" + ] + ] + }, + { + "input": "◃", + "description": "Named entity: ltri; with a semi-colon", + "output": [ + [ + "Character", + "\u25c3" + ] + ] + }, + { + "input": "⊴", + "description": "Named entity: ltrie; with a semi-colon", + "output": [ + [ + "Character", + "\u22b4" + ] + ] + }, + { + "input": "◂", + "description": "Named entity: ltrif; with a semi-colon", + "output": [ + [ + "Character", + "\u25c2" + ] + ] + }, + { + "input": "&lurdshar", + "description": "Bad named entity: lurdshar without a semi-colon", + "output": [ + [ + "Character", + "&lurdshar" + ] + ] + }, + { + "input": "⥊", + "description": "Named entity: lurdshar; with a semi-colon", + "output": [ + [ + "Character", + "\u294a" + ] + ] + }, + { + "input": "&luruhar", + "description": "Bad named entity: luruhar without a semi-colon", + "output": [ + [ + "Character", + "&luruhar" + ] + ] + }, + { + "input": "⥦", + "description": "Named entity: luruhar; with a semi-colon", + "output": [ + [ + "Character", + "\u2966" + ] + ] + }, + { + "input": "&lvertneqq", + "description": "Bad named entity: lvertneqq without a semi-colon", + "output": [ + [ + "Character", + "&lvertneqq" + ] + ] + }, + { + "input": "≨︀", + "description": "Named entity: lvertneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2268\ufe00" + ] + ] + }, + { + "input": "&lvnE", + "description": "Bad named entity: lvnE without a semi-colon", + "output": [ + [ + "Character", + "&lvnE" + ] + ] + }, + { + "input": "≨︀", + "description": "Named entity: lvnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2268\ufe00" + ] + ] + }, + { + "input": "&mDDot", + "description": "Bad named entity: mDDot without a semi-colon", + "output": [ + [ + "Character", + "&mDDot" + ] + ] + }, + { + "input": "∺", + "description": "Named entity: mDDot; with a semi-colon", + "output": [ + [ + "Character", + "\u223a" + ] + ] + }, + { + "input": "¯", + "description": "Named entity: macr without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00af" + ] + ] + }, + { + "input": "¯", + "description": "Named entity: macr; with a semi-colon", + "output": [ + [ + "Character", + "\u00af" + ] + ] + }, + { + "input": "&male", + "description": "Bad named entity: male without a semi-colon", + "output": [ + [ + "Character", + "&male" + ] + ] + }, + { + "input": "♂", + "description": "Named entity: male; with a semi-colon", + "output": [ + [ + "Character", + "\u2642" + ] + ] + }, + { + "input": "&malt", + "description": "Bad named entity: malt without a semi-colon", + "output": [ + [ + "Character", + "&malt" + ] + ] + }, + { + "input": "✠", + "description": "Named entity: malt; with a semi-colon", + "output": [ + [ + "Character", + "\u2720" + ] + ] + }, + { + "input": "&maltese", + "description": "Bad named entity: maltese without a semi-colon", + "output": [ + [ + "Character", + "&maltese" + ] + ] + }, + { + "input": "✠", + "description": "Named entity: maltese; with a semi-colon", + "output": [ + [ + "Character", + "\u2720" + ] + ] + }, + { + "input": "&map", + "description": "Bad named entity: map without a semi-colon", + "output": [ + [ + "Character", + "&map" + ] + ] + }, + { + "input": "↦", + "description": "Named entity: map; with a semi-colon", + "output": [ + [ + "Character", + "\u21a6" + ] + ] + }, + { + "input": "&mapsto", + "description": "Bad named entity: mapsto without a semi-colon", + "output": [ + [ + "Character", + "&mapsto" + ] + ] + }, + { + "input": "↦", + "description": "Named entity: mapsto; with a semi-colon", + "output": [ + [ + "Character", + "\u21a6" + ] + ] + }, + { + "input": "&mapstodown", + "description": "Bad named entity: mapstodown without a semi-colon", + "output": [ + [ + "Character", + "&mapstodown" + ] + ] + }, + { + "input": "↧", + "description": "Named entity: mapstodown; with a semi-colon", + "output": [ + [ + "Character", + "\u21a7" + ] + ] + }, + { + "input": "&mapstoleft", + "description": "Bad named entity: mapstoleft without a semi-colon", + "output": [ + [ + "Character", + "&mapstoleft" + ] + ] + }, + { + "input": "↤", + "description": "Named entity: mapstoleft; with a semi-colon", + "output": [ + [ + "Character", + "\u21a4" + ] + ] + }, + { + "input": "&mapstoup", + "description": "Bad named entity: mapstoup without a semi-colon", + "output": [ + [ + "Character", + "&mapstoup" + ] + ] + }, + { + "input": "↥", + "description": "Named entity: mapstoup; with a semi-colon", + "output": [ + [ + "Character", + "\u21a5" + ] + ] + }, + { + "input": "&marker", + "description": "Bad named entity: marker without a semi-colon", + "output": [ + [ + "Character", + "&marker" + ] + ] + }, + { + "input": "▮", + "description": "Named entity: marker; with a semi-colon", + "output": [ + [ + "Character", + "\u25ae" + ] + ] + }, + { + "input": "&mcomma", + "description": "Bad named entity: mcomma without a semi-colon", + "output": [ + [ + "Character", + "&mcomma" + ] + ] + }, + { + "input": "⨩", + "description": "Named entity: mcomma; with a semi-colon", + "output": [ + [ + "Character", + "\u2a29" + ] + ] + }, + { + "input": "&mcy", + "description": "Bad named entity: mcy without a semi-colon", + "output": [ + [ + "Character", + "&mcy" + ] + ] + }, + { + "input": "м", + "description": "Named entity: mcy; with a semi-colon", + "output": [ + [ + "Character", + "\u043c" + ] + ] + }, + { + "input": "&mdash", + "description": "Bad named entity: mdash without a semi-colon", + "output": [ + [ + "Character", + "&mdash" + ] + ] + }, + { + "input": "—", + "description": "Named entity: mdash; with a semi-colon", + "output": [ + [ + "Character", + "\u2014" + ] + ] + }, + { + "input": "&measuredangle", + "description": "Bad named entity: measuredangle without a semi-colon", + "output": [ + [ + "Character", + "&measuredangle" + ] + ] + }, + { + "input": "∡", + "description": "Named entity: measuredangle; with a semi-colon", + "output": [ + [ + "Character", + "\u2221" + ] + ] + }, + { + "input": "&mfr", + "description": "Bad named entity: mfr without a semi-colon", + "output": [ + [ + "Character", + "&mfr" + ] + ] + }, + { + "input": "𝔪", + "description": "Named entity: mfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd2a" + ] + ] + }, + { + "input": "&mho", + "description": "Bad named entity: mho without a semi-colon", + "output": [ + [ + "Character", + "&mho" + ] + ] + }, + { + "input": "℧", + "description": "Named entity: mho; with a semi-colon", + "output": [ + [ + "Character", + "\u2127" + ] + ] + }, + { + "input": "µ", + "description": "Named entity: micro without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b5" + ] + ] + }, + { + "input": "µ", + "description": "Named entity: micro; with a semi-colon", + "output": [ + [ + "Character", + "\u00b5" + ] + ] + }, + { + "input": "&mid", + "description": "Bad named entity: mid without a semi-colon", + "output": [ + [ + "Character", + "&mid" + ] + ] + }, + { + "input": "∣", + "description": "Named entity: mid; with a semi-colon", + "output": [ + [ + "Character", + "\u2223" + ] + ] + }, + { + "input": "&midast", + "description": "Bad named entity: midast without a semi-colon", + "output": [ + [ + "Character", + "&midast" + ] + ] + }, + { + "input": "*", + "description": "Named entity: midast; with a semi-colon", + "output": [ + [ + "Character", + "*" + ] + ] + }, + { + "input": "&midcir", + "description": "Bad named entity: midcir without a semi-colon", + "output": [ + [ + "Character", + "&midcir" + ] + ] + }, + { + "input": "⫰", + "description": "Named entity: midcir; with a semi-colon", + "output": [ + [ + "Character", + "\u2af0" + ] + ] + }, + { + "input": "·", + "description": "Named entity: middot without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b7" + ] + ] + }, + { + "input": "·", + "description": "Named entity: middot; with a semi-colon", + "output": [ + [ + "Character", + "\u00b7" + ] + ] + }, + { + "input": "&minus", + "description": "Bad named entity: minus without a semi-colon", + "output": [ + [ + "Character", + "&minus" + ] + ] + }, + { + "input": "−", + "description": "Named entity: minus; with a semi-colon", + "output": [ + [ + "Character", + "\u2212" + ] + ] + }, + { + "input": "&minusb", + "description": "Bad named entity: minusb without a semi-colon", + "output": [ + [ + "Character", + "&minusb" + ] + ] + }, + { + "input": "⊟", + "description": "Named entity: minusb; with a semi-colon", + "output": [ + [ + "Character", + "\u229f" + ] + ] + }, + { + "input": "&minusd", + "description": "Bad named entity: minusd without a semi-colon", + "output": [ + [ + "Character", + "&minusd" + ] + ] + }, + { + "input": "∸", + "description": "Named entity: minusd; with a semi-colon", + "output": [ + [ + "Character", + "\u2238" + ] + ] + }, + { + "input": "&minusdu", + "description": "Bad named entity: minusdu without a semi-colon", + "output": [ + [ + "Character", + "&minusdu" + ] + ] + }, + { + "input": "⨪", + "description": "Named entity: minusdu; with a semi-colon", + "output": [ + [ + "Character", + "\u2a2a" + ] + ] + }, + { + "input": "&mlcp", + "description": "Bad named entity: mlcp without a semi-colon", + "output": [ + [ + "Character", + "&mlcp" + ] + ] + }, + { + "input": "⫛", + "description": "Named entity: mlcp; with a semi-colon", + "output": [ + [ + "Character", + "\u2adb" + ] + ] + }, + { + "input": "&mldr", + "description": "Bad named entity: mldr without a semi-colon", + "output": [ + [ + "Character", + "&mldr" + ] + ] + }, + { + "input": "…", + "description": "Named entity: mldr; with a semi-colon", + "output": [ + [ + "Character", + "\u2026" + ] + ] + }, + { + "input": "&mnplus", + "description": "Bad named entity: mnplus without a semi-colon", + "output": [ + [ + "Character", + "&mnplus" + ] + ] + }, + { + "input": "∓", + "description": "Named entity: mnplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2213" + ] + ] + }, + { + "input": "&models", + "description": "Bad named entity: models without a semi-colon", + "output": [ + [ + "Character", + "&models" + ] + ] + }, + { + "input": "⊧", + "description": "Named entity: models; with a semi-colon", + "output": [ + [ + "Character", + "\u22a7" + ] + ] + }, + { + "input": "&mopf", + "description": "Bad named entity: mopf without a semi-colon", + "output": [ + [ + "Character", + "&mopf" + ] + ] + }, + { + "input": "𝕞", + "description": "Named entity: mopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd5e" + ] + ] + }, + { + "input": "&mp", + "description": "Bad named entity: mp without a semi-colon", + "output": [ + [ + "Character", + "&mp" + ] + ] + }, + { + "input": "∓", + "description": "Named entity: mp; with a semi-colon", + "output": [ + [ + "Character", + "\u2213" + ] + ] + }, + { + "input": "&mscr", + "description": "Bad named entity: mscr without a semi-colon", + "output": [ + [ + "Character", + "&mscr" + ] + ] + }, + { + "input": "𝓂", + "description": "Named entity: mscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc2" + ] + ] + }, + { + "input": "&mstpos", + "description": "Bad named entity: mstpos without a semi-colon", + "output": [ + [ + "Character", + "&mstpos" + ] + ] + }, + { + "input": "∾", + "description": "Named entity: mstpos; with a semi-colon", + "output": [ + [ + "Character", + "\u223e" + ] + ] + }, + { + "input": "&mu", + "description": "Bad named entity: mu without a semi-colon", + "output": [ + [ + "Character", + "&mu" + ] + ] + }, + { + "input": "μ", + "description": "Named entity: mu; with a semi-colon", + "output": [ + [ + "Character", + "\u03bc" + ] + ] + }, + { + "input": "&multimap", + "description": "Bad named entity: multimap without a semi-colon", + "output": [ + [ + "Character", + "&multimap" + ] + ] + }, + { + "input": "⊸", + "description": "Named entity: multimap; with a semi-colon", + "output": [ + [ + "Character", + "\u22b8" + ] + ] + }, + { + "input": "&mumap", + "description": "Bad named entity: mumap without a semi-colon", + "output": [ + [ + "Character", + "&mumap" + ] + ] + }, + { + "input": "⊸", + "description": "Named entity: mumap; with a semi-colon", + "output": [ + [ + "Character", + "\u22b8" + ] + ] + }, + { + "input": "&nGg", + "description": "Bad named entity: nGg without a semi-colon", + "output": [ + [ + "Character", + "&nGg" + ] + ] + }, + { + "input": "⋙̸", + "description": "Named entity: nGg; with a semi-colon", + "output": [ + [ + "Character", + "\u22d9\u0338" + ] + ] + }, + { + "input": "&nGt", + "description": "Bad named entity: nGt without a semi-colon", + "output": [ + [ + "Character", + "&nGt" + ] + ] + }, + { + "input": "≫⃒", + "description": "Named entity: nGt; with a semi-colon", + "output": [ + [ + "Character", + "\u226b\u20d2" + ] + ] + }, + { + "input": "&nGtv", + "description": "Bad named entity: nGtv without a semi-colon", + "output": [ + [ + "Character", + "&nGtv" + ] + ] + }, + { + "input": "≫̸", + "description": "Named entity: nGtv; with a semi-colon", + "output": [ + [ + "Character", + "\u226b\u0338" + ] + ] + }, + { + "input": "&nLeftarrow", + "description": "Bad named entity: nLeftarrow without a semi-colon", + "output": [ + [ + "Character", + "&nLeftarrow" + ] + ] + }, + { + "input": "⇍", + "description": "Named entity: nLeftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21cd" + ] + ] + }, + { + "input": "&nLeftrightarrow", + "description": "Bad named entity: nLeftrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&nLeftrightarrow" + ] + ] + }, + { + "input": "⇎", + "description": "Named entity: nLeftrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21ce" + ] + ] + }, + { + "input": "&nLl", + "description": "Bad named entity: nLl without a semi-colon", + "output": [ + [ + "Character", + "&nLl" + ] + ] + }, + { + "input": "⋘̸", + "description": "Named entity: nLl; with a semi-colon", + "output": [ + [ + "Character", + "\u22d8\u0338" + ] + ] + }, + { + "input": "&nLt", + "description": "Bad named entity: nLt without a semi-colon", + "output": [ + [ + "Character", + "&nLt" + ] + ] + }, + { + "input": "≪⃒", + "description": "Named entity: nLt; with a semi-colon", + "output": [ + [ + "Character", + "\u226a\u20d2" + ] + ] + }, + { + "input": "&nLtv", + "description": "Bad named entity: nLtv without a semi-colon", + "output": [ + [ + "Character", + "&nLtv" + ] + ] + }, + { + "input": "≪̸", + "description": "Named entity: nLtv; with a semi-colon", + "output": [ + [ + "Character", + "\u226a\u0338" + ] + ] + }, + { + "input": "&nRightarrow", + "description": "Bad named entity: nRightarrow without a semi-colon", + "output": [ + [ + "Character", + "&nRightarrow" + ] + ] + }, + { + "input": "⇏", + "description": "Named entity: nRightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21cf" + ] + ] + }, + { + "input": "&nVDash", + "description": "Bad named entity: nVDash without a semi-colon", + "output": [ + [ + "Character", + "&nVDash" + ] + ] + }, + { + "input": "⊯", + "description": "Named entity: nVDash; with a semi-colon", + "output": [ + [ + "Character", + "\u22af" + ] + ] + }, + { + "input": "&nVdash", + "description": "Bad named entity: nVdash without a semi-colon", + "output": [ + [ + "Character", + "&nVdash" + ] + ] + }, + { + "input": "⊮", + "description": "Named entity: nVdash; with a semi-colon", + "output": [ + [ + "Character", + "\u22ae" + ] + ] + }, + { + "input": "&nabla", + "description": "Bad named entity: nabla without a semi-colon", + "output": [ + [ + "Character", + "&nabla" + ] + ] + }, + { + "input": "∇", + "description": "Named entity: nabla; with a semi-colon", + "output": [ + [ + "Character", + "\u2207" + ] + ] + }, + { + "input": "&nacute", + "description": "Bad named entity: nacute without a semi-colon", + "output": [ + [ + "Character", + "&nacute" + ] + ] + }, + { + "input": "ń", + "description": "Named entity: nacute; with a semi-colon", + "output": [ + [ + "Character", + "\u0144" + ] + ] + }, + { + "input": "&nang", + "description": "Bad named entity: nang without a semi-colon", + "output": [ + [ + "Character", + "&nang" + ] + ] + }, + { + "input": "∠⃒", + "description": "Named entity: nang; with a semi-colon", + "output": [ + [ + "Character", + "\u2220\u20d2" + ] + ] + }, + { + "input": "&nap", + "description": "Bad named entity: nap without a semi-colon", + "output": [ + [ + "Character", + "&nap" + ] + ] + }, + { + "input": "≉", + "description": "Named entity: nap; with a semi-colon", + "output": [ + [ + "Character", + "\u2249" + ] + ] + }, + { + "input": "&napE", + "description": "Bad named entity: napE without a semi-colon", + "output": [ + [ + "Character", + "&napE" + ] + ] + }, + { + "input": "⩰̸", + "description": "Named entity: napE; with a semi-colon", + "output": [ + [ + "Character", + "\u2a70\u0338" + ] + ] + }, + { + "input": "&napid", + "description": "Bad named entity: napid without a semi-colon", + "output": [ + [ + "Character", + "&napid" + ] + ] + }, + { + "input": "≋̸", + "description": "Named entity: napid; with a semi-colon", + "output": [ + [ + "Character", + "\u224b\u0338" + ] + ] + }, + { + "input": "&napos", + "description": "Bad named entity: napos without a semi-colon", + "output": [ + [ + "Character", + "&napos" + ] + ] + }, + { + "input": "ʼn", + "description": "Named entity: napos; with a semi-colon", + "output": [ + [ + "Character", + "\u0149" + ] + ] + }, + { + "input": "&napprox", + "description": "Bad named entity: napprox without a semi-colon", + "output": [ + [ + "Character", + "&napprox" + ] + ] + }, + { + "input": "≉", + "description": "Named entity: napprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2249" + ] + ] + }, + { + "input": "&natur", + "description": "Bad named entity: natur without a semi-colon", + "output": [ + [ + "Character", + "&natur" + ] + ] + }, + { + "input": "♮", + "description": "Named entity: natur; with a semi-colon", + "output": [ + [ + "Character", + "\u266e" + ] + ] + }, + { + "input": "&natural", + "description": "Bad named entity: natural without a semi-colon", + "output": [ + [ + "Character", + "&natural" + ] + ] + }, + { + "input": "♮", + "description": "Named entity: natural; with a semi-colon", + "output": [ + [ + "Character", + "\u266e" + ] + ] + }, + { + "input": "&naturals", + "description": "Bad named entity: naturals without a semi-colon", + "output": [ + [ + "Character", + "&naturals" + ] + ] + }, + { + "input": "ℕ", + "description": "Named entity: naturals; with a semi-colon", + "output": [ + [ + "Character", + "\u2115" + ] + ] + }, + { + "input": " ", + "description": "Named entity: nbsp without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a0" + ] + ] + }, + { + "input": " ", + "description": "Named entity: nbsp; with a semi-colon", + "output": [ + [ + "Character", + "\u00a0" + ] + ] + }, + { + "input": "&nbump", + "description": "Bad named entity: nbump without a semi-colon", + "output": [ + [ + "Character", + "&nbump" + ] + ] + }, + { + "input": "≎̸", + "description": "Named entity: nbump; with a semi-colon", + "output": [ + [ + "Character", + "\u224e\u0338" + ] + ] + }, + { + "input": "&nbumpe", + "description": "Bad named entity: nbumpe without a semi-colon", + "output": [ + [ + "Character", + "&nbumpe" + ] + ] + }, + { + "input": "≏̸", + "description": "Named entity: nbumpe; with a semi-colon", + "output": [ + [ + "Character", + "\u224f\u0338" + ] + ] + }, + { + "input": "&ncap", + "description": "Bad named entity: ncap without a semi-colon", + "output": [ + [ + "Character", + "&ncap" + ] + ] + }, + { + "input": "⩃", + "description": "Named entity: ncap; with a semi-colon", + "output": [ + [ + "Character", + "\u2a43" + ] + ] + }, + { + "input": "&ncaron", + "description": "Bad named entity: ncaron without a semi-colon", + "output": [ + [ + "Character", + "&ncaron" + ] + ] + }, + { + "input": "ň", + "description": "Named entity: ncaron; with a semi-colon", + "output": [ + [ + "Character", + "\u0148" + ] + ] + }, + { + "input": "&ncedil", + "description": "Bad named entity: ncedil without a semi-colon", + "output": [ + [ + "Character", + "&ncedil" + ] + ] + }, + { + "input": "ņ", + "description": "Named entity: ncedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0146" + ] + ] + }, + { + "input": "&ncong", + "description": "Bad named entity: ncong without a semi-colon", + "output": [ + [ + "Character", + "&ncong" + ] + ] + }, + { + "input": "≇", + "description": "Named entity: ncong; with a semi-colon", + "output": [ + [ + "Character", + "\u2247" + ] + ] + }, + { + "input": "&ncongdot", + "description": "Bad named entity: ncongdot without a semi-colon", + "output": [ + [ + "Character", + "&ncongdot" + ] + ] + }, + { + "input": "⩭̸", + "description": "Named entity: ncongdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a6d\u0338" + ] + ] + }, + { + "input": "&ncup", + "description": "Bad named entity: ncup without a semi-colon", + "output": [ + [ + "Character", + "&ncup" + ] + ] + }, + { + "input": "⩂", + "description": "Named entity: ncup; with a semi-colon", + "output": [ + [ + "Character", + "\u2a42" + ] + ] + }, + { + "input": "&ncy", + "description": "Bad named entity: ncy without a semi-colon", + "output": [ + [ + "Character", + "&ncy" + ] + ] + }, + { + "input": "н", + "description": "Named entity: ncy; with a semi-colon", + "output": [ + [ + "Character", + "\u043d" + ] + ] + }, + { + "input": "&ndash", + "description": "Bad named entity: ndash without a semi-colon", + "output": [ + [ + "Character", + "&ndash" + ] + ] + }, + { + "input": "–", + "description": "Named entity: ndash; with a semi-colon", + "output": [ + [ + "Character", + "\u2013" + ] + ] + }, + { + "input": "&ne", + "description": "Bad named entity: ne without a semi-colon", + "output": [ + [ + "Character", + "&ne" + ] + ] + }, + { + "input": "≠", + "description": "Named entity: ne; with a semi-colon", + "output": [ + [ + "Character", + "\u2260" + ] + ] + }, + { + "input": "&neArr", + "description": "Bad named entity: neArr without a semi-colon", + "output": [ + [ + "Character", + "&neArr" + ] + ] + }, + { + "input": "⇗", + "description": "Named entity: neArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d7" + ] + ] + }, + { + "input": "&nearhk", + "description": "Bad named entity: nearhk without a semi-colon", + "output": [ + [ + "Character", + "&nearhk" + ] + ] + }, + { + "input": "⤤", + "description": "Named entity: nearhk; with a semi-colon", + "output": [ + [ + "Character", + "\u2924" + ] + ] + }, + { + "input": "&nearr", + "description": "Bad named entity: nearr without a semi-colon", + "output": [ + [ + "Character", + "&nearr" + ] + ] + }, + { + "input": "↗", + "description": "Named entity: nearr; with a semi-colon", + "output": [ + [ + "Character", + "\u2197" + ] + ] + }, + { + "input": "&nearrow", + "description": "Bad named entity: nearrow without a semi-colon", + "output": [ + [ + "Character", + "&nearrow" + ] + ] + }, + { + "input": "↗", + "description": "Named entity: nearrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2197" + ] + ] + }, + { + "input": "&nedot", + "description": "Bad named entity: nedot without a semi-colon", + "output": [ + [ + "Character", + "&nedot" + ] + ] + }, + { + "input": "≐̸", + "description": "Named entity: nedot; with a semi-colon", + "output": [ + [ + "Character", + "\u2250\u0338" + ] + ] + }, + { + "input": "&nequiv", + "description": "Bad named entity: nequiv without a semi-colon", + "output": [ + [ + "Character", + "&nequiv" + ] + ] + }, + { + "input": "≢", + "description": "Named entity: nequiv; with a semi-colon", + "output": [ + [ + "Character", + "\u2262" + ] + ] + }, + { + "input": "&nesear", + "description": "Bad named entity: nesear without a semi-colon", + "output": [ + [ + "Character", + "&nesear" + ] + ] + }, + { + "input": "⤨", + "description": "Named entity: nesear; with a semi-colon", + "output": [ + [ + "Character", + "\u2928" + ] + ] + }, + { + "input": "&nesim", + "description": "Bad named entity: nesim without a semi-colon", + "output": [ + [ + "Character", + "&nesim" + ] + ] + }, + { + "input": "≂̸", + "description": "Named entity: nesim; with a semi-colon", + "output": [ + [ + "Character", + "\u2242\u0338" + ] + ] + }, + { + "input": "&nexist", + "description": "Bad named entity: nexist without a semi-colon", + "output": [ + [ + "Character", + "&nexist" + ] + ] + }, + { + "input": "∄", + "description": "Named entity: nexist; with a semi-colon", + "output": [ + [ + "Character", + "\u2204" + ] + ] + }, + { + "input": "&nexists", + "description": "Bad named entity: nexists without a semi-colon", + "output": [ + [ + "Character", + "&nexists" + ] + ] + }, + { + "input": "∄", + "description": "Named entity: nexists; with a semi-colon", + "output": [ + [ + "Character", + "\u2204" + ] + ] + }, + { + "input": "&nfr", + "description": "Bad named entity: nfr without a semi-colon", + "output": [ + [ + "Character", + "&nfr" + ] + ] + }, + { + "input": "𝔫", + "description": "Named entity: nfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd2b" + ] + ] + }, + { + "input": "&ngE", + "description": "Bad named entity: ngE without a semi-colon", + "output": [ + [ + "Character", + "&ngE" + ] + ] + }, + { + "input": "≧̸", + "description": "Named entity: ngE; with a semi-colon", + "output": [ + [ + "Character", + "\u2267\u0338" + ] + ] + }, + { + "input": "&nge", + "description": "Bad named entity: nge without a semi-colon", + "output": [ + [ + "Character", + "&nge" + ] + ] + }, + { + "input": "≱", + "description": "Named entity: nge; with a semi-colon", + "output": [ + [ + "Character", + "\u2271" + ] + ] + }, + { + "input": "&ngeq", + "description": "Bad named entity: ngeq without a semi-colon", + "output": [ + [ + "Character", + "&ngeq" + ] + ] + }, + { + "input": "≱", + "description": "Named entity: ngeq; with a semi-colon", + "output": [ + [ + "Character", + "\u2271" + ] + ] + }, + { + "input": "&ngeqq", + "description": "Bad named entity: ngeqq without a semi-colon", + "output": [ + [ + "Character", + "&ngeqq" + ] + ] + }, + { + "input": "≧̸", + "description": "Named entity: ngeqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2267\u0338" + ] + ] + }, + { + "input": "&ngeqslant", + "description": "Bad named entity: ngeqslant without a semi-colon", + "output": [ + [ + "Character", + "&ngeqslant" + ] + ] + }, + { + "input": "⩾̸", + "description": "Named entity: ngeqslant; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7e\u0338" + ] + ] + }, + { + "input": "&nges", + "description": "Bad named entity: nges without a semi-colon", + "output": [ + [ + "Character", + "&nges" + ] + ] + }, + { + "input": "⩾̸", + "description": "Named entity: nges; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7e\u0338" + ] + ] + }, + { + "input": "&ngsim", + "description": "Bad named entity: ngsim without a semi-colon", + "output": [ + [ + "Character", + "&ngsim" + ] + ] + }, + { + "input": "≵", + "description": "Named entity: ngsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2275" + ] + ] + }, + { + "input": "&ngt", + "description": "Bad named entity: ngt without a semi-colon", + "output": [ + [ + "Character", + "&ngt" + ] + ] + }, + { + "input": "≯", + "description": "Named entity: ngt; with a semi-colon", + "output": [ + [ + "Character", + "\u226f" + ] + ] + }, + { + "input": "&ngtr", + "description": "Bad named entity: ngtr without a semi-colon", + "output": [ + [ + "Character", + "&ngtr" + ] + ] + }, + { + "input": "≯", + "description": "Named entity: ngtr; with a semi-colon", + "output": [ + [ + "Character", + "\u226f" + ] + ] + }, + { + "input": "&nhArr", + "description": "Bad named entity: nhArr without a semi-colon", + "output": [ + [ + "Character", + "&nhArr" + ] + ] + }, + { + "input": "⇎", + "description": "Named entity: nhArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21ce" + ] + ] + }, + { + "input": "&nharr", + "description": "Bad named entity: nharr without a semi-colon", + "output": [ + [ + "Character", + "&nharr" + ] + ] + }, + { + "input": "↮", + "description": "Named entity: nharr; with a semi-colon", + "output": [ + [ + "Character", + "\u21ae" + ] + ] + }, + { + "input": "&nhpar", + "description": "Bad named entity: nhpar without a semi-colon", + "output": [ + [ + "Character", + "&nhpar" + ] + ] + }, + { + "input": "⫲", + "description": "Named entity: nhpar; with a semi-colon", + "output": [ + [ + "Character", + "\u2af2" + ] + ] + }, + { + "input": "&ni", + "description": "Bad named entity: ni without a semi-colon", + "output": [ + [ + "Character", + "&ni" + ] + ] + }, + { + "input": "∋", + "description": "Named entity: ni; with a semi-colon", + "output": [ + [ + "Character", + "\u220b" + ] + ] + }, + { + "input": "&nis", + "description": "Bad named entity: nis without a semi-colon", + "output": [ + [ + "Character", + "&nis" + ] + ] + }, + { + "input": "⋼", + "description": "Named entity: nis; with a semi-colon", + "output": [ + [ + "Character", + "\u22fc" + ] + ] + }, + { + "input": "&nisd", + "description": "Bad named entity: nisd without a semi-colon", + "output": [ + [ + "Character", + "&nisd" + ] + ] + }, + { + "input": "⋺", + "description": "Named entity: nisd; with a semi-colon", + "output": [ + [ + "Character", + "\u22fa" + ] + ] + }, + { + "input": "&niv", + "description": "Bad named entity: niv without a semi-colon", + "output": [ + [ + "Character", + "&niv" + ] + ] + }, + { + "input": "∋", + "description": "Named entity: niv; with a semi-colon", + "output": [ + [ + "Character", + "\u220b" + ] + ] + }, + { + "input": "&njcy", + "description": "Bad named entity: njcy without a semi-colon", + "output": [ + [ + "Character", + "&njcy" + ] + ] + }, + { + "input": "њ", + "description": "Named entity: njcy; with a semi-colon", + "output": [ + [ + "Character", + "\u045a" + ] + ] + }, + { + "input": "&nlArr", + "description": "Bad named entity: nlArr without a semi-colon", + "output": [ + [ + "Character", + "&nlArr" + ] + ] + }, + { + "input": "⇍", + "description": "Named entity: nlArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21cd" + ] + ] + }, + { + "input": "&nlE", + "description": "Bad named entity: nlE without a semi-colon", + "output": [ + [ + "Character", + "&nlE" + ] + ] + }, + { + "input": "≦̸", + "description": "Named entity: nlE; with a semi-colon", + "output": [ + [ + "Character", + "\u2266\u0338" + ] + ] + }, + { + "input": "&nlarr", + "description": "Bad named entity: nlarr without a semi-colon", + "output": [ + [ + "Character", + "&nlarr" + ] + ] + }, + { + "input": "↚", + "description": "Named entity: nlarr; with a semi-colon", + "output": [ + [ + "Character", + "\u219a" + ] + ] + }, + { + "input": "&nldr", + "description": "Bad named entity: nldr without a semi-colon", + "output": [ + [ + "Character", + "&nldr" + ] + ] + }, + { + "input": "‥", + "description": "Named entity: nldr; with a semi-colon", + "output": [ + [ + "Character", + "\u2025" + ] + ] + }, + { + "input": "&nle", + "description": "Bad named entity: nle without a semi-colon", + "output": [ + [ + "Character", + "&nle" + ] + ] + }, + { + "input": "≰", + "description": "Named entity: nle; with a semi-colon", + "output": [ + [ + "Character", + "\u2270" + ] + ] + }, + { + "input": "&nleftarrow", + "description": "Bad named entity: nleftarrow without a semi-colon", + "output": [ + [ + "Character", + "&nleftarrow" + ] + ] + }, + { + "input": "↚", + "description": "Named entity: nleftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u219a" + ] + ] + }, + { + "input": "&nleftrightarrow", + "description": "Bad named entity: nleftrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&nleftrightarrow" + ] + ] + }, + { + "input": "↮", + "description": "Named entity: nleftrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21ae" + ] + ] + }, + { + "input": "&nleq", + "description": "Bad named entity: nleq without a semi-colon", + "output": [ + [ + "Character", + "&nleq" + ] + ] + }, + { + "input": "≰", + "description": "Named entity: nleq; with a semi-colon", + "output": [ + [ + "Character", + "\u2270" + ] + ] + }, + { + "input": "&nleqq", + "description": "Bad named entity: nleqq without a semi-colon", + "output": [ + [ + "Character", + "&nleqq" + ] + ] + }, + { + "input": "≦̸", + "description": "Named entity: nleqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2266\u0338" + ] + ] + }, + { + "input": "&nleqslant", + "description": "Bad named entity: nleqslant without a semi-colon", + "output": [ + [ + "Character", + "&nleqslant" + ] + ] + }, + { + "input": "⩽̸", + "description": "Named entity: nleqslant; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7d\u0338" + ] + ] + }, + { + "input": "&nles", + "description": "Bad named entity: nles without a semi-colon", + "output": [ + [ + "Character", + "&nles" + ] + ] + }, + { + "input": "⩽̸", + "description": "Named entity: nles; with a semi-colon", + "output": [ + [ + "Character", + "\u2a7d\u0338" + ] + ] + }, + { + "input": "&nless", + "description": "Bad named entity: nless without a semi-colon", + "output": [ + [ + "Character", + "&nless" + ] + ] + }, + { + "input": "≮", + "description": "Named entity: nless; with a semi-colon", + "output": [ + [ + "Character", + "\u226e" + ] + ] + }, + { + "input": "&nlsim", + "description": "Bad named entity: nlsim without a semi-colon", + "output": [ + [ + "Character", + "&nlsim" + ] + ] + }, + { + "input": "≴", + "description": "Named entity: nlsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2274" + ] + ] + }, + { + "input": "&nlt", + "description": "Bad named entity: nlt without a semi-colon", + "output": [ + [ + "Character", + "&nlt" + ] + ] + }, + { + "input": "≮", + "description": "Named entity: nlt; with a semi-colon", + "output": [ + [ + "Character", + "\u226e" + ] + ] + }, + { + "input": "&nltri", + "description": "Bad named entity: nltri without a semi-colon", + "output": [ + [ + "Character", + "&nltri" + ] + ] + }, + { + "input": "⋪", + "description": "Named entity: nltri; with a semi-colon", + "output": [ + [ + "Character", + "\u22ea" + ] + ] + }, + { + "input": "&nltrie", + "description": "Bad named entity: nltrie without a semi-colon", + "output": [ + [ + "Character", + "&nltrie" + ] + ] + }, + { + "input": "⋬", + "description": "Named entity: nltrie; with a semi-colon", + "output": [ + [ + "Character", + "\u22ec" + ] + ] + }, + { + "input": "&nmid", + "description": "Bad named entity: nmid without a semi-colon", + "output": [ + [ + "Character", + "&nmid" + ] + ] + }, + { + "input": "∤", + "description": "Named entity: nmid; with a semi-colon", + "output": [ + [ + "Character", + "\u2224" + ] + ] + }, + { + "input": "&nopf", + "description": "Bad named entity: nopf without a semi-colon", + "output": [ + [ + "Character", + "&nopf" + ] + ] + }, + { + "input": "𝕟", + "description": "Named entity: nopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd5f" + ] + ] + }, + { + "input": "¬", + "description": "Named entity: not without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ac" + ] + ] + }, + { + "input": "¬", + "description": "Named entity: not; with a semi-colon", + "output": [ + [ + "Character", + "\u00ac" + ] + ] + }, + { + "input": "∉", + "description": "Named entity: notin; with a semi-colon", + "output": [ + [ + "Character", + "\u2209" + ] + ] + }, + { + "input": "⋹̸", + "description": "Named entity: notinE; with a semi-colon", + "output": [ + [ + "Character", + "\u22f9\u0338" + ] + ] + }, + { + "input": "⋵̸", + "description": "Named entity: notindot; with a semi-colon", + "output": [ + [ + "Character", + "\u22f5\u0338" + ] + ] + }, + { + "input": "∉", + "description": "Named entity: notinva; with a semi-colon", + "output": [ + [ + "Character", + "\u2209" + ] + ] + }, + { + "input": "⋷", + "description": "Named entity: notinvb; with a semi-colon", + "output": [ + [ + "Character", + "\u22f7" + ] + ] + }, + { + "input": "⋶", + "description": "Named entity: notinvc; with a semi-colon", + "output": [ + [ + "Character", + "\u22f6" + ] + ] + }, + { + "input": "∌", + "description": "Named entity: notni; with a semi-colon", + "output": [ + [ + "Character", + "\u220c" + ] + ] + }, + { + "input": "∌", + "description": "Named entity: notniva; with a semi-colon", + "output": [ + [ + "Character", + "\u220c" + ] + ] + }, + { + "input": "⋾", + "description": "Named entity: notnivb; with a semi-colon", + "output": [ + [ + "Character", + "\u22fe" + ] + ] + }, + { + "input": "⋽", + "description": "Named entity: notnivc; with a semi-colon", + "output": [ + [ + "Character", + "\u22fd" + ] + ] + }, + { + "input": "&npar", + "description": "Bad named entity: npar without a semi-colon", + "output": [ + [ + "Character", + "&npar" + ] + ] + }, + { + "input": "∦", + "description": "Named entity: npar; with a semi-colon", + "output": [ + [ + "Character", + "\u2226" + ] + ] + }, + { + "input": "&nparallel", + "description": "Bad named entity: nparallel without a semi-colon", + "output": [ + [ + "Character", + "&nparallel" + ] + ] + }, + { + "input": "∦", + "description": "Named entity: nparallel; with a semi-colon", + "output": [ + [ + "Character", + "\u2226" + ] + ] + }, + { + "input": "&nparsl", + "description": "Bad named entity: nparsl without a semi-colon", + "output": [ + [ + "Character", + "&nparsl" + ] + ] + }, + { + "input": "⫽⃥", + "description": "Named entity: nparsl; with a semi-colon", + "output": [ + [ + "Character", + "\u2afd\u20e5" + ] + ] + }, + { + "input": "&npart", + "description": "Bad named entity: npart without a semi-colon", + "output": [ + [ + "Character", + "&npart" + ] + ] + }, + { + "input": "∂̸", + "description": "Named entity: npart; with a semi-colon", + "output": [ + [ + "Character", + "\u2202\u0338" + ] + ] + }, + { + "input": "&npolint", + "description": "Bad named entity: npolint without a semi-colon", + "output": [ + [ + "Character", + "&npolint" + ] + ] + }, + { + "input": "⨔", + "description": "Named entity: npolint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a14" + ] + ] + }, + { + "input": "&npr", + "description": "Bad named entity: npr without a semi-colon", + "output": [ + [ + "Character", + "&npr" + ] + ] + }, + { + "input": "⊀", + "description": "Named entity: npr; with a semi-colon", + "output": [ + [ + "Character", + "\u2280" + ] + ] + }, + { + "input": "&nprcue", + "description": "Bad named entity: nprcue without a semi-colon", + "output": [ + [ + "Character", + "&nprcue" + ] + ] + }, + { + "input": "⋠", + "description": "Named entity: nprcue; with a semi-colon", + "output": [ + [ + "Character", + "\u22e0" + ] + ] + }, + { + "input": "&npre", + "description": "Bad named entity: npre without a semi-colon", + "output": [ + [ + "Character", + "&npre" + ] + ] + }, + { + "input": "⪯̸", + "description": "Named entity: npre; with a semi-colon", + "output": [ + [ + "Character", + "\u2aaf\u0338" + ] + ] + }, + { + "input": "&nprec", + "description": "Bad named entity: nprec without a semi-colon", + "output": [ + [ + "Character", + "&nprec" + ] + ] + }, + { + "input": "⊀", + "description": "Named entity: nprec; with a semi-colon", + "output": [ + [ + "Character", + "\u2280" + ] + ] + }, + { + "input": "&npreceq", + "description": "Bad named entity: npreceq without a semi-colon", + "output": [ + [ + "Character", + "&npreceq" + ] + ] + }, + { + "input": "⪯̸", + "description": "Named entity: npreceq; with a semi-colon", + "output": [ + [ + "Character", + "\u2aaf\u0338" + ] + ] + }, + { + "input": "&nrArr", + "description": "Bad named entity: nrArr without a semi-colon", + "output": [ + [ + "Character", + "&nrArr" + ] + ] + }, + { + "input": "⇏", + "description": "Named entity: nrArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21cf" + ] + ] + }, + { + "input": "&nrarr", + "description": "Bad named entity: nrarr without a semi-colon", + "output": [ + [ + "Character", + "&nrarr" + ] + ] + }, + { + "input": "↛", + "description": "Named entity: nrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u219b" + ] + ] + }, + { + "input": "&nrarrc", + "description": "Bad named entity: nrarrc without a semi-colon", + "output": [ + [ + "Character", + "&nrarrc" + ] + ] + }, + { + "input": "⤳̸", + "description": "Named entity: nrarrc; with a semi-colon", + "output": [ + [ + "Character", + "\u2933\u0338" + ] + ] + }, + { + "input": "&nrarrw", + "description": "Bad named entity: nrarrw without a semi-colon", + "output": [ + [ + "Character", + "&nrarrw" + ] + ] + }, + { + "input": "↝̸", + "description": "Named entity: nrarrw; with a semi-colon", + "output": [ + [ + "Character", + "\u219d\u0338" + ] + ] + }, + { + "input": "&nrightarrow", + "description": "Bad named entity: nrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&nrightarrow" + ] + ] + }, + { + "input": "↛", + "description": "Named entity: nrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u219b" + ] + ] + }, + { + "input": "&nrtri", + "description": "Bad named entity: nrtri without a semi-colon", + "output": [ + [ + "Character", + "&nrtri" + ] + ] + }, + { + "input": "⋫", + "description": "Named entity: nrtri; with a semi-colon", + "output": [ + [ + "Character", + "\u22eb" + ] + ] + }, + { + "input": "&nrtrie", + "description": "Bad named entity: nrtrie without a semi-colon", + "output": [ + [ + "Character", + "&nrtrie" + ] + ] + }, + { + "input": "⋭", + "description": "Named entity: nrtrie; with a semi-colon", + "output": [ + [ + "Character", + "\u22ed" + ] + ] + }, + { + "input": "&nsc", + "description": "Bad named entity: nsc without a semi-colon", + "output": [ + [ + "Character", + "&nsc" + ] + ] + }, + { + "input": "⊁", + "description": "Named entity: nsc; with a semi-colon", + "output": [ + [ + "Character", + "\u2281" + ] + ] + }, + { + "input": "&nsccue", + "description": "Bad named entity: nsccue without a semi-colon", + "output": [ + [ + "Character", + "&nsccue" + ] + ] + }, + { + "input": "⋡", + "description": "Named entity: nsccue; with a semi-colon", + "output": [ + [ + "Character", + "\u22e1" + ] + ] + }, + { + "input": "&nsce", + "description": "Bad named entity: nsce without a semi-colon", + "output": [ + [ + "Character", + "&nsce" + ] + ] + }, + { + "input": "⪰̸", + "description": "Named entity: nsce; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab0\u0338" + ] + ] + }, + { + "input": "&nscr", + "description": "Bad named entity: nscr without a semi-colon", + "output": [ + [ + "Character", + "&nscr" + ] + ] + }, + { + "input": "𝓃", + "description": "Named entity: nscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc3" + ] + ] + }, + { + "input": "&nshortmid", + "description": "Bad named entity: nshortmid without a semi-colon", + "output": [ + [ + "Character", + "&nshortmid" + ] + ] + }, + { + "input": "∤", + "description": "Named entity: nshortmid; with a semi-colon", + "output": [ + [ + "Character", + "\u2224" + ] + ] + }, + { + "input": "&nshortparallel", + "description": "Bad named entity: nshortparallel without a semi-colon", + "output": [ + [ + "Character", + "&nshortparallel" + ] + ] + }, + { + "input": "∦", + "description": "Named entity: nshortparallel; with a semi-colon", + "output": [ + [ + "Character", + "\u2226" + ] + ] + }, + { + "input": "&nsim", + "description": "Bad named entity: nsim without a semi-colon", + "output": [ + [ + "Character", + "&nsim" + ] + ] + }, + { + "input": "≁", + "description": "Named entity: nsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2241" + ] + ] + }, + { + "input": "&nsime", + "description": "Bad named entity: nsime without a semi-colon", + "output": [ + [ + "Character", + "&nsime" + ] + ] + }, + { + "input": "≄", + "description": "Named entity: nsime; with a semi-colon", + "output": [ + [ + "Character", + "\u2244" + ] + ] + }, + { + "input": "&nsimeq", + "description": "Bad named entity: nsimeq without a semi-colon", + "output": [ + [ + "Character", + "&nsimeq" + ] + ] + }, + { + "input": "≄", + "description": "Named entity: nsimeq; with a semi-colon", + "output": [ + [ + "Character", + "\u2244" + ] + ] + }, + { + "input": "&nsmid", + "description": "Bad named entity: nsmid without a semi-colon", + "output": [ + [ + "Character", + "&nsmid" + ] + ] + }, + { + "input": "∤", + "description": "Named entity: nsmid; with a semi-colon", + "output": [ + [ + "Character", + "\u2224" + ] + ] + }, + { + "input": "&nspar", + "description": "Bad named entity: nspar without a semi-colon", + "output": [ + [ + "Character", + "&nspar" + ] + ] + }, + { + "input": "∦", + "description": "Named entity: nspar; with a semi-colon", + "output": [ + [ + "Character", + "\u2226" + ] + ] + }, + { + "input": "&nsqsube", + "description": "Bad named entity: nsqsube without a semi-colon", + "output": [ + [ + "Character", + "&nsqsube" + ] + ] + }, + { + "input": "⋢", + "description": "Named entity: nsqsube; with a semi-colon", + "output": [ + [ + "Character", + "\u22e2" + ] + ] + }, + { + "input": "&nsqsupe", + "description": "Bad named entity: nsqsupe without a semi-colon", + "output": [ + [ + "Character", + "&nsqsupe" + ] + ] + }, + { + "input": "⋣", + "description": "Named entity: nsqsupe; with a semi-colon", + "output": [ + [ + "Character", + "\u22e3" + ] + ] + }, + { + "input": "&nsub", + "description": "Bad named entity: nsub without a semi-colon", + "output": [ + [ + "Character", + "&nsub" + ] + ] + }, + { + "input": "⊄", + "description": "Named entity: nsub; with a semi-colon", + "output": [ + [ + "Character", + "\u2284" + ] + ] + }, + { + "input": "&nsubE", + "description": "Bad named entity: nsubE without a semi-colon", + "output": [ + [ + "Character", + "&nsubE" + ] + ] + }, + { + "input": "⫅̸", + "description": "Named entity: nsubE; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac5\u0338" + ] + ] + }, + { + "input": "&nsube", + "description": "Bad named entity: nsube without a semi-colon", + "output": [ + [ + "Character", + "&nsube" + ] + ] + }, + { + "input": "⊈", + "description": "Named entity: nsube; with a semi-colon", + "output": [ + [ + "Character", + "\u2288" + ] + ] + }, + { + "input": "&nsubset", + "description": "Bad named entity: nsubset without a semi-colon", + "output": [ + [ + "Character", + "&nsubset" + ] + ] + }, + { + "input": "⊂⃒", + "description": "Named entity: nsubset; with a semi-colon", + "output": [ + [ + "Character", + "\u2282\u20d2" + ] + ] + }, + { + "input": "&nsubseteq", + "description": "Bad named entity: nsubseteq without a semi-colon", + "output": [ + [ + "Character", + "&nsubseteq" + ] + ] + }, + { + "input": "⊈", + "description": "Named entity: nsubseteq; with a semi-colon", + "output": [ + [ + "Character", + "\u2288" + ] + ] + }, + { + "input": "&nsubseteqq", + "description": "Bad named entity: nsubseteqq without a semi-colon", + "output": [ + [ + "Character", + "&nsubseteqq" + ] + ] + }, + { + "input": "⫅̸", + "description": "Named entity: nsubseteqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac5\u0338" + ] + ] + }, + { + "input": "&nsucc", + "description": "Bad named entity: nsucc without a semi-colon", + "output": [ + [ + "Character", + "&nsucc" + ] + ] + }, + { + "input": "⊁", + "description": "Named entity: nsucc; with a semi-colon", + "output": [ + [ + "Character", + "\u2281" + ] + ] + }, + { + "input": "&nsucceq", + "description": "Bad named entity: nsucceq without a semi-colon", + "output": [ + [ + "Character", + "&nsucceq" + ] + ] + }, + { + "input": "⪰̸", + "description": "Named entity: nsucceq; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab0\u0338" + ] + ] + }, + { + "input": "&nsup", + "description": "Bad named entity: nsup without a semi-colon", + "output": [ + [ + "Character", + "&nsup" + ] + ] + }, + { + "input": "⊅", + "description": "Named entity: nsup; with a semi-colon", + "output": [ + [ + "Character", + "\u2285" + ] + ] + }, + { + "input": "&nsupE", + "description": "Bad named entity: nsupE without a semi-colon", + "output": [ + [ + "Character", + "&nsupE" + ] + ] + }, + { + "input": "⫆̸", + "description": "Named entity: nsupE; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac6\u0338" + ] + ] + }, + { + "input": "&nsupe", + "description": "Bad named entity: nsupe without a semi-colon", + "output": [ + [ + "Character", + "&nsupe" + ] + ] + }, + { + "input": "⊉", + "description": "Named entity: nsupe; with a semi-colon", + "output": [ + [ + "Character", + "\u2289" + ] + ] + }, + { + "input": "&nsupset", + "description": "Bad named entity: nsupset without a semi-colon", + "output": [ + [ + "Character", + "&nsupset" + ] + ] + }, + { + "input": "⊃⃒", + "description": "Named entity: nsupset; with a semi-colon", + "output": [ + [ + "Character", + "\u2283\u20d2" + ] + ] + }, + { + "input": "&nsupseteq", + "description": "Bad named entity: nsupseteq without a semi-colon", + "output": [ + [ + "Character", + "&nsupseteq" + ] + ] + }, + { + "input": "⊉", + "description": "Named entity: nsupseteq; with a semi-colon", + "output": [ + [ + "Character", + "\u2289" + ] + ] + }, + { + "input": "&nsupseteqq", + "description": "Bad named entity: nsupseteqq without a semi-colon", + "output": [ + [ + "Character", + "&nsupseteqq" + ] + ] + }, + { + "input": "⫆̸", + "description": "Named entity: nsupseteqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac6\u0338" + ] + ] + }, + { + "input": "&ntgl", + "description": "Bad named entity: ntgl without a semi-colon", + "output": [ + [ + "Character", + "&ntgl" + ] + ] + }, + { + "input": "≹", + "description": "Named entity: ntgl; with a semi-colon", + "output": [ + [ + "Character", + "\u2279" + ] + ] + }, + { + "input": "ñ", + "description": "Named entity: ntilde without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f1" + ] + ] + }, + { + "input": "ñ", + "description": "Named entity: ntilde; with a semi-colon", + "output": [ + [ + "Character", + "\u00f1" + ] + ] + }, + { + "input": "&ntlg", + "description": "Bad named entity: ntlg without a semi-colon", + "output": [ + [ + "Character", + "&ntlg" + ] + ] + }, + { + "input": "≸", + "description": "Named entity: ntlg; with a semi-colon", + "output": [ + [ + "Character", + "\u2278" + ] + ] + }, + { + "input": "&ntriangleleft", + "description": "Bad named entity: ntriangleleft without a semi-colon", + "output": [ + [ + "Character", + "&ntriangleleft" + ] + ] + }, + { + "input": "⋪", + "description": "Named entity: ntriangleleft; with a semi-colon", + "output": [ + [ + "Character", + "\u22ea" + ] + ] + }, + { + "input": "&ntrianglelefteq", + "description": "Bad named entity: ntrianglelefteq without a semi-colon", + "output": [ + [ + "Character", + "&ntrianglelefteq" + ] + ] + }, + { + "input": "⋬", + "description": "Named entity: ntrianglelefteq; with a semi-colon", + "output": [ + [ + "Character", + "\u22ec" + ] + ] + }, + { + "input": "&ntriangleright", + "description": "Bad named entity: ntriangleright without a semi-colon", + "output": [ + [ + "Character", + "&ntriangleright" + ] + ] + }, + { + "input": "⋫", + "description": "Named entity: ntriangleright; with a semi-colon", + "output": [ + [ + "Character", + "\u22eb" + ] + ] + }, + { + "input": "&ntrianglerighteq", + "description": "Bad named entity: ntrianglerighteq without a semi-colon", + "output": [ + [ + "Character", + "&ntrianglerighteq" + ] + ] + }, + { + "input": "⋭", + "description": "Named entity: ntrianglerighteq; with a semi-colon", + "output": [ + [ + "Character", + "\u22ed" + ] + ] + }, + { + "input": "&nu", + "description": "Bad named entity: nu without a semi-colon", + "output": [ + [ + "Character", + "&nu" + ] + ] + }, + { + "input": "ν", + "description": "Named entity: nu; with a semi-colon", + "output": [ + [ + "Character", + "\u03bd" + ] + ] + }, + { + "input": "&num", + "description": "Bad named entity: num without a semi-colon", + "output": [ + [ + "Character", + "&num" + ] + ] + }, + { + "input": "#", + "description": "Named entity: num; with a semi-colon", + "output": [ + [ + "Character", + "#" + ] + ] + }, + { + "input": "&numero", + "description": "Bad named entity: numero without a semi-colon", + "output": [ + [ + "Character", + "&numero" + ] + ] + }, + { + "input": "№", + "description": "Named entity: numero; with a semi-colon", + "output": [ + [ + "Character", + "\u2116" + ] + ] + }, + { + "input": "&numsp", + "description": "Bad named entity: numsp without a semi-colon", + "output": [ + [ + "Character", + "&numsp" + ] + ] + }, + { + "input": " ", + "description": "Named entity: numsp; with a semi-colon", + "output": [ + [ + "Character", + "\u2007" + ] + ] + }, + { + "input": "&nvDash", + "description": "Bad named entity: nvDash without a semi-colon", + "output": [ + [ + "Character", + "&nvDash" + ] + ] + }, + { + "input": "⊭", + "description": "Named entity: nvDash; with a semi-colon", + "output": [ + [ + "Character", + "\u22ad" + ] + ] + }, + { + "input": "&nvHarr", + "description": "Bad named entity: nvHarr without a semi-colon", + "output": [ + [ + "Character", + "&nvHarr" + ] + ] + }, + { + "input": "⤄", + "description": "Named entity: nvHarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2904" + ] + ] + }, + { + "input": "&nvap", + "description": "Bad named entity: nvap without a semi-colon", + "output": [ + [ + "Character", + "&nvap" + ] + ] + }, + { + "input": "≍⃒", + "description": "Named entity: nvap; with a semi-colon", + "output": [ + [ + "Character", + "\u224d\u20d2" + ] + ] + }, + { + "input": "&nvdash", + "description": "Bad named entity: nvdash without a semi-colon", + "output": [ + [ + "Character", + "&nvdash" + ] + ] + }, + { + "input": "⊬", + "description": "Named entity: nvdash; with a semi-colon", + "output": [ + [ + "Character", + "\u22ac" + ] + ] + }, + { + "input": "&nvge", + "description": "Bad named entity: nvge without a semi-colon", + "output": [ + [ + "Character", + "&nvge" + ] + ] + }, + { + "input": "≥⃒", + "description": "Named entity: nvge; with a semi-colon", + "output": [ + [ + "Character", + "\u2265\u20d2" + ] + ] + }, + { + "input": "&nvgt", + "description": "Bad named entity: nvgt without a semi-colon", + "output": [ + [ + "Character", + "&nvgt" + ] + ] + }, + { + "input": ">⃒", + "description": "Named entity: nvgt; with a semi-colon", + "output": [ + [ + "Character", + ">\u20d2" + ] + ] + }, + { + "input": "&nvinfin", + "description": "Bad named entity: nvinfin without a semi-colon", + "output": [ + [ + "Character", + "&nvinfin" + ] + ] + }, + { + "input": "⧞", + "description": "Named entity: nvinfin; with a semi-colon", + "output": [ + [ + "Character", + "\u29de" + ] + ] + }, + { + "input": "&nvlArr", + "description": "Bad named entity: nvlArr without a semi-colon", + "output": [ + [ + "Character", + "&nvlArr" + ] + ] + }, + { + "input": "⤂", + "description": "Named entity: nvlArr; with a semi-colon", + "output": [ + [ + "Character", + "\u2902" + ] + ] + }, + { + "input": "&nvle", + "description": "Bad named entity: nvle without a semi-colon", + "output": [ + [ + "Character", + "&nvle" + ] + ] + }, + { + "input": "≤⃒", + "description": "Named entity: nvle; with a semi-colon", + "output": [ + [ + "Character", + "\u2264\u20d2" + ] + ] + }, + { + "input": "&nvlt", + "description": "Bad named entity: nvlt without a semi-colon", + "output": [ + [ + "Character", + "&nvlt" + ] + ] + }, + { + "input": "<⃒", + "description": "Named entity: nvlt; with a semi-colon", + "output": [ + [ + "Character", + "<\u20d2" + ] + ] + }, + { + "input": "&nvltrie", + "description": "Bad named entity: nvltrie without a semi-colon", + "output": [ + [ + "Character", + "&nvltrie" + ] + ] + }, + { + "input": "⊴⃒", + "description": "Named entity: nvltrie; with a semi-colon", + "output": [ + [ + "Character", + "\u22b4\u20d2" + ] + ] + }, + { + "input": "&nvrArr", + "description": "Bad named entity: nvrArr without a semi-colon", + "output": [ + [ + "Character", + "&nvrArr" + ] + ] + }, + { + "input": "⤃", + "description": "Named entity: nvrArr; with a semi-colon", + "output": [ + [ + "Character", + "\u2903" + ] + ] + }, + { + "input": "&nvrtrie", + "description": "Bad named entity: nvrtrie without a semi-colon", + "output": [ + [ + "Character", + "&nvrtrie" + ] + ] + }, + { + "input": "⊵⃒", + "description": "Named entity: nvrtrie; with a semi-colon", + "output": [ + [ + "Character", + "\u22b5\u20d2" + ] + ] + }, + { + "input": "&nvsim", + "description": "Bad named entity: nvsim without a semi-colon", + "output": [ + [ + "Character", + "&nvsim" + ] + ] + }, + { + "input": "∼⃒", + "description": "Named entity: nvsim; with a semi-colon", + "output": [ + [ + "Character", + "\u223c\u20d2" + ] + ] + }, + { + "input": "&nwArr", + "description": "Bad named entity: nwArr without a semi-colon", + "output": [ + [ + "Character", + "&nwArr" + ] + ] + }, + { + "input": "⇖", + "description": "Named entity: nwArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d6" + ] + ] + }, + { + "input": "&nwarhk", + "description": "Bad named entity: nwarhk without a semi-colon", + "output": [ + [ + "Character", + "&nwarhk" + ] + ] + }, + { + "input": "⤣", + "description": "Named entity: nwarhk; with a semi-colon", + "output": [ + [ + "Character", + "\u2923" + ] + ] + }, + { + "input": "&nwarr", + "description": "Bad named entity: nwarr without a semi-colon", + "output": [ + [ + "Character", + "&nwarr" + ] + ] + }, + { + "input": "↖", + "description": "Named entity: nwarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2196" + ] + ] + }, + { + "input": "&nwarrow", + "description": "Bad named entity: nwarrow without a semi-colon", + "output": [ + [ + "Character", + "&nwarrow" + ] + ] + }, + { + "input": "↖", + "description": "Named entity: nwarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2196" + ] + ] + }, + { + "input": "&nwnear", + "description": "Bad named entity: nwnear without a semi-colon", + "output": [ + [ + "Character", + "&nwnear" + ] + ] + }, + { + "input": "⤧", + "description": "Named entity: nwnear; with a semi-colon", + "output": [ + [ + "Character", + "\u2927" + ] + ] + }, + { + "input": "&oS", + "description": "Bad named entity: oS without a semi-colon", + "output": [ + [ + "Character", + "&oS" + ] + ] + }, + { + "input": "Ⓢ", + "description": "Named entity: oS; with a semi-colon", + "output": [ + [ + "Character", + "\u24c8" + ] + ] + }, + { + "input": "ó", + "description": "Named entity: oacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f3" + ] + ] + }, + { + "input": "ó", + "description": "Named entity: oacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00f3" + ] + ] + }, + { + "input": "&oast", + "description": "Bad named entity: oast without a semi-colon", + "output": [ + [ + "Character", + "&oast" + ] + ] + }, + { + "input": "⊛", + "description": "Named entity: oast; with a semi-colon", + "output": [ + [ + "Character", + "\u229b" + ] + ] + }, + { + "input": "&ocir", + "description": "Bad named entity: ocir without a semi-colon", + "output": [ + [ + "Character", + "&ocir" + ] + ] + }, + { + "input": "⊚", + "description": "Named entity: ocir; with a semi-colon", + "output": [ + [ + "Character", + "\u229a" + ] + ] + }, + { + "input": "ô", + "description": "Named entity: ocirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f4" + ] + ] + }, + { + "input": "ô", + "description": "Named entity: ocirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00f4" + ] + ] + }, + { + "input": "&ocy", + "description": "Bad named entity: ocy without a semi-colon", + "output": [ + [ + "Character", + "&ocy" + ] + ] + }, + { + "input": "о", + "description": "Named entity: ocy; with a semi-colon", + "output": [ + [ + "Character", + "\u043e" + ] + ] + }, + { + "input": "&odash", + "description": "Bad named entity: odash without a semi-colon", + "output": [ + [ + "Character", + "&odash" + ] + ] + }, + { + "input": "⊝", + "description": "Named entity: odash; with a semi-colon", + "output": [ + [ + "Character", + "\u229d" + ] + ] + }, + { + "input": "&odblac", + "description": "Bad named entity: odblac without a semi-colon", + "output": [ + [ + "Character", + "&odblac" + ] + ] + }, + { + "input": "ő", + "description": "Named entity: odblac; with a semi-colon", + "output": [ + [ + "Character", + "\u0151" + ] + ] + }, + { + "input": "&odiv", + "description": "Bad named entity: odiv without a semi-colon", + "output": [ + [ + "Character", + "&odiv" + ] + ] + }, + { + "input": "⨸", + "description": "Named entity: odiv; with a semi-colon", + "output": [ + [ + "Character", + "\u2a38" + ] + ] + }, + { + "input": "&odot", + "description": "Bad named entity: odot without a semi-colon", + "output": [ + [ + "Character", + "&odot" + ] + ] + }, + { + "input": "⊙", + "description": "Named entity: odot; with a semi-colon", + "output": [ + [ + "Character", + "\u2299" + ] + ] + }, + { + "input": "&odsold", + "description": "Bad named entity: odsold without a semi-colon", + "output": [ + [ + "Character", + "&odsold" + ] + ] + }, + { + "input": "⦼", + "description": "Named entity: odsold; with a semi-colon", + "output": [ + [ + "Character", + "\u29bc" + ] + ] + }, + { + "input": "&oelig", + "description": "Bad named entity: oelig without a semi-colon", + "output": [ + [ + "Character", + "&oelig" + ] + ] + }, + { + "input": "œ", + "description": "Named entity: oelig; with a semi-colon", + "output": [ + [ + "Character", + "\u0153" + ] + ] + }, + { + "input": "&ofcir", + "description": "Bad named entity: ofcir without a semi-colon", + "output": [ + [ + "Character", + "&ofcir" + ] + ] + }, + { + "input": "⦿", + "description": "Named entity: ofcir; with a semi-colon", + "output": [ + [ + "Character", + "\u29bf" + ] + ] + }, + { + "input": "&ofr", + "description": "Bad named entity: ofr without a semi-colon", + "output": [ + [ + "Character", + "&ofr" + ] + ] + }, + { + "input": "𝔬", + "description": "Named entity: ofr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd2c" + ] + ] + }, + { + "input": "&ogon", + "description": "Bad named entity: ogon without a semi-colon", + "output": [ + [ + "Character", + "&ogon" + ] + ] + }, + { + "input": "˛", + "description": "Named entity: ogon; with a semi-colon", + "output": [ + [ + "Character", + "\u02db" + ] + ] + }, + { + "input": "ò", + "description": "Named entity: ograve without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f2" + ] + ] + }, + { + "input": "ò", + "description": "Named entity: ograve; with a semi-colon", + "output": [ + [ + "Character", + "\u00f2" + ] + ] + }, + { + "input": "&ogt", + "description": "Bad named entity: ogt without a semi-colon", + "output": [ + [ + "Character", + "&ogt" + ] + ] + }, + { + "input": "⧁", + "description": "Named entity: ogt; with a semi-colon", + "output": [ + [ + "Character", + "\u29c1" + ] + ] + }, + { + "input": "&ohbar", + "description": "Bad named entity: ohbar without a semi-colon", + "output": [ + [ + "Character", + "&ohbar" + ] + ] + }, + { + "input": "⦵", + "description": "Named entity: ohbar; with a semi-colon", + "output": [ + [ + "Character", + "\u29b5" + ] + ] + }, + { + "input": "&ohm", + "description": "Bad named entity: ohm without a semi-colon", + "output": [ + [ + "Character", + "&ohm" + ] + ] + }, + { + "input": "Ω", + "description": "Named entity: ohm; with a semi-colon", + "output": [ + [ + "Character", + "\u03a9" + ] + ] + }, + { + "input": "&oint", + "description": "Bad named entity: oint without a semi-colon", + "output": [ + [ + "Character", + "&oint" + ] + ] + }, + { + "input": "∮", + "description": "Named entity: oint; with a semi-colon", + "output": [ + [ + "Character", + "\u222e" + ] + ] + }, + { + "input": "&olarr", + "description": "Bad named entity: olarr without a semi-colon", + "output": [ + [ + "Character", + "&olarr" + ] + ] + }, + { + "input": "↺", + "description": "Named entity: olarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21ba" + ] + ] + }, + { + "input": "&olcir", + "description": "Bad named entity: olcir without a semi-colon", + "output": [ + [ + "Character", + "&olcir" + ] + ] + }, + { + "input": "⦾", + "description": "Named entity: olcir; with a semi-colon", + "output": [ + [ + "Character", + "\u29be" + ] + ] + }, + { + "input": "&olcross", + "description": "Bad named entity: olcross without a semi-colon", + "output": [ + [ + "Character", + "&olcross" + ] + ] + }, + { + "input": "⦻", + "description": "Named entity: olcross; with a semi-colon", + "output": [ + [ + "Character", + "\u29bb" + ] + ] + }, + { + "input": "&oline", + "description": "Bad named entity: oline without a semi-colon", + "output": [ + [ + "Character", + "&oline" + ] + ] + }, + { + "input": "‾", + "description": "Named entity: oline; with a semi-colon", + "output": [ + [ + "Character", + "\u203e" + ] + ] + }, + { + "input": "&olt", + "description": "Bad named entity: olt without a semi-colon", + "output": [ + [ + "Character", + "&olt" + ] + ] + }, + { + "input": "⧀", + "description": "Named entity: olt; with a semi-colon", + "output": [ + [ + "Character", + "\u29c0" + ] + ] + }, + { + "input": "&omacr", + "description": "Bad named entity: omacr without a semi-colon", + "output": [ + [ + "Character", + "&omacr" + ] + ] + }, + { + "input": "ō", + "description": "Named entity: omacr; with a semi-colon", + "output": [ + [ + "Character", + "\u014d" + ] + ] + }, + { + "input": "&omega", + "description": "Bad named entity: omega without a semi-colon", + "output": [ + [ + "Character", + "&omega" + ] + ] + }, + { + "input": "ω", + "description": "Named entity: omega; with a semi-colon", + "output": [ + [ + "Character", + "\u03c9" + ] + ] + }, + { + "input": "&omicron", + "description": "Bad named entity: omicron without a semi-colon", + "output": [ + [ + "Character", + "&omicron" + ] + ] + }, + { + "input": "ο", + "description": "Named entity: omicron; with a semi-colon", + "output": [ + [ + "Character", + "\u03bf" + ] + ] + }, + { + "input": "&omid", + "description": "Bad named entity: omid without a semi-colon", + "output": [ + [ + "Character", + "&omid" + ] + ] + }, + { + "input": "⦶", + "description": "Named entity: omid; with a semi-colon", + "output": [ + [ + "Character", + "\u29b6" + ] + ] + }, + { + "input": "&ominus", + "description": "Bad named entity: ominus without a semi-colon", + "output": [ + [ + "Character", + "&ominus" + ] + ] + }, + { + "input": "⊖", + "description": "Named entity: ominus; with a semi-colon", + "output": [ + [ + "Character", + "\u2296" + ] + ] + }, + { + "input": "&oopf", + "description": "Bad named entity: oopf without a semi-colon", + "output": [ + [ + "Character", + "&oopf" + ] + ] + }, + { + "input": "𝕠", + "description": "Named entity: oopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd60" + ] + ] + }, + { + "input": "&opar", + "description": "Bad named entity: opar without a semi-colon", + "output": [ + [ + "Character", + "&opar" + ] + ] + }, + { + "input": "⦷", + "description": "Named entity: opar; with a semi-colon", + "output": [ + [ + "Character", + "\u29b7" + ] + ] + }, + { + "input": "&operp", + "description": "Bad named entity: operp without a semi-colon", + "output": [ + [ + "Character", + "&operp" + ] + ] + }, + { + "input": "⦹", + "description": "Named entity: operp; with a semi-colon", + "output": [ + [ + "Character", + "\u29b9" + ] + ] + }, + { + "input": "&oplus", + "description": "Bad named entity: oplus without a semi-colon", + "output": [ + [ + "Character", + "&oplus" + ] + ] + }, + { + "input": "⊕", + "description": "Named entity: oplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2295" + ] + ] + }, + { + "input": "&or", + "description": "Bad named entity: or without a semi-colon", + "output": [ + [ + "Character", + "&or" + ] + ] + }, + { + "input": "∨", + "description": "Named entity: or; with a semi-colon", + "output": [ + [ + "Character", + "\u2228" + ] + ] + }, + { + "input": "&orarr", + "description": "Bad named entity: orarr without a semi-colon", + "output": [ + [ + "Character", + "&orarr" + ] + ] + }, + { + "input": "↻", + "description": "Named entity: orarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21bb" + ] + ] + }, + { + "input": "&ord", + "description": "Bad named entity: ord without a semi-colon", + "output": [ + [ + "Character", + "&ord" + ] + ] + }, + { + "input": "⩝", + "description": "Named entity: ord; with a semi-colon", + "output": [ + [ + "Character", + "\u2a5d" + ] + ] + }, + { + "input": "&order", + "description": "Bad named entity: order without a semi-colon", + "output": [ + [ + "Character", + "&order" + ] + ] + }, + { + "input": "ℴ", + "description": "Named entity: order; with a semi-colon", + "output": [ + [ + "Character", + "\u2134" + ] + ] + }, + { + "input": "&orderof", + "description": "Bad named entity: orderof without a semi-colon", + "output": [ + [ + "Character", + "&orderof" + ] + ] + }, + { + "input": "ℴ", + "description": "Named entity: orderof; with a semi-colon", + "output": [ + [ + "Character", + "\u2134" + ] + ] + }, + { + "input": "ª", + "description": "Named entity: ordf without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00aa" + ] + ] + }, + { + "input": "ª", + "description": "Named entity: ordf; with a semi-colon", + "output": [ + [ + "Character", + "\u00aa" + ] + ] + }, + { + "input": "º", + "description": "Named entity: ordm without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ba" + ] + ] + }, + { + "input": "º", + "description": "Named entity: ordm; with a semi-colon", + "output": [ + [ + "Character", + "\u00ba" + ] + ] + }, + { + "input": "&origof", + "description": "Bad named entity: origof without a semi-colon", + "output": [ + [ + "Character", + "&origof" + ] + ] + }, + { + "input": "⊶", + "description": "Named entity: origof; with a semi-colon", + "output": [ + [ + "Character", + "\u22b6" + ] + ] + }, + { + "input": "&oror", + "description": "Bad named entity: oror without a semi-colon", + "output": [ + [ + "Character", + "&oror" + ] + ] + }, + { + "input": "⩖", + "description": "Named entity: oror; with a semi-colon", + "output": [ + [ + "Character", + "\u2a56" + ] + ] + }, + { + "input": "&orslope", + "description": "Bad named entity: orslope without a semi-colon", + "output": [ + [ + "Character", + "&orslope" + ] + ] + }, + { + "input": "⩗", + "description": "Named entity: orslope; with a semi-colon", + "output": [ + [ + "Character", + "\u2a57" + ] + ] + }, + { + "input": "&orv", + "description": "Bad named entity: orv without a semi-colon", + "output": [ + [ + "Character", + "&orv" + ] + ] + }, + { + "input": "⩛", + "description": "Named entity: orv; with a semi-colon", + "output": [ + [ + "Character", + "\u2a5b" + ] + ] + }, + { + "input": "&oscr", + "description": "Bad named entity: oscr without a semi-colon", + "output": [ + [ + "Character", + "&oscr" + ] + ] + }, + { + "input": "ℴ", + "description": "Named entity: oscr; with a semi-colon", + "output": [ + [ + "Character", + "\u2134" + ] + ] + }, + { + "input": "ø", + "description": "Named entity: oslash without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f8" + ] + ] + }, + { + "input": "ø", + "description": "Named entity: oslash; with a semi-colon", + "output": [ + [ + "Character", + "\u00f8" + ] + ] + }, + { + "input": "&osol", + "description": "Bad named entity: osol without a semi-colon", + "output": [ + [ + "Character", + "&osol" + ] + ] + }, + { + "input": "⊘", + "description": "Named entity: osol; with a semi-colon", + "output": [ + [ + "Character", + "\u2298" + ] + ] + }, + { + "input": "õ", + "description": "Named entity: otilde without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f5" + ] + ] + }, + { + "input": "õ", + "description": "Named entity: otilde; with a semi-colon", + "output": [ + [ + "Character", + "\u00f5" + ] + ] + }, + { + "input": "&otimes", + "description": "Bad named entity: otimes without a semi-colon", + "output": [ + [ + "Character", + "&otimes" + ] + ] + }, + { + "input": "⊗", + "description": "Named entity: otimes; with a semi-colon", + "output": [ + [ + "Character", + "\u2297" + ] + ] + }, + { + "input": "&otimesas", + "description": "Bad named entity: otimesas without a semi-colon", + "output": [ + [ + "Character", + "&otimesas" + ] + ] + }, + { + "input": "⨶", + "description": "Named entity: otimesas; with a semi-colon", + "output": [ + [ + "Character", + "\u2a36" + ] + ] + }, + { + "input": "ö", + "description": "Named entity: ouml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f6" + ] + ] + }, + { + "input": "ö", + "description": "Named entity: ouml; with a semi-colon", + "output": [ + [ + "Character", + "\u00f6" + ] + ] + }, + { + "input": "&ovbar", + "description": "Bad named entity: ovbar without a semi-colon", + "output": [ + [ + "Character", + "&ovbar" + ] + ] + }, + { + "input": "⌽", + "description": "Named entity: ovbar; with a semi-colon", + "output": [ + [ + "Character", + "\u233d" + ] + ] + }, + { + "input": "&par", + "description": "Bad named entity: par without a semi-colon", + "output": [ + [ + "Character", + "&par" + ] + ] + }, + { + "input": "∥", + "description": "Named entity: par; with a semi-colon", + "output": [ + [ + "Character", + "\u2225" + ] + ] + }, + { + "input": "¶", + "description": "Named entity: para without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b6" + ] + ] + }, + { + "input": "¶", + "description": "Named entity: para; with a semi-colon", + "output": [ + [ + "Character", + "\u00b6" + ] + ] + }, + { + "input": "∥", + "description": "Named entity: parallel; with a semi-colon", + "output": [ + [ + "Character", + "\u2225" + ] + ] + }, + { + "input": "&parsim", + "description": "Bad named entity: parsim without a semi-colon", + "output": [ + [ + "Character", + "&parsim" + ] + ] + }, + { + "input": "⫳", + "description": "Named entity: parsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2af3" + ] + ] + }, + { + "input": "&parsl", + "description": "Bad named entity: parsl without a semi-colon", + "output": [ + [ + "Character", + "&parsl" + ] + ] + }, + { + "input": "⫽", + "description": "Named entity: parsl; with a semi-colon", + "output": [ + [ + "Character", + "\u2afd" + ] + ] + }, + { + "input": "&part", + "description": "Bad named entity: part without a semi-colon", + "output": [ + [ + "Character", + "&part" + ] + ] + }, + { + "input": "∂", + "description": "Named entity: part; with a semi-colon", + "output": [ + [ + "Character", + "\u2202" + ] + ] + }, + { + "input": "&pcy", + "description": "Bad named entity: pcy without a semi-colon", + "output": [ + [ + "Character", + "&pcy" + ] + ] + }, + { + "input": "п", + "description": "Named entity: pcy; with a semi-colon", + "output": [ + [ + "Character", + "\u043f" + ] + ] + }, + { + "input": "&percnt", + "description": "Bad named entity: percnt without a semi-colon", + "output": [ + [ + "Character", + "&percnt" + ] + ] + }, + { + "input": "%", + "description": "Named entity: percnt; with a semi-colon", + "output": [ + [ + "Character", + "%" + ] + ] + }, + { + "input": "&period", + "description": "Bad named entity: period without a semi-colon", + "output": [ + [ + "Character", + "&period" + ] + ] + }, + { + "input": ".", + "description": "Named entity: period; with a semi-colon", + "output": [ + [ + "Character", + "." + ] + ] + }, + { + "input": "&permil", + "description": "Bad named entity: permil without a semi-colon", + "output": [ + [ + "Character", + "&permil" + ] + ] + }, + { + "input": "‰", + "description": "Named entity: permil; with a semi-colon", + "output": [ + [ + "Character", + "\u2030" + ] + ] + }, + { + "input": "&perp", + "description": "Bad named entity: perp without a semi-colon", + "output": [ + [ + "Character", + "&perp" + ] + ] + }, + { + "input": "⊥", + "description": "Named entity: perp; with a semi-colon", + "output": [ + [ + "Character", + "\u22a5" + ] + ] + }, + { + "input": "&pertenk", + "description": "Bad named entity: pertenk without a semi-colon", + "output": [ + [ + "Character", + "&pertenk" + ] + ] + }, + { + "input": "‱", + "description": "Named entity: pertenk; with a semi-colon", + "output": [ + [ + "Character", + "\u2031" + ] + ] + }, + { + "input": "&pfr", + "description": "Bad named entity: pfr without a semi-colon", + "output": [ + [ + "Character", + "&pfr" + ] + ] + }, + { + "input": "𝔭", + "description": "Named entity: pfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd2d" + ] + ] + }, + { + "input": "&phi", + "description": "Bad named entity: phi without a semi-colon", + "output": [ + [ + "Character", + "&phi" + ] + ] + }, + { + "input": "φ", + "description": "Named entity: phi; with a semi-colon", + "output": [ + [ + "Character", + "\u03c6" + ] + ] + }, + { + "input": "&phiv", + "description": "Bad named entity: phiv without a semi-colon", + "output": [ + [ + "Character", + "&phiv" + ] + ] + }, + { + "input": "ϕ", + "description": "Named entity: phiv; with a semi-colon", + "output": [ + [ + "Character", + "\u03d5" + ] + ] + }, + { + "input": "&phmmat", + "description": "Bad named entity: phmmat without a semi-colon", + "output": [ + [ + "Character", + "&phmmat" + ] + ] + }, + { + "input": "ℳ", + "description": "Named entity: phmmat; with a semi-colon", + "output": [ + [ + "Character", + "\u2133" + ] + ] + }, + { + "input": "&phone", + "description": "Bad named entity: phone without a semi-colon", + "output": [ + [ + "Character", + "&phone" + ] + ] + }, + { + "input": "☎", + "description": "Named entity: phone; with a semi-colon", + "output": [ + [ + "Character", + "\u260e" + ] + ] + }, + { + "input": "&pi", + "description": "Bad named entity: pi without a semi-colon", + "output": [ + [ + "Character", + "&pi" + ] + ] + }, + { + "input": "π", + "description": "Named entity: pi; with a semi-colon", + "output": [ + [ + "Character", + "\u03c0" + ] + ] + }, + { + "input": "&pitchfork", + "description": "Bad named entity: pitchfork without a semi-colon", + "output": [ + [ + "Character", + "&pitchfork" + ] + ] + }, + { + "input": "⋔", + "description": "Named entity: pitchfork; with a semi-colon", + "output": [ + [ + "Character", + "\u22d4" + ] + ] + }, + { + "input": "&piv", + "description": "Bad named entity: piv without a semi-colon", + "output": [ + [ + "Character", + "&piv" + ] + ] + }, + { + "input": "ϖ", + "description": "Named entity: piv; with a semi-colon", + "output": [ + [ + "Character", + "\u03d6" + ] + ] + }, + { + "input": "&planck", + "description": "Bad named entity: planck without a semi-colon", + "output": [ + [ + "Character", + "&planck" + ] + ] + }, + { + "input": "ℏ", + "description": "Named entity: planck; with a semi-colon", + "output": [ + [ + "Character", + "\u210f" + ] + ] + }, + { + "input": "&planckh", + "description": "Bad named entity: planckh without a semi-colon", + "output": [ + [ + "Character", + "&planckh" + ] + ] + }, + { + "input": "ℎ", + "description": "Named entity: planckh; with a semi-colon", + "output": [ + [ + "Character", + "\u210e" + ] + ] + }, + { + "input": "&plankv", + "description": "Bad named entity: plankv without a semi-colon", + "output": [ + [ + "Character", + "&plankv" + ] + ] + }, + { + "input": "ℏ", + "description": "Named entity: plankv; with a semi-colon", + "output": [ + [ + "Character", + "\u210f" + ] + ] + }, + { + "input": "&plus", + "description": "Bad named entity: plus without a semi-colon", + "output": [ + [ + "Character", + "&plus" + ] + ] + }, + { + "input": "+", + "description": "Named entity: plus; with a semi-colon", + "output": [ + [ + "Character", + "+" + ] + ] + }, + { + "input": "&plusacir", + "description": "Bad named entity: plusacir without a semi-colon", + "output": [ + [ + "Character", + "&plusacir" + ] + ] + }, + { + "input": "⨣", + "description": "Named entity: plusacir; with a semi-colon", + "output": [ + [ + "Character", + "\u2a23" + ] + ] + }, + { + "input": "&plusb", + "description": "Bad named entity: plusb without a semi-colon", + "output": [ + [ + "Character", + "&plusb" + ] + ] + }, + { + "input": "⊞", + "description": "Named entity: plusb; with a semi-colon", + "output": [ + [ + "Character", + "\u229e" + ] + ] + }, + { + "input": "&pluscir", + "description": "Bad named entity: pluscir without a semi-colon", + "output": [ + [ + "Character", + "&pluscir" + ] + ] + }, + { + "input": "⨢", + "description": "Named entity: pluscir; with a semi-colon", + "output": [ + [ + "Character", + "\u2a22" + ] + ] + }, + { + "input": "&plusdo", + "description": "Bad named entity: plusdo without a semi-colon", + "output": [ + [ + "Character", + "&plusdo" + ] + ] + }, + { + "input": "∔", + "description": "Named entity: plusdo; with a semi-colon", + "output": [ + [ + "Character", + "\u2214" + ] + ] + }, + { + "input": "&plusdu", + "description": "Bad named entity: plusdu without a semi-colon", + "output": [ + [ + "Character", + "&plusdu" + ] + ] + }, + { + "input": "⨥", + "description": "Named entity: plusdu; with a semi-colon", + "output": [ + [ + "Character", + "\u2a25" + ] + ] + }, + { + "input": "&pluse", + "description": "Bad named entity: pluse without a semi-colon", + "output": [ + [ + "Character", + "&pluse" + ] + ] + }, + { + "input": "⩲", + "description": "Named entity: pluse; with a semi-colon", + "output": [ + [ + "Character", + "\u2a72" + ] + ] + }, + { + "input": "±", + "description": "Named entity: plusmn without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b1" + ] + ] + }, + { + "input": "±", + "description": "Named entity: plusmn; with a semi-colon", + "output": [ + [ + "Character", + "\u00b1" + ] + ] + }, + { + "input": "&plussim", + "description": "Bad named entity: plussim without a semi-colon", + "output": [ + [ + "Character", + "&plussim" + ] + ] + }, + { + "input": "⨦", + "description": "Named entity: plussim; with a semi-colon", + "output": [ + [ + "Character", + "\u2a26" + ] + ] + }, + { + "input": "&plustwo", + "description": "Bad named entity: plustwo without a semi-colon", + "output": [ + [ + "Character", + "&plustwo" + ] + ] + }, + { + "input": "⨧", + "description": "Named entity: plustwo; with a semi-colon", + "output": [ + [ + "Character", + "\u2a27" + ] + ] + }, + { + "input": "&pm", + "description": "Bad named entity: pm without a semi-colon", + "output": [ + [ + "Character", + "&pm" + ] + ] + }, + { + "input": "±", + "description": "Named entity: pm; with a semi-colon", + "output": [ + [ + "Character", + "\u00b1" + ] + ] + }, + { + "input": "&pointint", + "description": "Bad named entity: pointint without a semi-colon", + "output": [ + [ + "Character", + "&pointint" + ] + ] + }, + { + "input": "⨕", + "description": "Named entity: pointint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a15" + ] + ] + }, + { + "input": "&popf", + "description": "Bad named entity: popf without a semi-colon", + "output": [ + [ + "Character", + "&popf" + ] + ] + }, + { + "input": "𝕡", + "description": "Named entity: popf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd61" + ] + ] + }, + { + "input": "£", + "description": "Named entity: pound without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a3" + ] + ] + }, + { + "input": "£", + "description": "Named entity: pound; with a semi-colon", + "output": [ + [ + "Character", + "\u00a3" + ] + ] + }, + { + "input": "&pr", + "description": "Bad named entity: pr without a semi-colon", + "output": [ + [ + "Character", + "&pr" + ] + ] + }, + { + "input": "≺", + "description": "Named entity: pr; with a semi-colon", + "output": [ + [ + "Character", + "\u227a" + ] + ] + }, + { + "input": "&prE", + "description": "Bad named entity: prE without a semi-colon", + "output": [ + [ + "Character", + "&prE" + ] + ] + }, + { + "input": "⪳", + "description": "Named entity: prE; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab3" + ] + ] + }, + { + "input": "&prap", + "description": "Bad named entity: prap without a semi-colon", + "output": [ + [ + "Character", + "&prap" + ] + ] + }, + { + "input": "⪷", + "description": "Named entity: prap; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab7" + ] + ] + }, + { + "input": "&prcue", + "description": "Bad named entity: prcue without a semi-colon", + "output": [ + [ + "Character", + "&prcue" + ] + ] + }, + { + "input": "≼", + "description": "Named entity: prcue; with a semi-colon", + "output": [ + [ + "Character", + "\u227c" + ] + ] + }, + { + "input": "&pre", + "description": "Bad named entity: pre without a semi-colon", + "output": [ + [ + "Character", + "&pre" + ] + ] + }, + { + "input": "⪯", + "description": "Named entity: pre; with a semi-colon", + "output": [ + [ + "Character", + "\u2aaf" + ] + ] + }, + { + "input": "&prec", + "description": "Bad named entity: prec without a semi-colon", + "output": [ + [ + "Character", + "&prec" + ] + ] + }, + { + "input": "≺", + "description": "Named entity: prec; with a semi-colon", + "output": [ + [ + "Character", + "\u227a" + ] + ] + }, + { + "input": "&precapprox", + "description": "Bad named entity: precapprox without a semi-colon", + "output": [ + [ + "Character", + "&precapprox" + ] + ] + }, + { + "input": "⪷", + "description": "Named entity: precapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab7" + ] + ] + }, + { + "input": "&preccurlyeq", + "description": "Bad named entity: preccurlyeq without a semi-colon", + "output": [ + [ + "Character", + "&preccurlyeq" + ] + ] + }, + { + "input": "≼", + "description": "Named entity: preccurlyeq; with a semi-colon", + "output": [ + [ + "Character", + "\u227c" + ] + ] + }, + { + "input": "&preceq", + "description": "Bad named entity: preceq without a semi-colon", + "output": [ + [ + "Character", + "&preceq" + ] + ] + }, + { + "input": "⪯", + "description": "Named entity: preceq; with a semi-colon", + "output": [ + [ + "Character", + "\u2aaf" + ] + ] + }, + { + "input": "&precnapprox", + "description": "Bad named entity: precnapprox without a semi-colon", + "output": [ + [ + "Character", + "&precnapprox" + ] + ] + }, + { + "input": "⪹", + "description": "Named entity: precnapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab9" + ] + ] + }, + { + "input": "&precneqq", + "description": "Bad named entity: precneqq without a semi-colon", + "output": [ + [ + "Character", + "&precneqq" + ] + ] + }, + { + "input": "⪵", + "description": "Named entity: precneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab5" + ] + ] + }, + { + "input": "&precnsim", + "description": "Bad named entity: precnsim without a semi-colon", + "output": [ + [ + "Character", + "&precnsim" + ] + ] + }, + { + "input": "⋨", + "description": "Named entity: precnsim; with a semi-colon", + "output": [ + [ + "Character", + "\u22e8" + ] + ] + }, + { + "input": "&precsim", + "description": "Bad named entity: precsim without a semi-colon", + "output": [ + [ + "Character", + "&precsim" + ] + ] + }, + { + "input": "≾", + "description": "Named entity: precsim; with a semi-colon", + "output": [ + [ + "Character", + "\u227e" + ] + ] + }, + { + "input": "&prime", + "description": "Bad named entity: prime without a semi-colon", + "output": [ + [ + "Character", + "&prime" + ] + ] + }, + { + "input": "′", + "description": "Named entity: prime; with a semi-colon", + "output": [ + [ + "Character", + "\u2032" + ] + ] + }, + { + "input": "&primes", + "description": "Bad named entity: primes without a semi-colon", + "output": [ + [ + "Character", + "&primes" + ] + ] + }, + { + "input": "ℙ", + "description": "Named entity: primes; with a semi-colon", + "output": [ + [ + "Character", + "\u2119" + ] + ] + }, + { + "input": "&prnE", + "description": "Bad named entity: prnE without a semi-colon", + "output": [ + [ + "Character", + "&prnE" + ] + ] + }, + { + "input": "⪵", + "description": "Named entity: prnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab5" + ] + ] + }, + { + "input": "&prnap", + "description": "Bad named entity: prnap without a semi-colon", + "output": [ + [ + "Character", + "&prnap" + ] + ] + }, + { + "input": "⪹", + "description": "Named entity: prnap; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab9" + ] + ] + }, + { + "input": "&prnsim", + "description": "Bad named entity: prnsim without a semi-colon", + "output": [ + [ + "Character", + "&prnsim" + ] + ] + }, + { + "input": "⋨", + "description": "Named entity: prnsim; with a semi-colon", + "output": [ + [ + "Character", + "\u22e8" + ] + ] + }, + { + "input": "&prod", + "description": "Bad named entity: prod without a semi-colon", + "output": [ + [ + "Character", + "&prod" + ] + ] + }, + { + "input": "∏", + "description": "Named entity: prod; with a semi-colon", + "output": [ + [ + "Character", + "\u220f" + ] + ] + }, + { + "input": "&profalar", + "description": "Bad named entity: profalar without a semi-colon", + "output": [ + [ + "Character", + "&profalar" + ] + ] + }, + { + "input": "⌮", + "description": "Named entity: profalar; with a semi-colon", + "output": [ + [ + "Character", + "\u232e" + ] + ] + }, + { + "input": "&profline", + "description": "Bad named entity: profline without a semi-colon", + "output": [ + [ + "Character", + "&profline" + ] + ] + }, + { + "input": "⌒", + "description": "Named entity: profline; with a semi-colon", + "output": [ + [ + "Character", + "\u2312" + ] + ] + }, + { + "input": "&profsurf", + "description": "Bad named entity: profsurf without a semi-colon", + "output": [ + [ + "Character", + "&profsurf" + ] + ] + }, + { + "input": "⌓", + "description": "Named entity: profsurf; with a semi-colon", + "output": [ + [ + "Character", + "\u2313" + ] + ] + }, + { + "input": "&prop", + "description": "Bad named entity: prop without a semi-colon", + "output": [ + [ + "Character", + "&prop" + ] + ] + }, + { + "input": "∝", + "description": "Named entity: prop; with a semi-colon", + "output": [ + [ + "Character", + "\u221d" + ] + ] + }, + { + "input": "&propto", + "description": "Bad named entity: propto without a semi-colon", + "output": [ + [ + "Character", + "&propto" + ] + ] + }, + { + "input": "∝", + "description": "Named entity: propto; with a semi-colon", + "output": [ + [ + "Character", + "\u221d" + ] + ] + }, + { + "input": "&prsim", + "description": "Bad named entity: prsim without a semi-colon", + "output": [ + [ + "Character", + "&prsim" + ] + ] + }, + { + "input": "≾", + "description": "Named entity: prsim; with a semi-colon", + "output": [ + [ + "Character", + "\u227e" + ] + ] + }, + { + "input": "&prurel", + "description": "Bad named entity: prurel without a semi-colon", + "output": [ + [ + "Character", + "&prurel" + ] + ] + }, + { + "input": "⊰", + "description": "Named entity: prurel; with a semi-colon", + "output": [ + [ + "Character", + "\u22b0" + ] + ] + }, + { + "input": "&pscr", + "description": "Bad named entity: pscr without a semi-colon", + "output": [ + [ + "Character", + "&pscr" + ] + ] + }, + { + "input": "𝓅", + "description": "Named entity: pscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc5" + ] + ] + }, + { + "input": "&psi", + "description": "Bad named entity: psi without a semi-colon", + "output": [ + [ + "Character", + "&psi" + ] + ] + }, + { + "input": "ψ", + "description": "Named entity: psi; with a semi-colon", + "output": [ + [ + "Character", + "\u03c8" + ] + ] + }, + { + "input": "&puncsp", + "description": "Bad named entity: puncsp without a semi-colon", + "output": [ + [ + "Character", + "&puncsp" + ] + ] + }, + { + "input": " ", + "description": "Named entity: puncsp; with a semi-colon", + "output": [ + [ + "Character", + "\u2008" + ] + ] + }, + { + "input": "&qfr", + "description": "Bad named entity: qfr without a semi-colon", + "output": [ + [ + "Character", + "&qfr" + ] + ] + }, + { + "input": "𝔮", + "description": "Named entity: qfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd2e" + ] + ] + }, + { + "input": "&qint", + "description": "Bad named entity: qint without a semi-colon", + "output": [ + [ + "Character", + "&qint" + ] + ] + }, + { + "input": "⨌", + "description": "Named entity: qint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a0c" + ] + ] + }, + { + "input": "&qopf", + "description": "Bad named entity: qopf without a semi-colon", + "output": [ + [ + "Character", + "&qopf" + ] + ] + }, + { + "input": "𝕢", + "description": "Named entity: qopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd62" + ] + ] + }, + { + "input": "&qprime", + "description": "Bad named entity: qprime without a semi-colon", + "output": [ + [ + "Character", + "&qprime" + ] + ] + }, + { + "input": "⁗", + "description": "Named entity: qprime; with a semi-colon", + "output": [ + [ + "Character", + "\u2057" + ] + ] + }, + { + "input": "&qscr", + "description": "Bad named entity: qscr without a semi-colon", + "output": [ + [ + "Character", + "&qscr" + ] + ] + }, + { + "input": "𝓆", + "description": "Named entity: qscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc6" + ] + ] + }, + { + "input": "&quaternions", + "description": "Bad named entity: quaternions without a semi-colon", + "output": [ + [ + "Character", + "&quaternions" + ] + ] + }, + { + "input": "ℍ", + "description": "Named entity: quaternions; with a semi-colon", + "output": [ + [ + "Character", + "\u210d" + ] + ] + }, + { + "input": "&quatint", + "description": "Bad named entity: quatint without a semi-colon", + "output": [ + [ + "Character", + "&quatint" + ] + ] + }, + { + "input": "⨖", + "description": "Named entity: quatint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a16" + ] + ] + }, + { + "input": "&quest", + "description": "Bad named entity: quest without a semi-colon", + "output": [ + [ + "Character", + "&quest" + ] + ] + }, + { + "input": "?", + "description": "Named entity: quest; with a semi-colon", + "output": [ + [ + "Character", + "?" + ] + ] + }, + { + "input": "&questeq", + "description": "Bad named entity: questeq without a semi-colon", + "output": [ + [ + "Character", + "&questeq" + ] + ] + }, + { + "input": "≟", + "description": "Named entity: questeq; with a semi-colon", + "output": [ + [ + "Character", + "\u225f" + ] + ] + }, + { + "input": """, + "description": "Named entity: quot without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\"" + ] + ] + }, + { + "input": """, + "description": "Named entity: quot; with a semi-colon", + "output": [ + [ + "Character", + "\"" + ] + ] + }, + { + "input": "&rAarr", + "description": "Bad named entity: rAarr without a semi-colon", + "output": [ + [ + "Character", + "&rAarr" + ] + ] + }, + { + "input": "⇛", + "description": "Named entity: rAarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21db" + ] + ] + }, + { + "input": "&rArr", + "description": "Bad named entity: rArr without a semi-colon", + "output": [ + [ + "Character", + "&rArr" + ] + ] + }, + { + "input": "⇒", + "description": "Named entity: rArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d2" + ] + ] + }, + { + "input": "&rAtail", + "description": "Bad named entity: rAtail without a semi-colon", + "output": [ + [ + "Character", + "&rAtail" + ] + ] + }, + { + "input": "⤜", + "description": "Named entity: rAtail; with a semi-colon", + "output": [ + [ + "Character", + "\u291c" + ] + ] + }, + { + "input": "&rBarr", + "description": "Bad named entity: rBarr without a semi-colon", + "output": [ + [ + "Character", + "&rBarr" + ] + ] + }, + { + "input": "⤏", + "description": "Named entity: rBarr; with a semi-colon", + "output": [ + [ + "Character", + "\u290f" + ] + ] + }, + { + "input": "&rHar", + "description": "Bad named entity: rHar without a semi-colon", + "output": [ + [ + "Character", + "&rHar" + ] + ] + }, + { + "input": "⥤", + "description": "Named entity: rHar; with a semi-colon", + "output": [ + [ + "Character", + "\u2964" + ] + ] + }, + { + "input": "&race", + "description": "Bad named entity: race without a semi-colon", + "output": [ + [ + "Character", + "&race" + ] + ] + }, + { + "input": "∽̱", + "description": "Named entity: race; with a semi-colon", + "output": [ + [ + "Character", + "\u223d\u0331" + ] + ] + }, + { + "input": "&racute", + "description": "Bad named entity: racute without a semi-colon", + "output": [ + [ + "Character", + "&racute" + ] + ] + }, + { + "input": "ŕ", + "description": "Named entity: racute; with a semi-colon", + "output": [ + [ + "Character", + "\u0155" + ] + ] + }, + { + "input": "&radic", + "description": "Bad named entity: radic without a semi-colon", + "output": [ + [ + "Character", + "&radic" + ] + ] + }, + { + "input": "√", + "description": "Named entity: radic; with a semi-colon", + "output": [ + [ + "Character", + "\u221a" + ] + ] + }, + { + "input": "&raemptyv", + "description": "Bad named entity: raemptyv without a semi-colon", + "output": [ + [ + "Character", + "&raemptyv" + ] + ] + }, + { + "input": "⦳", + "description": "Named entity: raemptyv; with a semi-colon", + "output": [ + [ + "Character", + "\u29b3" + ] + ] + }, + { + "input": "&rang", + "description": "Bad named entity: rang without a semi-colon", + "output": [ + [ + "Character", + "&rang" + ] + ] + }, + { + "input": "⟩", + "description": "Named entity: rang; with a semi-colon", + "output": [ + [ + "Character", + "\u27e9" + ] + ] + }, + { + "input": "&rangd", + "description": "Bad named entity: rangd without a semi-colon", + "output": [ + [ + "Character", + "&rangd" + ] + ] + }, + { + "input": "⦒", + "description": "Named entity: rangd; with a semi-colon", + "output": [ + [ + "Character", + "\u2992" + ] + ] + }, + { + "input": "&range", + "description": "Bad named entity: range without a semi-colon", + "output": [ + [ + "Character", + "&range" + ] + ] + }, + { + "input": "⦥", + "description": "Named entity: range; with a semi-colon", + "output": [ + [ + "Character", + "\u29a5" + ] + ] + }, + { + "input": "&rangle", + "description": "Bad named entity: rangle without a semi-colon", + "output": [ + [ + "Character", + "&rangle" + ] + ] + }, + { + "input": "⟩", + "description": "Named entity: rangle; with a semi-colon", + "output": [ + [ + "Character", + "\u27e9" + ] + ] + }, + { + "input": "»", + "description": "Named entity: raquo without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00bb" + ] + ] + }, + { + "input": "»", + "description": "Named entity: raquo; with a semi-colon", + "output": [ + [ + "Character", + "\u00bb" + ] + ] + }, + { + "input": "&rarr", + "description": "Bad named entity: rarr without a semi-colon", + "output": [ + [ + "Character", + "&rarr" + ] + ] + }, + { + "input": "→", + "description": "Named entity: rarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2192" + ] + ] + }, + { + "input": "&rarrap", + "description": "Bad named entity: rarrap without a semi-colon", + "output": [ + [ + "Character", + "&rarrap" + ] + ] + }, + { + "input": "⥵", + "description": "Named entity: rarrap; with a semi-colon", + "output": [ + [ + "Character", + "\u2975" + ] + ] + }, + { + "input": "&rarrb", + "description": "Bad named entity: rarrb without a semi-colon", + "output": [ + [ + "Character", + "&rarrb" + ] + ] + }, + { + "input": "⇥", + "description": "Named entity: rarrb; with a semi-colon", + "output": [ + [ + "Character", + "\u21e5" + ] + ] + }, + { + "input": "&rarrbfs", + "description": "Bad named entity: rarrbfs without a semi-colon", + "output": [ + [ + "Character", + "&rarrbfs" + ] + ] + }, + { + "input": "⤠", + "description": "Named entity: rarrbfs; with a semi-colon", + "output": [ + [ + "Character", + "\u2920" + ] + ] + }, + { + "input": "&rarrc", + "description": "Bad named entity: rarrc without a semi-colon", + "output": [ + [ + "Character", + "&rarrc" + ] + ] + }, + { + "input": "⤳", + "description": "Named entity: rarrc; with a semi-colon", + "output": [ + [ + "Character", + "\u2933" + ] + ] + }, + { + "input": "&rarrfs", + "description": "Bad named entity: rarrfs without a semi-colon", + "output": [ + [ + "Character", + "&rarrfs" + ] + ] + }, + { + "input": "⤞", + "description": "Named entity: rarrfs; with a semi-colon", + "output": [ + [ + "Character", + "\u291e" + ] + ] + }, + { + "input": "&rarrhk", + "description": "Bad named entity: rarrhk without a semi-colon", + "output": [ + [ + "Character", + "&rarrhk" + ] + ] + }, + { + "input": "↪", + "description": "Named entity: rarrhk; with a semi-colon", + "output": [ + [ + "Character", + "\u21aa" + ] + ] + }, + { + "input": "&rarrlp", + "description": "Bad named entity: rarrlp without a semi-colon", + "output": [ + [ + "Character", + "&rarrlp" + ] + ] + }, + { + "input": "↬", + "description": "Named entity: rarrlp; with a semi-colon", + "output": [ + [ + "Character", + "\u21ac" + ] + ] + }, + { + "input": "&rarrpl", + "description": "Bad named entity: rarrpl without a semi-colon", + "output": [ + [ + "Character", + "&rarrpl" + ] + ] + }, + { + "input": "⥅", + "description": "Named entity: rarrpl; with a semi-colon", + "output": [ + [ + "Character", + "\u2945" + ] + ] + }, + { + "input": "&rarrsim", + "description": "Bad named entity: rarrsim without a semi-colon", + "output": [ + [ + "Character", + "&rarrsim" + ] + ] + }, + { + "input": "⥴", + "description": "Named entity: rarrsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2974" + ] + ] + }, + { + "input": "&rarrtl", + "description": "Bad named entity: rarrtl without a semi-colon", + "output": [ + [ + "Character", + "&rarrtl" + ] + ] + }, + { + "input": "↣", + "description": "Named entity: rarrtl; with a semi-colon", + "output": [ + [ + "Character", + "\u21a3" + ] + ] + }, + { + "input": "&rarrw", + "description": "Bad named entity: rarrw without a semi-colon", + "output": [ + [ + "Character", + "&rarrw" + ] + ] + }, + { + "input": "↝", + "description": "Named entity: rarrw; with a semi-colon", + "output": [ + [ + "Character", + "\u219d" + ] + ] + }, + { + "input": "&ratail", + "description": "Bad named entity: ratail without a semi-colon", + "output": [ + [ + "Character", + "&ratail" + ] + ] + }, + { + "input": "⤚", + "description": "Named entity: ratail; with a semi-colon", + "output": [ + [ + "Character", + "\u291a" + ] + ] + }, + { + "input": "&ratio", + "description": "Bad named entity: ratio without a semi-colon", + "output": [ + [ + "Character", + "&ratio" + ] + ] + }, + { + "input": "∶", + "description": "Named entity: ratio; with a semi-colon", + "output": [ + [ + "Character", + "\u2236" + ] + ] + }, + { + "input": "&rationals", + "description": "Bad named entity: rationals without a semi-colon", + "output": [ + [ + "Character", + "&rationals" + ] + ] + }, + { + "input": "ℚ", + "description": "Named entity: rationals; with a semi-colon", + "output": [ + [ + "Character", + "\u211a" + ] + ] + }, + { + "input": "&rbarr", + "description": "Bad named entity: rbarr without a semi-colon", + "output": [ + [ + "Character", + "&rbarr" + ] + ] + }, + { + "input": "⤍", + "description": "Named entity: rbarr; with a semi-colon", + "output": [ + [ + "Character", + "\u290d" + ] + ] + }, + { + "input": "&rbbrk", + "description": "Bad named entity: rbbrk without a semi-colon", + "output": [ + [ + "Character", + "&rbbrk" + ] + ] + }, + { + "input": "❳", + "description": "Named entity: rbbrk; with a semi-colon", + "output": [ + [ + "Character", + "\u2773" + ] + ] + }, + { + "input": "&rbrace", + "description": "Bad named entity: rbrace without a semi-colon", + "output": [ + [ + "Character", + "&rbrace" + ] + ] + }, + { + "input": "}", + "description": "Named entity: rbrace; with a semi-colon", + "output": [ + [ + "Character", + "}" + ] + ] + }, + { + "input": "&rbrack", + "description": "Bad named entity: rbrack without a semi-colon", + "output": [ + [ + "Character", + "&rbrack" + ] + ] + }, + { + "input": "]", + "description": "Named entity: rbrack; with a semi-colon", + "output": [ + [ + "Character", + "]" + ] + ] + }, + { + "input": "&rbrke", + "description": "Bad named entity: rbrke without a semi-colon", + "output": [ + [ + "Character", + "&rbrke" + ] + ] + }, + { + "input": "⦌", + "description": "Named entity: rbrke; with a semi-colon", + "output": [ + [ + "Character", + "\u298c" + ] + ] + }, + { + "input": "&rbrksld", + "description": "Bad named entity: rbrksld without a semi-colon", + "output": [ + [ + "Character", + "&rbrksld" + ] + ] + }, + { + "input": "⦎", + "description": "Named entity: rbrksld; with a semi-colon", + "output": [ + [ + "Character", + "\u298e" + ] + ] + }, + { + "input": "&rbrkslu", + "description": "Bad named entity: rbrkslu without a semi-colon", + "output": [ + [ + "Character", + "&rbrkslu" + ] + ] + }, + { + "input": "⦐", + "description": "Named entity: rbrkslu; with a semi-colon", + "output": [ + [ + "Character", + "\u2990" + ] + ] + }, + { + "input": "&rcaron", + "description": "Bad named entity: rcaron without a semi-colon", + "output": [ + [ + "Character", + "&rcaron" + ] + ] + }, + { + "input": "ř", + "description": "Named entity: rcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u0159" + ] + ] + }, + { + "input": "&rcedil", + "description": "Bad named entity: rcedil without a semi-colon", + "output": [ + [ + "Character", + "&rcedil" + ] + ] + }, + { + "input": "ŗ", + "description": "Named entity: rcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0157" + ] + ] + }, + { + "input": "&rceil", + "description": "Bad named entity: rceil without a semi-colon", + "output": [ + [ + "Character", + "&rceil" + ] + ] + }, + { + "input": "⌉", + "description": "Named entity: rceil; with a semi-colon", + "output": [ + [ + "Character", + "\u2309" + ] + ] + }, + { + "input": "&rcub", + "description": "Bad named entity: rcub without a semi-colon", + "output": [ + [ + "Character", + "&rcub" + ] + ] + }, + { + "input": "}", + "description": "Named entity: rcub; with a semi-colon", + "output": [ + [ + "Character", + "}" + ] + ] + }, + { + "input": "&rcy", + "description": "Bad named entity: rcy without a semi-colon", + "output": [ + [ + "Character", + "&rcy" + ] + ] + }, + { + "input": "р", + "description": "Named entity: rcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0440" + ] + ] + }, + { + "input": "&rdca", + "description": "Bad named entity: rdca without a semi-colon", + "output": [ + [ + "Character", + "&rdca" + ] + ] + }, + { + "input": "⤷", + "description": "Named entity: rdca; with a semi-colon", + "output": [ + [ + "Character", + "\u2937" + ] + ] + }, + { + "input": "&rdldhar", + "description": "Bad named entity: rdldhar without a semi-colon", + "output": [ + [ + "Character", + "&rdldhar" + ] + ] + }, + { + "input": "⥩", + "description": "Named entity: rdldhar; with a semi-colon", + "output": [ + [ + "Character", + "\u2969" + ] + ] + }, + { + "input": "&rdquo", + "description": "Bad named entity: rdquo without a semi-colon", + "output": [ + [ + "Character", + "&rdquo" + ] + ] + }, + { + "input": "”", + "description": "Named entity: rdquo; with a semi-colon", + "output": [ + [ + "Character", + "\u201d" + ] + ] + }, + { + "input": "&rdquor", + "description": "Bad named entity: rdquor without a semi-colon", + "output": [ + [ + "Character", + "&rdquor" + ] + ] + }, + { + "input": "”", + "description": "Named entity: rdquor; with a semi-colon", + "output": [ + [ + "Character", + "\u201d" + ] + ] + }, + { + "input": "&rdsh", + "description": "Bad named entity: rdsh without a semi-colon", + "output": [ + [ + "Character", + "&rdsh" + ] + ] + }, + { + "input": "↳", + "description": "Named entity: rdsh; with a semi-colon", + "output": [ + [ + "Character", + "\u21b3" + ] + ] + }, + { + "input": "&real", + "description": "Bad named entity: real without a semi-colon", + "output": [ + [ + "Character", + "&real" + ] + ] + }, + { + "input": "ℜ", + "description": "Named entity: real; with a semi-colon", + "output": [ + [ + "Character", + "\u211c" + ] + ] + }, + { + "input": "&realine", + "description": "Bad named entity: realine without a semi-colon", + "output": [ + [ + "Character", + "&realine" + ] + ] + }, + { + "input": "ℛ", + "description": "Named entity: realine; with a semi-colon", + "output": [ + [ + "Character", + "\u211b" + ] + ] + }, + { + "input": "&realpart", + "description": "Bad named entity: realpart without a semi-colon", + "output": [ + [ + "Character", + "&realpart" + ] + ] + }, + { + "input": "ℜ", + "description": "Named entity: realpart; with a semi-colon", + "output": [ + [ + "Character", + "\u211c" + ] + ] + }, + { + "input": "&reals", + "description": "Bad named entity: reals without a semi-colon", + "output": [ + [ + "Character", + "&reals" + ] + ] + }, + { + "input": "ℝ", + "description": "Named entity: reals; with a semi-colon", + "output": [ + [ + "Character", + "\u211d" + ] + ] + }, + { + "input": "&rect", + "description": "Bad named entity: rect without a semi-colon", + "output": [ + [ + "Character", + "&rect" + ] + ] + }, + { + "input": "▭", + "description": "Named entity: rect; with a semi-colon", + "output": [ + [ + "Character", + "\u25ad" + ] + ] + }, + { + "input": "®", + "description": "Named entity: reg without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ae" + ] + ] + }, + { + "input": "®", + "description": "Named entity: reg; with a semi-colon", + "output": [ + [ + "Character", + "\u00ae" + ] + ] + }, + { + "input": "&rfisht", + "description": "Bad named entity: rfisht without a semi-colon", + "output": [ + [ + "Character", + "&rfisht" + ] + ] + }, + { + "input": "⥽", + "description": "Named entity: rfisht; with a semi-colon", + "output": [ + [ + "Character", + "\u297d" + ] + ] + }, + { + "input": "&rfloor", + "description": "Bad named entity: rfloor without a semi-colon", + "output": [ + [ + "Character", + "&rfloor" + ] + ] + }, + { + "input": "⌋", + "description": "Named entity: rfloor; with a semi-colon", + "output": [ + [ + "Character", + "\u230b" + ] + ] + }, + { + "input": "&rfr", + "description": "Bad named entity: rfr without a semi-colon", + "output": [ + [ + "Character", + "&rfr" + ] + ] + }, + { + "input": "𝔯", + "description": "Named entity: rfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd2f" + ] + ] + }, + { + "input": "&rhard", + "description": "Bad named entity: rhard without a semi-colon", + "output": [ + [ + "Character", + "&rhard" + ] + ] + }, + { + "input": "⇁", + "description": "Named entity: rhard; with a semi-colon", + "output": [ + [ + "Character", + "\u21c1" + ] + ] + }, + { + "input": "&rharu", + "description": "Bad named entity: rharu without a semi-colon", + "output": [ + [ + "Character", + "&rharu" + ] + ] + }, + { + "input": "⇀", + "description": "Named entity: rharu; with a semi-colon", + "output": [ + [ + "Character", + "\u21c0" + ] + ] + }, + { + "input": "&rharul", + "description": "Bad named entity: rharul without a semi-colon", + "output": [ + [ + "Character", + "&rharul" + ] + ] + }, + { + "input": "⥬", + "description": "Named entity: rharul; with a semi-colon", + "output": [ + [ + "Character", + "\u296c" + ] + ] + }, + { + "input": "&rho", + "description": "Bad named entity: rho without a semi-colon", + "output": [ + [ + "Character", + "&rho" + ] + ] + }, + { + "input": "ρ", + "description": "Named entity: rho; with a semi-colon", + "output": [ + [ + "Character", + "\u03c1" + ] + ] + }, + { + "input": "&rhov", + "description": "Bad named entity: rhov without a semi-colon", + "output": [ + [ + "Character", + "&rhov" + ] + ] + }, + { + "input": "ϱ", + "description": "Named entity: rhov; with a semi-colon", + "output": [ + [ + "Character", + "\u03f1" + ] + ] + }, + { + "input": "&rightarrow", + "description": "Bad named entity: rightarrow without a semi-colon", + "output": [ + [ + "Character", + "&rightarrow" + ] + ] + }, + { + "input": "→", + "description": "Named entity: rightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2192" + ] + ] + }, + { + "input": "&rightarrowtail", + "description": "Bad named entity: rightarrowtail without a semi-colon", + "output": [ + [ + "Character", + "&rightarrowtail" + ] + ] + }, + { + "input": "↣", + "description": "Named entity: rightarrowtail; with a semi-colon", + "output": [ + [ + "Character", + "\u21a3" + ] + ] + }, + { + "input": "&rightharpoondown", + "description": "Bad named entity: rightharpoondown without a semi-colon", + "output": [ + [ + "Character", + "&rightharpoondown" + ] + ] + }, + { + "input": "⇁", + "description": "Named entity: rightharpoondown; with a semi-colon", + "output": [ + [ + "Character", + "\u21c1" + ] + ] + }, + { + "input": "&rightharpoonup", + "description": "Bad named entity: rightharpoonup without a semi-colon", + "output": [ + [ + "Character", + "&rightharpoonup" + ] + ] + }, + { + "input": "⇀", + "description": "Named entity: rightharpoonup; with a semi-colon", + "output": [ + [ + "Character", + "\u21c0" + ] + ] + }, + { + "input": "&rightleftarrows", + "description": "Bad named entity: rightleftarrows without a semi-colon", + "output": [ + [ + "Character", + "&rightleftarrows" + ] + ] + }, + { + "input": "⇄", + "description": "Named entity: rightleftarrows; with a semi-colon", + "output": [ + [ + "Character", + "\u21c4" + ] + ] + }, + { + "input": "&rightleftharpoons", + "description": "Bad named entity: rightleftharpoons without a semi-colon", + "output": [ + [ + "Character", + "&rightleftharpoons" + ] + ] + }, + { + "input": "⇌", + "description": "Named entity: rightleftharpoons; with a semi-colon", + "output": [ + [ + "Character", + "\u21cc" + ] + ] + }, + { + "input": "&rightrightarrows", + "description": "Bad named entity: rightrightarrows without a semi-colon", + "output": [ + [ + "Character", + "&rightrightarrows" + ] + ] + }, + { + "input": "⇉", + "description": "Named entity: rightrightarrows; with a semi-colon", + "output": [ + [ + "Character", + "\u21c9" + ] + ] + }, + { + "input": "&rightsquigarrow", + "description": "Bad named entity: rightsquigarrow without a semi-colon", + "output": [ + [ + "Character", + "&rightsquigarrow" + ] + ] + }, + { + "input": "↝", + "description": "Named entity: rightsquigarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u219d" + ] + ] + }, + { + "input": "&rightthreetimes", + "description": "Bad named entity: rightthreetimes without a semi-colon", + "output": [ + [ + "Character", + "&rightthreetimes" + ] + ] + }, + { + "input": "⋌", + "description": "Named entity: rightthreetimes; with a semi-colon", + "output": [ + [ + "Character", + "\u22cc" + ] + ] + }, + { + "input": "&ring", + "description": "Bad named entity: ring without a semi-colon", + "output": [ + [ + "Character", + "&ring" + ] + ] + }, + { + "input": "˚", + "description": "Named entity: ring; with a semi-colon", + "output": [ + [ + "Character", + "\u02da" + ] + ] + }, + { + "input": "&risingdotseq", + "description": "Bad named entity: risingdotseq without a semi-colon", + "output": [ + [ + "Character", + "&risingdotseq" + ] + ] + }, + { + "input": "≓", + "description": "Named entity: risingdotseq; with a semi-colon", + "output": [ + [ + "Character", + "\u2253" + ] + ] + }, + { + "input": "&rlarr", + "description": "Bad named entity: rlarr without a semi-colon", + "output": [ + [ + "Character", + "&rlarr" + ] + ] + }, + { + "input": "⇄", + "description": "Named entity: rlarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21c4" + ] + ] + }, + { + "input": "&rlhar", + "description": "Bad named entity: rlhar without a semi-colon", + "output": [ + [ + "Character", + "&rlhar" + ] + ] + }, + { + "input": "⇌", + "description": "Named entity: rlhar; with a semi-colon", + "output": [ + [ + "Character", + "\u21cc" + ] + ] + }, + { + "input": "&rlm", + "description": "Bad named entity: rlm without a semi-colon", + "output": [ + [ + "Character", + "&rlm" + ] + ] + }, + { + "input": "‏", + "description": "Named entity: rlm; with a semi-colon", + "output": [ + [ + "Character", + "\u200f" + ] + ] + }, + { + "input": "&rmoust", + "description": "Bad named entity: rmoust without a semi-colon", + "output": [ + [ + "Character", + "&rmoust" + ] + ] + }, + { + "input": "⎱", + "description": "Named entity: rmoust; with a semi-colon", + "output": [ + [ + "Character", + "\u23b1" + ] + ] + }, + { + "input": "&rmoustache", + "description": "Bad named entity: rmoustache without a semi-colon", + "output": [ + [ + "Character", + "&rmoustache" + ] + ] + }, + { + "input": "⎱", + "description": "Named entity: rmoustache; with a semi-colon", + "output": [ + [ + "Character", + "\u23b1" + ] + ] + }, + { + "input": "&rnmid", + "description": "Bad named entity: rnmid without a semi-colon", + "output": [ + [ + "Character", + "&rnmid" + ] + ] + }, + { + "input": "⫮", + "description": "Named entity: rnmid; with a semi-colon", + "output": [ + [ + "Character", + "\u2aee" + ] + ] + }, + { + "input": "&roang", + "description": "Bad named entity: roang without a semi-colon", + "output": [ + [ + "Character", + "&roang" + ] + ] + }, + { + "input": "⟭", + "description": "Named entity: roang; with a semi-colon", + "output": [ + [ + "Character", + "\u27ed" + ] + ] + }, + { + "input": "&roarr", + "description": "Bad named entity: roarr without a semi-colon", + "output": [ + [ + "Character", + "&roarr" + ] + ] + }, + { + "input": "⇾", + "description": "Named entity: roarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21fe" + ] + ] + }, + { + "input": "&robrk", + "description": "Bad named entity: robrk without a semi-colon", + "output": [ + [ + "Character", + "&robrk" + ] + ] + }, + { + "input": "⟧", + "description": "Named entity: robrk; with a semi-colon", + "output": [ + [ + "Character", + "\u27e7" + ] + ] + }, + { + "input": "&ropar", + "description": "Bad named entity: ropar without a semi-colon", + "output": [ + [ + "Character", + "&ropar" + ] + ] + }, + { + "input": "⦆", + "description": "Named entity: ropar; with a semi-colon", + "output": [ + [ + "Character", + "\u2986" + ] + ] + }, + { + "input": "&ropf", + "description": "Bad named entity: ropf without a semi-colon", + "output": [ + [ + "Character", + "&ropf" + ] + ] + }, + { + "input": "𝕣", + "description": "Named entity: ropf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd63" + ] + ] + }, + { + "input": "&roplus", + "description": "Bad named entity: roplus without a semi-colon", + "output": [ + [ + "Character", + "&roplus" + ] + ] + }, + { + "input": "⨮", + "description": "Named entity: roplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a2e" + ] + ] + }, + { + "input": "&rotimes", + "description": "Bad named entity: rotimes without a semi-colon", + "output": [ + [ + "Character", + "&rotimes" + ] + ] + }, + { + "input": "⨵", + "description": "Named entity: rotimes; with a semi-colon", + "output": [ + [ + "Character", + "\u2a35" + ] + ] + }, + { + "input": "&rpar", + "description": "Bad named entity: rpar without a semi-colon", + "output": [ + [ + "Character", + "&rpar" + ] + ] + }, + { + "input": ")", + "description": "Named entity: rpar; with a semi-colon", + "output": [ + [ + "Character", + ")" + ] + ] + }, + { + "input": "&rpargt", + "description": "Bad named entity: rpargt without a semi-colon", + "output": [ + [ + "Character", + "&rpargt" + ] + ] + }, + { + "input": "⦔", + "description": "Named entity: rpargt; with a semi-colon", + "output": [ + [ + "Character", + "\u2994" + ] + ] + }, + { + "input": "&rppolint", + "description": "Bad named entity: rppolint without a semi-colon", + "output": [ + [ + "Character", + "&rppolint" + ] + ] + }, + { + "input": "⨒", + "description": "Named entity: rppolint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a12" + ] + ] + }, + { + "input": "&rrarr", + "description": "Bad named entity: rrarr without a semi-colon", + "output": [ + [ + "Character", + "&rrarr" + ] + ] + }, + { + "input": "⇉", + "description": "Named entity: rrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21c9" + ] + ] + }, + { + "input": "&rsaquo", + "description": "Bad named entity: rsaquo without a semi-colon", + "output": [ + [ + "Character", + "&rsaquo" + ] + ] + }, + { + "input": "›", + "description": "Named entity: rsaquo; with a semi-colon", + "output": [ + [ + "Character", + "\u203a" + ] + ] + }, + { + "input": "&rscr", + "description": "Bad named entity: rscr without a semi-colon", + "output": [ + [ + "Character", + "&rscr" + ] + ] + }, + { + "input": "𝓇", + "description": "Named entity: rscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc7" + ] + ] + }, + { + "input": "&rsh", + "description": "Bad named entity: rsh without a semi-colon", + "output": [ + [ + "Character", + "&rsh" + ] + ] + }, + { + "input": "↱", + "description": "Named entity: rsh; with a semi-colon", + "output": [ + [ + "Character", + "\u21b1" + ] + ] + }, + { + "input": "&rsqb", + "description": "Bad named entity: rsqb without a semi-colon", + "output": [ + [ + "Character", + "&rsqb" + ] + ] + }, + { + "input": "]", + "description": "Named entity: rsqb; with a semi-colon", + "output": [ + [ + "Character", + "]" + ] + ] + }, + { + "input": "&rsquo", + "description": "Bad named entity: rsquo without a semi-colon", + "output": [ + [ + "Character", + "&rsquo" + ] + ] + }, + { + "input": "’", + "description": "Named entity: rsquo; with a semi-colon", + "output": [ + [ + "Character", + "\u2019" + ] + ] + }, + { + "input": "&rsquor", + "description": "Bad named entity: rsquor without a semi-colon", + "output": [ + [ + "Character", + "&rsquor" + ] + ] + }, + { + "input": "’", + "description": "Named entity: rsquor; with a semi-colon", + "output": [ + [ + "Character", + "\u2019" + ] + ] + }, + { + "input": "&rthree", + "description": "Bad named entity: rthree without a semi-colon", + "output": [ + [ + "Character", + "&rthree" + ] + ] + }, + { + "input": "⋌", + "description": "Named entity: rthree; with a semi-colon", + "output": [ + [ + "Character", + "\u22cc" + ] + ] + }, + { + "input": "&rtimes", + "description": "Bad named entity: rtimes without a semi-colon", + "output": [ + [ + "Character", + "&rtimes" + ] + ] + }, + { + "input": "⋊", + "description": "Named entity: rtimes; with a semi-colon", + "output": [ + [ + "Character", + "\u22ca" + ] + ] + }, + { + "input": "&rtri", + "description": "Bad named entity: rtri without a semi-colon", + "output": [ + [ + "Character", + "&rtri" + ] + ] + }, + { + "input": "▹", + "description": "Named entity: rtri; with a semi-colon", + "output": [ + [ + "Character", + "\u25b9" + ] + ] + }, + { + "input": "&rtrie", + "description": "Bad named entity: rtrie without a semi-colon", + "output": [ + [ + "Character", + "&rtrie" + ] + ] + }, + { + "input": "⊵", + "description": "Named entity: rtrie; with a semi-colon", + "output": [ + [ + "Character", + "\u22b5" + ] + ] + }, + { + "input": "&rtrif", + "description": "Bad named entity: rtrif without a semi-colon", + "output": [ + [ + "Character", + "&rtrif" + ] + ] + }, + { + "input": "▸", + "description": "Named entity: rtrif; with a semi-colon", + "output": [ + [ + "Character", + "\u25b8" + ] + ] + }, + { + "input": "&rtriltri", + "description": "Bad named entity: rtriltri without a semi-colon", + "output": [ + [ + "Character", + "&rtriltri" + ] + ] + }, + { + "input": "⧎", + "description": "Named entity: rtriltri; with a semi-colon", + "output": [ + [ + "Character", + "\u29ce" + ] + ] + }, + { + "input": "&ruluhar", + "description": "Bad named entity: ruluhar without a semi-colon", + "output": [ + [ + "Character", + "&ruluhar" + ] + ] + }, + { + "input": "⥨", + "description": "Named entity: ruluhar; with a semi-colon", + "output": [ + [ + "Character", + "\u2968" + ] + ] + }, + { + "input": "&rx", + "description": "Bad named entity: rx without a semi-colon", + "output": [ + [ + "Character", + "&rx" + ] + ] + }, + { + "input": "℞", + "description": "Named entity: rx; with a semi-colon", + "output": [ + [ + "Character", + "\u211e" + ] + ] + }, + { + "input": "&sacute", + "description": "Bad named entity: sacute without a semi-colon", + "output": [ + [ + "Character", + "&sacute" + ] + ] + }, + { + "input": "ś", + "description": "Named entity: sacute; with a semi-colon", + "output": [ + [ + "Character", + "\u015b" + ] + ] + }, + { + "input": "&sbquo", + "description": "Bad named entity: sbquo without a semi-colon", + "output": [ + [ + "Character", + "&sbquo" + ] + ] + }, + { + "input": "‚", + "description": "Named entity: sbquo; with a semi-colon", + "output": [ + [ + "Character", + "\u201a" + ] + ] + }, + { + "input": "&sc", + "description": "Bad named entity: sc without a semi-colon", + "output": [ + [ + "Character", + "&sc" + ] + ] + }, + { + "input": "≻", + "description": "Named entity: sc; with a semi-colon", + "output": [ + [ + "Character", + "\u227b" + ] + ] + }, + { + "input": "&scE", + "description": "Bad named entity: scE without a semi-colon", + "output": [ + [ + "Character", + "&scE" + ] + ] + }, + { + "input": "⪴", + "description": "Named entity: scE; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab4" + ] + ] + }, + { + "input": "&scap", + "description": "Bad named entity: scap without a semi-colon", + "output": [ + [ + "Character", + "&scap" + ] + ] + }, + { + "input": "⪸", + "description": "Named entity: scap; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab8" + ] + ] + }, + { + "input": "&scaron", + "description": "Bad named entity: scaron without a semi-colon", + "output": [ + [ + "Character", + "&scaron" + ] + ] + }, + { + "input": "š", + "description": "Named entity: scaron; with a semi-colon", + "output": [ + [ + "Character", + "\u0161" + ] + ] + }, + { + "input": "&sccue", + "description": "Bad named entity: sccue without a semi-colon", + "output": [ + [ + "Character", + "&sccue" + ] + ] + }, + { + "input": "≽", + "description": "Named entity: sccue; with a semi-colon", + "output": [ + [ + "Character", + "\u227d" + ] + ] + }, + { + "input": "&sce", + "description": "Bad named entity: sce without a semi-colon", + "output": [ + [ + "Character", + "&sce" + ] + ] + }, + { + "input": "⪰", + "description": "Named entity: sce; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab0" + ] + ] + }, + { + "input": "&scedil", + "description": "Bad named entity: scedil without a semi-colon", + "output": [ + [ + "Character", + "&scedil" + ] + ] + }, + { + "input": "ş", + "description": "Named entity: scedil; with a semi-colon", + "output": [ + [ + "Character", + "\u015f" + ] + ] + }, + { + "input": "&scirc", + "description": "Bad named entity: scirc without a semi-colon", + "output": [ + [ + "Character", + "&scirc" + ] + ] + }, + { + "input": "ŝ", + "description": "Named entity: scirc; with a semi-colon", + "output": [ + [ + "Character", + "\u015d" + ] + ] + }, + { + "input": "&scnE", + "description": "Bad named entity: scnE without a semi-colon", + "output": [ + [ + "Character", + "&scnE" + ] + ] + }, + { + "input": "⪶", + "description": "Named entity: scnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab6" + ] + ] + }, + { + "input": "&scnap", + "description": "Bad named entity: scnap without a semi-colon", + "output": [ + [ + "Character", + "&scnap" + ] + ] + }, + { + "input": "⪺", + "description": "Named entity: scnap; with a semi-colon", + "output": [ + [ + "Character", + "\u2aba" + ] + ] + }, + { + "input": "&scnsim", + "description": "Bad named entity: scnsim without a semi-colon", + "output": [ + [ + "Character", + "&scnsim" + ] + ] + }, + { + "input": "⋩", + "description": "Named entity: scnsim; with a semi-colon", + "output": [ + [ + "Character", + "\u22e9" + ] + ] + }, + { + "input": "&scpolint", + "description": "Bad named entity: scpolint without a semi-colon", + "output": [ + [ + "Character", + "&scpolint" + ] + ] + }, + { + "input": "⨓", + "description": "Named entity: scpolint; with a semi-colon", + "output": [ + [ + "Character", + "\u2a13" + ] + ] + }, + { + "input": "&scsim", + "description": "Bad named entity: scsim without a semi-colon", + "output": [ + [ + "Character", + "&scsim" + ] + ] + }, + { + "input": "≿", + "description": "Named entity: scsim; with a semi-colon", + "output": [ + [ + "Character", + "\u227f" + ] + ] + }, + { + "input": "&scy", + "description": "Bad named entity: scy without a semi-colon", + "output": [ + [ + "Character", + "&scy" + ] + ] + }, + { + "input": "с", + "description": "Named entity: scy; with a semi-colon", + "output": [ + [ + "Character", + "\u0441" + ] + ] + }, + { + "input": "&sdot", + "description": "Bad named entity: sdot without a semi-colon", + "output": [ + [ + "Character", + "&sdot" + ] + ] + }, + { + "input": "⋅", + "description": "Named entity: sdot; with a semi-colon", + "output": [ + [ + "Character", + "\u22c5" + ] + ] + }, + { + "input": "&sdotb", + "description": "Bad named entity: sdotb without a semi-colon", + "output": [ + [ + "Character", + "&sdotb" + ] + ] + }, + { + "input": "⊡", + "description": "Named entity: sdotb; with a semi-colon", + "output": [ + [ + "Character", + "\u22a1" + ] + ] + }, + { + "input": "&sdote", + "description": "Bad named entity: sdote without a semi-colon", + "output": [ + [ + "Character", + "&sdote" + ] + ] + }, + { + "input": "⩦", + "description": "Named entity: sdote; with a semi-colon", + "output": [ + [ + "Character", + "\u2a66" + ] + ] + }, + { + "input": "&seArr", + "description": "Bad named entity: seArr without a semi-colon", + "output": [ + [ + "Character", + "&seArr" + ] + ] + }, + { + "input": "⇘", + "description": "Named entity: seArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d8" + ] + ] + }, + { + "input": "&searhk", + "description": "Bad named entity: searhk without a semi-colon", + "output": [ + [ + "Character", + "&searhk" + ] + ] + }, + { + "input": "⤥", + "description": "Named entity: searhk; with a semi-colon", + "output": [ + [ + "Character", + "\u2925" + ] + ] + }, + { + "input": "&searr", + "description": "Bad named entity: searr without a semi-colon", + "output": [ + [ + "Character", + "&searr" + ] + ] + }, + { + "input": "↘", + "description": "Named entity: searr; with a semi-colon", + "output": [ + [ + "Character", + "\u2198" + ] + ] + }, + { + "input": "&searrow", + "description": "Bad named entity: searrow without a semi-colon", + "output": [ + [ + "Character", + "&searrow" + ] + ] + }, + { + "input": "↘", + "description": "Named entity: searrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2198" + ] + ] + }, + { + "input": "§", + "description": "Named entity: sect without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a7" + ] + ] + }, + { + "input": "§", + "description": "Named entity: sect; with a semi-colon", + "output": [ + [ + "Character", + "\u00a7" + ] + ] + }, + { + "input": "&semi", + "description": "Bad named entity: semi without a semi-colon", + "output": [ + [ + "Character", + "&semi" + ] + ] + }, + { + "input": ";", + "description": "Named entity: semi; with a semi-colon", + "output": [ + [ + "Character", + ";" + ] + ] + }, + { + "input": "&seswar", + "description": "Bad named entity: seswar without a semi-colon", + "output": [ + [ + "Character", + "&seswar" + ] + ] + }, + { + "input": "⤩", + "description": "Named entity: seswar; with a semi-colon", + "output": [ + [ + "Character", + "\u2929" + ] + ] + }, + { + "input": "&setminus", + "description": "Bad named entity: setminus without a semi-colon", + "output": [ + [ + "Character", + "&setminus" + ] + ] + }, + { + "input": "∖", + "description": "Named entity: setminus; with a semi-colon", + "output": [ + [ + "Character", + "\u2216" + ] + ] + }, + { + "input": "&setmn", + "description": "Bad named entity: setmn without a semi-colon", + "output": [ + [ + "Character", + "&setmn" + ] + ] + }, + { + "input": "∖", + "description": "Named entity: setmn; with a semi-colon", + "output": [ + [ + "Character", + "\u2216" + ] + ] + }, + { + "input": "&sext", + "description": "Bad named entity: sext without a semi-colon", + "output": [ + [ + "Character", + "&sext" + ] + ] + }, + { + "input": "✶", + "description": "Named entity: sext; with a semi-colon", + "output": [ + [ + "Character", + "\u2736" + ] + ] + }, + { + "input": "&sfr", + "description": "Bad named entity: sfr without a semi-colon", + "output": [ + [ + "Character", + "&sfr" + ] + ] + }, + { + "input": "𝔰", + "description": "Named entity: sfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd30" + ] + ] + }, + { + "input": "&sfrown", + "description": "Bad named entity: sfrown without a semi-colon", + "output": [ + [ + "Character", + "&sfrown" + ] + ] + }, + { + "input": "⌢", + "description": "Named entity: sfrown; with a semi-colon", + "output": [ + [ + "Character", + "\u2322" + ] + ] + }, + { + "input": "&sharp", + "description": "Bad named entity: sharp without a semi-colon", + "output": [ + [ + "Character", + "&sharp" + ] + ] + }, + { + "input": "♯", + "description": "Named entity: sharp; with a semi-colon", + "output": [ + [ + "Character", + "\u266f" + ] + ] + }, + { + "input": "&shchcy", + "description": "Bad named entity: shchcy without a semi-colon", + "output": [ + [ + "Character", + "&shchcy" + ] + ] + }, + { + "input": "щ", + "description": "Named entity: shchcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0449" + ] + ] + }, + { + "input": "&shcy", + "description": "Bad named entity: shcy without a semi-colon", + "output": [ + [ + "Character", + "&shcy" + ] + ] + }, + { + "input": "ш", + "description": "Named entity: shcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0448" + ] + ] + }, + { + "input": "&shortmid", + "description": "Bad named entity: shortmid without a semi-colon", + "output": [ + [ + "Character", + "&shortmid" + ] + ] + }, + { + "input": "∣", + "description": "Named entity: shortmid; with a semi-colon", + "output": [ + [ + "Character", + "\u2223" + ] + ] + }, + { + "input": "&shortparallel", + "description": "Bad named entity: shortparallel without a semi-colon", + "output": [ + [ + "Character", + "&shortparallel" + ] + ] + }, + { + "input": "∥", + "description": "Named entity: shortparallel; with a semi-colon", + "output": [ + [ + "Character", + "\u2225" + ] + ] + }, + { + "input": "­", + "description": "Named entity: shy without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ad" + ] + ] + }, + { + "input": "­", + "description": "Named entity: shy; with a semi-colon", + "output": [ + [ + "Character", + "\u00ad" + ] + ] + }, + { + "input": "&sigma", + "description": "Bad named entity: sigma without a semi-colon", + "output": [ + [ + "Character", + "&sigma" + ] + ] + }, + { + "input": "σ", + "description": "Named entity: sigma; with a semi-colon", + "output": [ + [ + "Character", + "\u03c3" + ] + ] + }, + { + "input": "&sigmaf", + "description": "Bad named entity: sigmaf without a semi-colon", + "output": [ + [ + "Character", + "&sigmaf" + ] + ] + }, + { + "input": "ς", + "description": "Named entity: sigmaf; with a semi-colon", + "output": [ + [ + "Character", + "\u03c2" + ] + ] + }, + { + "input": "&sigmav", + "description": "Bad named entity: sigmav without a semi-colon", + "output": [ + [ + "Character", + "&sigmav" + ] + ] + }, + { + "input": "ς", + "description": "Named entity: sigmav; with a semi-colon", + "output": [ + [ + "Character", + "\u03c2" + ] + ] + }, + { + "input": "&sim", + "description": "Bad named entity: sim without a semi-colon", + "output": [ + [ + "Character", + "&sim" + ] + ] + }, + { + "input": "∼", + "description": "Named entity: sim; with a semi-colon", + "output": [ + [ + "Character", + "\u223c" + ] + ] + }, + { + "input": "&simdot", + "description": "Bad named entity: simdot without a semi-colon", + "output": [ + [ + "Character", + "&simdot" + ] + ] + }, + { + "input": "⩪", + "description": "Named entity: simdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a6a" + ] + ] + }, + { + "input": "&sime", + "description": "Bad named entity: sime without a semi-colon", + "output": [ + [ + "Character", + "&sime" + ] + ] + }, + { + "input": "≃", + "description": "Named entity: sime; with a semi-colon", + "output": [ + [ + "Character", + "\u2243" + ] + ] + }, + { + "input": "&simeq", + "description": "Bad named entity: simeq without a semi-colon", + "output": [ + [ + "Character", + "&simeq" + ] + ] + }, + { + "input": "≃", + "description": "Named entity: simeq; with a semi-colon", + "output": [ + [ + "Character", + "\u2243" + ] + ] + }, + { + "input": "&simg", + "description": "Bad named entity: simg without a semi-colon", + "output": [ + [ + "Character", + "&simg" + ] + ] + }, + { + "input": "⪞", + "description": "Named entity: simg; with a semi-colon", + "output": [ + [ + "Character", + "\u2a9e" + ] + ] + }, + { + "input": "&simgE", + "description": "Bad named entity: simgE without a semi-colon", + "output": [ + [ + "Character", + "&simgE" + ] + ] + }, + { + "input": "⪠", + "description": "Named entity: simgE; with a semi-colon", + "output": [ + [ + "Character", + "\u2aa0" + ] + ] + }, + { + "input": "&siml", + "description": "Bad named entity: siml without a semi-colon", + "output": [ + [ + "Character", + "&siml" + ] + ] + }, + { + "input": "⪝", + "description": "Named entity: siml; with a semi-colon", + "output": [ + [ + "Character", + "\u2a9d" + ] + ] + }, + { + "input": "&simlE", + "description": "Bad named entity: simlE without a semi-colon", + "output": [ + [ + "Character", + "&simlE" + ] + ] + }, + { + "input": "⪟", + "description": "Named entity: simlE; with a semi-colon", + "output": [ + [ + "Character", + "\u2a9f" + ] + ] + }, + { + "input": "&simne", + "description": "Bad named entity: simne without a semi-colon", + "output": [ + [ + "Character", + "&simne" + ] + ] + }, + { + "input": "≆", + "description": "Named entity: simne; with a semi-colon", + "output": [ + [ + "Character", + "\u2246" + ] + ] + }, + { + "input": "&simplus", + "description": "Bad named entity: simplus without a semi-colon", + "output": [ + [ + "Character", + "&simplus" + ] + ] + }, + { + "input": "⨤", + "description": "Named entity: simplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a24" + ] + ] + }, + { + "input": "&simrarr", + "description": "Bad named entity: simrarr without a semi-colon", + "output": [ + [ + "Character", + "&simrarr" + ] + ] + }, + { + "input": "⥲", + "description": "Named entity: simrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2972" + ] + ] + }, + { + "input": "&slarr", + "description": "Bad named entity: slarr without a semi-colon", + "output": [ + [ + "Character", + "&slarr" + ] + ] + }, + { + "input": "←", + "description": "Named entity: slarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2190" + ] + ] + }, + { + "input": "&smallsetminus", + "description": "Bad named entity: smallsetminus without a semi-colon", + "output": [ + [ + "Character", + "&smallsetminus" + ] + ] + }, + { + "input": "∖", + "description": "Named entity: smallsetminus; with a semi-colon", + "output": [ + [ + "Character", + "\u2216" + ] + ] + }, + { + "input": "&smashp", + "description": "Bad named entity: smashp without a semi-colon", + "output": [ + [ + "Character", + "&smashp" + ] + ] + }, + { + "input": "⨳", + "description": "Named entity: smashp; with a semi-colon", + "output": [ + [ + "Character", + "\u2a33" + ] + ] + }, + { + "input": "&smeparsl", + "description": "Bad named entity: smeparsl without a semi-colon", + "output": [ + [ + "Character", + "&smeparsl" + ] + ] + }, + { + "input": "⧤", + "description": "Named entity: smeparsl; with a semi-colon", + "output": [ + [ + "Character", + "\u29e4" + ] + ] + }, + { + "input": "&smid", + "description": "Bad named entity: smid without a semi-colon", + "output": [ + [ + "Character", + "&smid" + ] + ] + }, + { + "input": "∣", + "description": "Named entity: smid; with a semi-colon", + "output": [ + [ + "Character", + "\u2223" + ] + ] + }, + { + "input": "&smile", + "description": "Bad named entity: smile without a semi-colon", + "output": [ + [ + "Character", + "&smile" + ] + ] + }, + { + "input": "⌣", + "description": "Named entity: smile; with a semi-colon", + "output": [ + [ + "Character", + "\u2323" + ] + ] + }, + { + "input": "&smt", + "description": "Bad named entity: smt without a semi-colon", + "output": [ + [ + "Character", + "&smt" + ] + ] + }, + { + "input": "⪪", + "description": "Named entity: smt; with a semi-colon", + "output": [ + [ + "Character", + "\u2aaa" + ] + ] + }, + { + "input": "&smte", + "description": "Bad named entity: smte without a semi-colon", + "output": [ + [ + "Character", + "&smte" + ] + ] + }, + { + "input": "⪬", + "description": "Named entity: smte; with a semi-colon", + "output": [ + [ + "Character", + "\u2aac" + ] + ] + }, + { + "input": "&smtes", + "description": "Bad named entity: smtes without a semi-colon", + "output": [ + [ + "Character", + "&smtes" + ] + ] + }, + { + "input": "⪬︀", + "description": "Named entity: smtes; with a semi-colon", + "output": [ + [ + "Character", + "\u2aac\ufe00" + ] + ] + }, + { + "input": "&softcy", + "description": "Bad named entity: softcy without a semi-colon", + "output": [ + [ + "Character", + "&softcy" + ] + ] + }, + { + "input": "ь", + "description": "Named entity: softcy; with a semi-colon", + "output": [ + [ + "Character", + "\u044c" + ] + ] + }, + { + "input": "&sol", + "description": "Bad named entity: sol without a semi-colon", + "output": [ + [ + "Character", + "&sol" + ] + ] + }, + { + "input": "/", + "description": "Named entity: sol; with a semi-colon", + "output": [ + [ + "Character", + "/" + ] + ] + }, + { + "input": "&solb", + "description": "Bad named entity: solb without a semi-colon", + "output": [ + [ + "Character", + "&solb" + ] + ] + }, + { + "input": "⧄", + "description": "Named entity: solb; with a semi-colon", + "output": [ + [ + "Character", + "\u29c4" + ] + ] + }, + { + "input": "&solbar", + "description": "Bad named entity: solbar without a semi-colon", + "output": [ + [ + "Character", + "&solbar" + ] + ] + }, + { + "input": "⌿", + "description": "Named entity: solbar; with a semi-colon", + "output": [ + [ + "Character", + "\u233f" + ] + ] + }, + { + "input": "&sopf", + "description": "Bad named entity: sopf without a semi-colon", + "output": [ + [ + "Character", + "&sopf" + ] + ] + }, + { + "input": "𝕤", + "description": "Named entity: sopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd64" + ] + ] + }, + { + "input": "&spades", + "description": "Bad named entity: spades without a semi-colon", + "output": [ + [ + "Character", + "&spades" + ] + ] + }, + { + "input": "♠", + "description": "Named entity: spades; with a semi-colon", + "output": [ + [ + "Character", + "\u2660" + ] + ] + }, + { + "input": "&spadesuit", + "description": "Bad named entity: spadesuit without a semi-colon", + "output": [ + [ + "Character", + "&spadesuit" + ] + ] + }, + { + "input": "♠", + "description": "Named entity: spadesuit; with a semi-colon", + "output": [ + [ + "Character", + "\u2660" + ] + ] + }, + { + "input": "&spar", + "description": "Bad named entity: spar without a semi-colon", + "output": [ + [ + "Character", + "&spar" + ] + ] + }, + { + "input": "∥", + "description": "Named entity: spar; with a semi-colon", + "output": [ + [ + "Character", + "\u2225" + ] + ] + }, + { + "input": "&sqcap", + "description": "Bad named entity: sqcap without a semi-colon", + "output": [ + [ + "Character", + "&sqcap" + ] + ] + }, + { + "input": "⊓", + "description": "Named entity: sqcap; with a semi-colon", + "output": [ + [ + "Character", + "\u2293" + ] + ] + }, + { + "input": "&sqcaps", + "description": "Bad named entity: sqcaps without a semi-colon", + "output": [ + [ + "Character", + "&sqcaps" + ] + ] + }, + { + "input": "⊓︀", + "description": "Named entity: sqcaps; with a semi-colon", + "output": [ + [ + "Character", + "\u2293\ufe00" + ] + ] + }, + { + "input": "&sqcup", + "description": "Bad named entity: sqcup without a semi-colon", + "output": [ + [ + "Character", + "&sqcup" + ] + ] + }, + { + "input": "⊔", + "description": "Named entity: sqcup; with a semi-colon", + "output": [ + [ + "Character", + "\u2294" + ] + ] + }, + { + "input": "&sqcups", + "description": "Bad named entity: sqcups without a semi-colon", + "output": [ + [ + "Character", + "&sqcups" + ] + ] + }, + { + "input": "⊔︀", + "description": "Named entity: sqcups; with a semi-colon", + "output": [ + [ + "Character", + "\u2294\ufe00" + ] + ] + }, + { + "input": "&sqsub", + "description": "Bad named entity: sqsub without a semi-colon", + "output": [ + [ + "Character", + "&sqsub" + ] + ] + }, + { + "input": "⊏", + "description": "Named entity: sqsub; with a semi-colon", + "output": [ + [ + "Character", + "\u228f" + ] + ] + }, + { + "input": "&sqsube", + "description": "Bad named entity: sqsube without a semi-colon", + "output": [ + [ + "Character", + "&sqsube" + ] + ] + }, + { + "input": "⊑", + "description": "Named entity: sqsube; with a semi-colon", + "output": [ + [ + "Character", + "\u2291" + ] + ] + }, + { + "input": "&sqsubset", + "description": "Bad named entity: sqsubset without a semi-colon", + "output": [ + [ + "Character", + "&sqsubset" + ] + ] + }, + { + "input": "⊏", + "description": "Named entity: sqsubset; with a semi-colon", + "output": [ + [ + "Character", + "\u228f" + ] + ] + }, + { + "input": "&sqsubseteq", + "description": "Bad named entity: sqsubseteq without a semi-colon", + "output": [ + [ + "Character", + "&sqsubseteq" + ] + ] + }, + { + "input": "⊑", + "description": "Named entity: sqsubseteq; with a semi-colon", + "output": [ + [ + "Character", + "\u2291" + ] + ] + }, + { + "input": "&sqsup", + "description": "Bad named entity: sqsup without a semi-colon", + "output": [ + [ + "Character", + "&sqsup" + ] + ] + }, + { + "input": "⊐", + "description": "Named entity: sqsup; with a semi-colon", + "output": [ + [ + "Character", + "\u2290" + ] + ] + }, + { + "input": "&sqsupe", + "description": "Bad named entity: sqsupe without a semi-colon", + "output": [ + [ + "Character", + "&sqsupe" + ] + ] + }, + { + "input": "⊒", + "description": "Named entity: sqsupe; with a semi-colon", + "output": [ + [ + "Character", + "\u2292" + ] + ] + }, + { + "input": "&sqsupset", + "description": "Bad named entity: sqsupset without a semi-colon", + "output": [ + [ + "Character", + "&sqsupset" + ] + ] + }, + { + "input": "⊐", + "description": "Named entity: sqsupset; with a semi-colon", + "output": [ + [ + "Character", + "\u2290" + ] + ] + }, + { + "input": "&sqsupseteq", + "description": "Bad named entity: sqsupseteq without a semi-colon", + "output": [ + [ + "Character", + "&sqsupseteq" + ] + ] + }, + { + "input": "⊒", + "description": "Named entity: sqsupseteq; with a semi-colon", + "output": [ + [ + "Character", + "\u2292" + ] + ] + }, + { + "input": "&squ", + "description": "Bad named entity: squ without a semi-colon", + "output": [ + [ + "Character", + "&squ" + ] + ] + }, + { + "input": "□", + "description": "Named entity: squ; with a semi-colon", + "output": [ + [ + "Character", + "\u25a1" + ] + ] + }, + { + "input": "&square", + "description": "Bad named entity: square without a semi-colon", + "output": [ + [ + "Character", + "&square" + ] + ] + }, + { + "input": "□", + "description": "Named entity: square; with a semi-colon", + "output": [ + [ + "Character", + "\u25a1" + ] + ] + }, + { + "input": "&squarf", + "description": "Bad named entity: squarf without a semi-colon", + "output": [ + [ + "Character", + "&squarf" + ] + ] + }, + { + "input": "▪", + "description": "Named entity: squarf; with a semi-colon", + "output": [ + [ + "Character", + "\u25aa" + ] + ] + }, + { + "input": "&squf", + "description": "Bad named entity: squf without a semi-colon", + "output": [ + [ + "Character", + "&squf" + ] + ] + }, + { + "input": "▪", + "description": "Named entity: squf; with a semi-colon", + "output": [ + [ + "Character", + "\u25aa" + ] + ] + }, + { + "input": "&srarr", + "description": "Bad named entity: srarr without a semi-colon", + "output": [ + [ + "Character", + "&srarr" + ] + ] + }, + { + "input": "→", + "description": "Named entity: srarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2192" + ] + ] + }, + { + "input": "&sscr", + "description": "Bad named entity: sscr without a semi-colon", + "output": [ + [ + "Character", + "&sscr" + ] + ] + }, + { + "input": "𝓈", + "description": "Named entity: sscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc8" + ] + ] + }, + { + "input": "&ssetmn", + "description": "Bad named entity: ssetmn without a semi-colon", + "output": [ + [ + "Character", + "&ssetmn" + ] + ] + }, + { + "input": "∖", + "description": "Named entity: ssetmn; with a semi-colon", + "output": [ + [ + "Character", + "\u2216" + ] + ] + }, + { + "input": "&ssmile", + "description": "Bad named entity: ssmile without a semi-colon", + "output": [ + [ + "Character", + "&ssmile" + ] + ] + }, + { + "input": "⌣", + "description": "Named entity: ssmile; with a semi-colon", + "output": [ + [ + "Character", + "\u2323" + ] + ] + }, + { + "input": "&sstarf", + "description": "Bad named entity: sstarf without a semi-colon", + "output": [ + [ + "Character", + "&sstarf" + ] + ] + }, + { + "input": "⋆", + "description": "Named entity: sstarf; with a semi-colon", + "output": [ + [ + "Character", + "\u22c6" + ] + ] + }, + { + "input": "&star", + "description": "Bad named entity: star without a semi-colon", + "output": [ + [ + "Character", + "&star" + ] + ] + }, + { + "input": "☆", + "description": "Named entity: star; with a semi-colon", + "output": [ + [ + "Character", + "\u2606" + ] + ] + }, + { + "input": "&starf", + "description": "Bad named entity: starf without a semi-colon", + "output": [ + [ + "Character", + "&starf" + ] + ] + }, + { + "input": "★", + "description": "Named entity: starf; with a semi-colon", + "output": [ + [ + "Character", + "\u2605" + ] + ] + }, + { + "input": "&straightepsilon", + "description": "Bad named entity: straightepsilon without a semi-colon", + "output": [ + [ + "Character", + "&straightepsilon" + ] + ] + }, + { + "input": "ϵ", + "description": "Named entity: straightepsilon; with a semi-colon", + "output": [ + [ + "Character", + "\u03f5" + ] + ] + }, + { + "input": "&straightphi", + "description": "Bad named entity: straightphi without a semi-colon", + "output": [ + [ + "Character", + "&straightphi" + ] + ] + }, + { + "input": "ϕ", + "description": "Named entity: straightphi; with a semi-colon", + "output": [ + [ + "Character", + "\u03d5" + ] + ] + }, + { + "input": "&strns", + "description": "Bad named entity: strns without a semi-colon", + "output": [ + [ + "Character", + "&strns" + ] + ] + }, + { + "input": "¯", + "description": "Named entity: strns; with a semi-colon", + "output": [ + [ + "Character", + "\u00af" + ] + ] + }, + { + "input": "&sub", + "description": "Bad named entity: sub without a semi-colon", + "output": [ + [ + "Character", + "&sub" + ] + ] + }, + { + "input": "⊂", + "description": "Named entity: sub; with a semi-colon", + "output": [ + [ + "Character", + "\u2282" + ] + ] + }, + { + "input": "&subE", + "description": "Bad named entity: subE without a semi-colon", + "output": [ + [ + "Character", + "&subE" + ] + ] + }, + { + "input": "⫅", + "description": "Named entity: subE; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac5" + ] + ] + }, + { + "input": "&subdot", + "description": "Bad named entity: subdot without a semi-colon", + "output": [ + [ + "Character", + "&subdot" + ] + ] + }, + { + "input": "⪽", + "description": "Named entity: subdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2abd" + ] + ] + }, + { + "input": "&sube", + "description": "Bad named entity: sube without a semi-colon", + "output": [ + [ + "Character", + "&sube" + ] + ] + }, + { + "input": "⊆", + "description": "Named entity: sube; with a semi-colon", + "output": [ + [ + "Character", + "\u2286" + ] + ] + }, + { + "input": "&subedot", + "description": "Bad named entity: subedot without a semi-colon", + "output": [ + [ + "Character", + "&subedot" + ] + ] + }, + { + "input": "⫃", + "description": "Named entity: subedot; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac3" + ] + ] + }, + { + "input": "&submult", + "description": "Bad named entity: submult without a semi-colon", + "output": [ + [ + "Character", + "&submult" + ] + ] + }, + { + "input": "⫁", + "description": "Named entity: submult; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac1" + ] + ] + }, + { + "input": "&subnE", + "description": "Bad named entity: subnE without a semi-colon", + "output": [ + [ + "Character", + "&subnE" + ] + ] + }, + { + "input": "⫋", + "description": "Named entity: subnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2acb" + ] + ] + }, + { + "input": "&subne", + "description": "Bad named entity: subne without a semi-colon", + "output": [ + [ + "Character", + "&subne" + ] + ] + }, + { + "input": "⊊", + "description": "Named entity: subne; with a semi-colon", + "output": [ + [ + "Character", + "\u228a" + ] + ] + }, + { + "input": "&subplus", + "description": "Bad named entity: subplus without a semi-colon", + "output": [ + [ + "Character", + "&subplus" + ] + ] + }, + { + "input": "⪿", + "description": "Named entity: subplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2abf" + ] + ] + }, + { + "input": "&subrarr", + "description": "Bad named entity: subrarr without a semi-colon", + "output": [ + [ + "Character", + "&subrarr" + ] + ] + }, + { + "input": "⥹", + "description": "Named entity: subrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2979" + ] + ] + }, + { + "input": "&subset", + "description": "Bad named entity: subset without a semi-colon", + "output": [ + [ + "Character", + "&subset" + ] + ] + }, + { + "input": "⊂", + "description": "Named entity: subset; with a semi-colon", + "output": [ + [ + "Character", + "\u2282" + ] + ] + }, + { + "input": "&subseteq", + "description": "Bad named entity: subseteq without a semi-colon", + "output": [ + [ + "Character", + "&subseteq" + ] + ] + }, + { + "input": "⊆", + "description": "Named entity: subseteq; with a semi-colon", + "output": [ + [ + "Character", + "\u2286" + ] + ] + }, + { + "input": "&subseteqq", + "description": "Bad named entity: subseteqq without a semi-colon", + "output": [ + [ + "Character", + "&subseteqq" + ] + ] + }, + { + "input": "⫅", + "description": "Named entity: subseteqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac5" + ] + ] + }, + { + "input": "&subsetneq", + "description": "Bad named entity: subsetneq without a semi-colon", + "output": [ + [ + "Character", + "&subsetneq" + ] + ] + }, + { + "input": "⊊", + "description": "Named entity: subsetneq; with a semi-colon", + "output": [ + [ + "Character", + "\u228a" + ] + ] + }, + { + "input": "&subsetneqq", + "description": "Bad named entity: subsetneqq without a semi-colon", + "output": [ + [ + "Character", + "&subsetneqq" + ] + ] + }, + { + "input": "⫋", + "description": "Named entity: subsetneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2acb" + ] + ] + }, + { + "input": "&subsim", + "description": "Bad named entity: subsim without a semi-colon", + "output": [ + [ + "Character", + "&subsim" + ] + ] + }, + { + "input": "⫇", + "description": "Named entity: subsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac7" + ] + ] + }, + { + "input": "&subsub", + "description": "Bad named entity: subsub without a semi-colon", + "output": [ + [ + "Character", + "&subsub" + ] + ] + }, + { + "input": "⫕", + "description": "Named entity: subsub; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad5" + ] + ] + }, + { + "input": "&subsup", + "description": "Bad named entity: subsup without a semi-colon", + "output": [ + [ + "Character", + "&subsup" + ] + ] + }, + { + "input": "⫓", + "description": "Named entity: subsup; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad3" + ] + ] + }, + { + "input": "&succ", + "description": "Bad named entity: succ without a semi-colon", + "output": [ + [ + "Character", + "&succ" + ] + ] + }, + { + "input": "≻", + "description": "Named entity: succ; with a semi-colon", + "output": [ + [ + "Character", + "\u227b" + ] + ] + }, + { + "input": "&succapprox", + "description": "Bad named entity: succapprox without a semi-colon", + "output": [ + [ + "Character", + "&succapprox" + ] + ] + }, + { + "input": "⪸", + "description": "Named entity: succapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab8" + ] + ] + }, + { + "input": "&succcurlyeq", + "description": "Bad named entity: succcurlyeq without a semi-colon", + "output": [ + [ + "Character", + "&succcurlyeq" + ] + ] + }, + { + "input": "≽", + "description": "Named entity: succcurlyeq; with a semi-colon", + "output": [ + [ + "Character", + "\u227d" + ] + ] + }, + { + "input": "&succeq", + "description": "Bad named entity: succeq without a semi-colon", + "output": [ + [ + "Character", + "&succeq" + ] + ] + }, + { + "input": "⪰", + "description": "Named entity: succeq; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab0" + ] + ] + }, + { + "input": "&succnapprox", + "description": "Bad named entity: succnapprox without a semi-colon", + "output": [ + [ + "Character", + "&succnapprox" + ] + ] + }, + { + "input": "⪺", + "description": "Named entity: succnapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2aba" + ] + ] + }, + { + "input": "&succneqq", + "description": "Bad named entity: succneqq without a semi-colon", + "output": [ + [ + "Character", + "&succneqq" + ] + ] + }, + { + "input": "⪶", + "description": "Named entity: succneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2ab6" + ] + ] + }, + { + "input": "&succnsim", + "description": "Bad named entity: succnsim without a semi-colon", + "output": [ + [ + "Character", + "&succnsim" + ] + ] + }, + { + "input": "⋩", + "description": "Named entity: succnsim; with a semi-colon", + "output": [ + [ + "Character", + "\u22e9" + ] + ] + }, + { + "input": "&succsim", + "description": "Bad named entity: succsim without a semi-colon", + "output": [ + [ + "Character", + "&succsim" + ] + ] + }, + { + "input": "≿", + "description": "Named entity: succsim; with a semi-colon", + "output": [ + [ + "Character", + "\u227f" + ] + ] + }, + { + "input": "&sum", + "description": "Bad named entity: sum without a semi-colon", + "output": [ + [ + "Character", + "&sum" + ] + ] + }, + { + "input": "∑", + "description": "Named entity: sum; with a semi-colon", + "output": [ + [ + "Character", + "\u2211" + ] + ] + }, + { + "input": "&sung", + "description": "Bad named entity: sung without a semi-colon", + "output": [ + [ + "Character", + "&sung" + ] + ] + }, + { + "input": "♪", + "description": "Named entity: sung; with a semi-colon", + "output": [ + [ + "Character", + "\u266a" + ] + ] + }, + { + "input": "&sup", + "description": "Bad named entity: sup without a semi-colon", + "output": [ + [ + "Character", + "&sup" + ] + ] + }, + { + "input": "¹", + "description": "Named entity: sup1 without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b9" + ] + ] + }, + { + "input": "¹", + "description": "Named entity: sup1; with a semi-colon", + "output": [ + [ + "Character", + "\u00b9" + ] + ] + }, + { + "input": "²", + "description": "Named entity: sup2 without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b2" + ] + ] + }, + { + "input": "²", + "description": "Named entity: sup2; with a semi-colon", + "output": [ + [ + "Character", + "\u00b2" + ] + ] + }, + { + "input": "³", + "description": "Named entity: sup3 without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00b3" + ] + ] + }, + { + "input": "³", + "description": "Named entity: sup3; with a semi-colon", + "output": [ + [ + "Character", + "\u00b3" + ] + ] + }, + { + "input": "⊃", + "description": "Named entity: sup; with a semi-colon", + "output": [ + [ + "Character", + "\u2283" + ] + ] + }, + { + "input": "&supE", + "description": "Bad named entity: supE without a semi-colon", + "output": [ + [ + "Character", + "&supE" + ] + ] + }, + { + "input": "⫆", + "description": "Named entity: supE; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac6" + ] + ] + }, + { + "input": "&supdot", + "description": "Bad named entity: supdot without a semi-colon", + "output": [ + [ + "Character", + "&supdot" + ] + ] + }, + { + "input": "⪾", + "description": "Named entity: supdot; with a semi-colon", + "output": [ + [ + "Character", + "\u2abe" + ] + ] + }, + { + "input": "&supdsub", + "description": "Bad named entity: supdsub without a semi-colon", + "output": [ + [ + "Character", + "&supdsub" + ] + ] + }, + { + "input": "⫘", + "description": "Named entity: supdsub; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad8" + ] + ] + }, + { + "input": "&supe", + "description": "Bad named entity: supe without a semi-colon", + "output": [ + [ + "Character", + "&supe" + ] + ] + }, + { + "input": "⊇", + "description": "Named entity: supe; with a semi-colon", + "output": [ + [ + "Character", + "\u2287" + ] + ] + }, + { + "input": "&supedot", + "description": "Bad named entity: supedot without a semi-colon", + "output": [ + [ + "Character", + "&supedot" + ] + ] + }, + { + "input": "⫄", + "description": "Named entity: supedot; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac4" + ] + ] + }, + { + "input": "&suphsol", + "description": "Bad named entity: suphsol without a semi-colon", + "output": [ + [ + "Character", + "&suphsol" + ] + ] + }, + { + "input": "⟉", + "description": "Named entity: suphsol; with a semi-colon", + "output": [ + [ + "Character", + "\u27c9" + ] + ] + }, + { + "input": "&suphsub", + "description": "Bad named entity: suphsub without a semi-colon", + "output": [ + [ + "Character", + "&suphsub" + ] + ] + }, + { + "input": "⫗", + "description": "Named entity: suphsub; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad7" + ] + ] + }, + { + "input": "&suplarr", + "description": "Bad named entity: suplarr without a semi-colon", + "output": [ + [ + "Character", + "&suplarr" + ] + ] + }, + { + "input": "⥻", + "description": "Named entity: suplarr; with a semi-colon", + "output": [ + [ + "Character", + "\u297b" + ] + ] + }, + { + "input": "&supmult", + "description": "Bad named entity: supmult without a semi-colon", + "output": [ + [ + "Character", + "&supmult" + ] + ] + }, + { + "input": "⫂", + "description": "Named entity: supmult; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac2" + ] + ] + }, + { + "input": "&supnE", + "description": "Bad named entity: supnE without a semi-colon", + "output": [ + [ + "Character", + "&supnE" + ] + ] + }, + { + "input": "⫌", + "description": "Named entity: supnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2acc" + ] + ] + }, + { + "input": "&supne", + "description": "Bad named entity: supne without a semi-colon", + "output": [ + [ + "Character", + "&supne" + ] + ] + }, + { + "input": "⊋", + "description": "Named entity: supne; with a semi-colon", + "output": [ + [ + "Character", + "\u228b" + ] + ] + }, + { + "input": "&supplus", + "description": "Bad named entity: supplus without a semi-colon", + "output": [ + [ + "Character", + "&supplus" + ] + ] + }, + { + "input": "⫀", + "description": "Named entity: supplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac0" + ] + ] + }, + { + "input": "&supset", + "description": "Bad named entity: supset without a semi-colon", + "output": [ + [ + "Character", + "&supset" + ] + ] + }, + { + "input": "⊃", + "description": "Named entity: supset; with a semi-colon", + "output": [ + [ + "Character", + "\u2283" + ] + ] + }, + { + "input": "&supseteq", + "description": "Bad named entity: supseteq without a semi-colon", + "output": [ + [ + "Character", + "&supseteq" + ] + ] + }, + { + "input": "⊇", + "description": "Named entity: supseteq; with a semi-colon", + "output": [ + [ + "Character", + "\u2287" + ] + ] + }, + { + "input": "&supseteqq", + "description": "Bad named entity: supseteqq without a semi-colon", + "output": [ + [ + "Character", + "&supseteqq" + ] + ] + }, + { + "input": "⫆", + "description": "Named entity: supseteqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac6" + ] + ] + }, + { + "input": "&supsetneq", + "description": "Bad named entity: supsetneq without a semi-colon", + "output": [ + [ + "Character", + "&supsetneq" + ] + ] + }, + { + "input": "⊋", + "description": "Named entity: supsetneq; with a semi-colon", + "output": [ + [ + "Character", + "\u228b" + ] + ] + }, + { + "input": "&supsetneqq", + "description": "Bad named entity: supsetneqq without a semi-colon", + "output": [ + [ + "Character", + "&supsetneqq" + ] + ] + }, + { + "input": "⫌", + "description": "Named entity: supsetneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2acc" + ] + ] + }, + { + "input": "&supsim", + "description": "Bad named entity: supsim without a semi-colon", + "output": [ + [ + "Character", + "&supsim" + ] + ] + }, + { + "input": "⫈", + "description": "Named entity: supsim; with a semi-colon", + "output": [ + [ + "Character", + "\u2ac8" + ] + ] + }, + { + "input": "&supsub", + "description": "Bad named entity: supsub without a semi-colon", + "output": [ + [ + "Character", + "&supsub" + ] + ] + }, + { + "input": "⫔", + "description": "Named entity: supsub; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad4" + ] + ] + }, + { + "input": "&supsup", + "description": "Bad named entity: supsup without a semi-colon", + "output": [ + [ + "Character", + "&supsup" + ] + ] + }, + { + "input": "⫖", + "description": "Named entity: supsup; with a semi-colon", + "output": [ + [ + "Character", + "\u2ad6" + ] + ] + }, + { + "input": "&swArr", + "description": "Bad named entity: swArr without a semi-colon", + "output": [ + [ + "Character", + "&swArr" + ] + ] + }, + { + "input": "⇙", + "description": "Named entity: swArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d9" + ] + ] + }, + { + "input": "&swarhk", + "description": "Bad named entity: swarhk without a semi-colon", + "output": [ + [ + "Character", + "&swarhk" + ] + ] + }, + { + "input": "⤦", + "description": "Named entity: swarhk; with a semi-colon", + "output": [ + [ + "Character", + "\u2926" + ] + ] + }, + { + "input": "&swarr", + "description": "Bad named entity: swarr without a semi-colon", + "output": [ + [ + "Character", + "&swarr" + ] + ] + }, + { + "input": "↙", + "description": "Named entity: swarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2199" + ] + ] + }, + { + "input": "&swarrow", + "description": "Bad named entity: swarrow without a semi-colon", + "output": [ + [ + "Character", + "&swarrow" + ] + ] + }, + { + "input": "↙", + "description": "Named entity: swarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2199" + ] + ] + }, + { + "input": "&swnwar", + "description": "Bad named entity: swnwar without a semi-colon", + "output": [ + [ + "Character", + "&swnwar" + ] + ] + }, + { + "input": "⤪", + "description": "Named entity: swnwar; with a semi-colon", + "output": [ + [ + "Character", + "\u292a" + ] + ] + }, + { + "input": "ß", + "description": "Named entity: szlig without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00df" + ] + ] + }, + { + "input": "ß", + "description": "Named entity: szlig; with a semi-colon", + "output": [ + [ + "Character", + "\u00df" + ] + ] + }, + { + "input": "&target", + "description": "Bad named entity: target without a semi-colon", + "output": [ + [ + "Character", + "&target" + ] + ] + }, + { + "input": "⌖", + "description": "Named entity: target; with a semi-colon", + "output": [ + [ + "Character", + "\u2316" + ] + ] + }, + { + "input": "&tau", + "description": "Bad named entity: tau without a semi-colon", + "output": [ + [ + "Character", + "&tau" + ] + ] + }, + { + "input": "τ", + "description": "Named entity: tau; with a semi-colon", + "output": [ + [ + "Character", + "\u03c4" + ] + ] + }, + { + "input": "&tbrk", + "description": "Bad named entity: tbrk without a semi-colon", + "output": [ + [ + "Character", + "&tbrk" + ] + ] + }, + { + "input": "⎴", + "description": "Named entity: tbrk; with a semi-colon", + "output": [ + [ + "Character", + "\u23b4" + ] + ] + }, + { + "input": "&tcaron", + "description": "Bad named entity: tcaron without a semi-colon", + "output": [ + [ + "Character", + "&tcaron" + ] + ] + }, + { + "input": "ť", + "description": "Named entity: tcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u0165" + ] + ] + }, + { + "input": "&tcedil", + "description": "Bad named entity: tcedil without a semi-colon", + "output": [ + [ + "Character", + "&tcedil" + ] + ] + }, + { + "input": "ţ", + "description": "Named entity: tcedil; with a semi-colon", + "output": [ + [ + "Character", + "\u0163" + ] + ] + }, + { + "input": "&tcy", + "description": "Bad named entity: tcy without a semi-colon", + "output": [ + [ + "Character", + "&tcy" + ] + ] + }, + { + "input": "т", + "description": "Named entity: tcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0442" + ] + ] + }, + { + "input": "&tdot", + "description": "Bad named entity: tdot without a semi-colon", + "output": [ + [ + "Character", + "&tdot" + ] + ] + }, + { + "input": "⃛", + "description": "Named entity: tdot; with a semi-colon", + "output": [ + [ + "Character", + "\u20db" + ] + ] + }, + { + "input": "&telrec", + "description": "Bad named entity: telrec without a semi-colon", + "output": [ + [ + "Character", + "&telrec" + ] + ] + }, + { + "input": "⌕", + "description": "Named entity: telrec; with a semi-colon", + "output": [ + [ + "Character", + "\u2315" + ] + ] + }, + { + "input": "&tfr", + "description": "Bad named entity: tfr without a semi-colon", + "output": [ + [ + "Character", + "&tfr" + ] + ] + }, + { + "input": "𝔱", + "description": "Named entity: tfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd31" + ] + ] + }, + { + "input": "&there4", + "description": "Bad named entity: there4 without a semi-colon", + "output": [ + [ + "Character", + "&there4" + ] + ] + }, + { + "input": "∴", + "description": "Named entity: there4; with a semi-colon", + "output": [ + [ + "Character", + "\u2234" + ] + ] + }, + { + "input": "&therefore", + "description": "Bad named entity: therefore without a semi-colon", + "output": [ + [ + "Character", + "&therefore" + ] + ] + }, + { + "input": "∴", + "description": "Named entity: therefore; with a semi-colon", + "output": [ + [ + "Character", + "\u2234" + ] + ] + }, + { + "input": "&theta", + "description": "Bad named entity: theta without a semi-colon", + "output": [ + [ + "Character", + "&theta" + ] + ] + }, + { + "input": "θ", + "description": "Named entity: theta; with a semi-colon", + "output": [ + [ + "Character", + "\u03b8" + ] + ] + }, + { + "input": "&thetasym", + "description": "Bad named entity: thetasym without a semi-colon", + "output": [ + [ + "Character", + "&thetasym" + ] + ] + }, + { + "input": "ϑ", + "description": "Named entity: thetasym; with a semi-colon", + "output": [ + [ + "Character", + "\u03d1" + ] + ] + }, + { + "input": "&thetav", + "description": "Bad named entity: thetav without a semi-colon", + "output": [ + [ + "Character", + "&thetav" + ] + ] + }, + { + "input": "ϑ", + "description": "Named entity: thetav; with a semi-colon", + "output": [ + [ + "Character", + "\u03d1" + ] + ] + }, + { + "input": "&thickapprox", + "description": "Bad named entity: thickapprox without a semi-colon", + "output": [ + [ + "Character", + "&thickapprox" + ] + ] + }, + { + "input": "≈", + "description": "Named entity: thickapprox; with a semi-colon", + "output": [ + [ + "Character", + "\u2248" + ] + ] + }, + { + "input": "&thicksim", + "description": "Bad named entity: thicksim without a semi-colon", + "output": [ + [ + "Character", + "&thicksim" + ] + ] + }, + { + "input": "∼", + "description": "Named entity: thicksim; with a semi-colon", + "output": [ + [ + "Character", + "\u223c" + ] + ] + }, + { + "input": "&thinsp", + "description": "Bad named entity: thinsp without a semi-colon", + "output": [ + [ + "Character", + "&thinsp" + ] + ] + }, + { + "input": " ", + "description": "Named entity: thinsp; with a semi-colon", + "output": [ + [ + "Character", + "\u2009" + ] + ] + }, + { + "input": "&thkap", + "description": "Bad named entity: thkap without a semi-colon", + "output": [ + [ + "Character", + "&thkap" + ] + ] + }, + { + "input": "≈", + "description": "Named entity: thkap; with a semi-colon", + "output": [ + [ + "Character", + "\u2248" + ] + ] + }, + { + "input": "&thksim", + "description": "Bad named entity: thksim without a semi-colon", + "output": [ + [ + "Character", + "&thksim" + ] + ] + }, + { + "input": "∼", + "description": "Named entity: thksim; with a semi-colon", + "output": [ + [ + "Character", + "\u223c" + ] + ] + }, + { + "input": "þ", + "description": "Named entity: thorn without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00fe" + ] + ] + }, + { + "input": "þ", + "description": "Named entity: thorn; with a semi-colon", + "output": [ + [ + "Character", + "\u00fe" + ] + ] + }, + { + "input": "&tilde", + "description": "Bad named entity: tilde without a semi-colon", + "output": [ + [ + "Character", + "&tilde" + ] + ] + }, + { + "input": "˜", + "description": "Named entity: tilde; with a semi-colon", + "output": [ + [ + "Character", + "\u02dc" + ] + ] + }, + { + "input": "×", + "description": "Named entity: times without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00d7" + ] + ] + }, + { + "input": "×", + "description": "Named entity: times; with a semi-colon", + "output": [ + [ + "Character", + "\u00d7" + ] + ] + }, + { + "input": "⊠", + "description": "Named entity: timesb; with a semi-colon", + "output": [ + [ + "Character", + "\u22a0" + ] + ] + }, + { + "input": "⨱", + "description": "Named entity: timesbar; with a semi-colon", + "output": [ + [ + "Character", + "\u2a31" + ] + ] + }, + { + "input": "⨰", + "description": "Named entity: timesd; with a semi-colon", + "output": [ + [ + "Character", + "\u2a30" + ] + ] + }, + { + "input": "&tint", + "description": "Bad named entity: tint without a semi-colon", + "output": [ + [ + "Character", + "&tint" + ] + ] + }, + { + "input": "∭", + "description": "Named entity: tint; with a semi-colon", + "output": [ + [ + "Character", + "\u222d" + ] + ] + }, + { + "input": "&toea", + "description": "Bad named entity: toea without a semi-colon", + "output": [ + [ + "Character", + "&toea" + ] + ] + }, + { + "input": "⤨", + "description": "Named entity: toea; with a semi-colon", + "output": [ + [ + "Character", + "\u2928" + ] + ] + }, + { + "input": "&top", + "description": "Bad named entity: top without a semi-colon", + "output": [ + [ + "Character", + "&top" + ] + ] + }, + { + "input": "⊤", + "description": "Named entity: top; with a semi-colon", + "output": [ + [ + "Character", + "\u22a4" + ] + ] + }, + { + "input": "&topbot", + "description": "Bad named entity: topbot without a semi-colon", + "output": [ + [ + "Character", + "&topbot" + ] + ] + }, + { + "input": "⌶", + "description": "Named entity: topbot; with a semi-colon", + "output": [ + [ + "Character", + "\u2336" + ] + ] + }, + { + "input": "&topcir", + "description": "Bad named entity: topcir without a semi-colon", + "output": [ + [ + "Character", + "&topcir" + ] + ] + }, + { + "input": "⫱", + "description": "Named entity: topcir; with a semi-colon", + "output": [ + [ + "Character", + "\u2af1" + ] + ] + }, + { + "input": "&topf", + "description": "Bad named entity: topf without a semi-colon", + "output": [ + [ + "Character", + "&topf" + ] + ] + }, + { + "input": "𝕥", + "description": "Named entity: topf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd65" + ] + ] + }, + { + "input": "&topfork", + "description": "Bad named entity: topfork without a semi-colon", + "output": [ + [ + "Character", + "&topfork" + ] + ] + }, + { + "input": "⫚", + "description": "Named entity: topfork; with a semi-colon", + "output": [ + [ + "Character", + "\u2ada" + ] + ] + }, + { + "input": "&tosa", + "description": "Bad named entity: tosa without a semi-colon", + "output": [ + [ + "Character", + "&tosa" + ] + ] + }, + { + "input": "⤩", + "description": "Named entity: tosa; with a semi-colon", + "output": [ + [ + "Character", + "\u2929" + ] + ] + }, + { + "input": "&tprime", + "description": "Bad named entity: tprime without a semi-colon", + "output": [ + [ + "Character", + "&tprime" + ] + ] + }, + { + "input": "‴", + "description": "Named entity: tprime; with a semi-colon", + "output": [ + [ + "Character", + "\u2034" + ] + ] + }, + { + "input": "&trade", + "description": "Bad named entity: trade without a semi-colon", + "output": [ + [ + "Character", + "&trade" + ] + ] + }, + { + "input": "™", + "description": "Named entity: trade; with a semi-colon", + "output": [ + [ + "Character", + "\u2122" + ] + ] + }, + { + "input": "&triangle", + "description": "Bad named entity: triangle without a semi-colon", + "output": [ + [ + "Character", + "&triangle" + ] + ] + }, + { + "input": "▵", + "description": "Named entity: triangle; with a semi-colon", + "output": [ + [ + "Character", + "\u25b5" + ] + ] + }, + { + "input": "&triangledown", + "description": "Bad named entity: triangledown without a semi-colon", + "output": [ + [ + "Character", + "&triangledown" + ] + ] + }, + { + "input": "▿", + "description": "Named entity: triangledown; with a semi-colon", + "output": [ + [ + "Character", + "\u25bf" + ] + ] + }, + { + "input": "&triangleleft", + "description": "Bad named entity: triangleleft without a semi-colon", + "output": [ + [ + "Character", + "&triangleleft" + ] + ] + }, + { + "input": "◃", + "description": "Named entity: triangleleft; with a semi-colon", + "output": [ + [ + "Character", + "\u25c3" + ] + ] + }, + { + "input": "&trianglelefteq", + "description": "Bad named entity: trianglelefteq without a semi-colon", + "output": [ + [ + "Character", + "&trianglelefteq" + ] + ] + }, + { + "input": "⊴", + "description": "Named entity: trianglelefteq; with a semi-colon", + "output": [ + [ + "Character", + "\u22b4" + ] + ] + }, + { + "input": "&triangleq", + "description": "Bad named entity: triangleq without a semi-colon", + "output": [ + [ + "Character", + "&triangleq" + ] + ] + }, + { + "input": "≜", + "description": "Named entity: triangleq; with a semi-colon", + "output": [ + [ + "Character", + "\u225c" + ] + ] + }, + { + "input": "&triangleright", + "description": "Bad named entity: triangleright without a semi-colon", + "output": [ + [ + "Character", + "&triangleright" + ] + ] + }, + { + "input": "▹", + "description": "Named entity: triangleright; with a semi-colon", + "output": [ + [ + "Character", + "\u25b9" + ] + ] + }, + { + "input": "&trianglerighteq", + "description": "Bad named entity: trianglerighteq without a semi-colon", + "output": [ + [ + "Character", + "&trianglerighteq" + ] + ] + }, + { + "input": "⊵", + "description": "Named entity: trianglerighteq; with a semi-colon", + "output": [ + [ + "Character", + "\u22b5" + ] + ] + }, + { + "input": "&tridot", + "description": "Bad named entity: tridot without a semi-colon", + "output": [ + [ + "Character", + "&tridot" + ] + ] + }, + { + "input": "◬", + "description": "Named entity: tridot; with a semi-colon", + "output": [ + [ + "Character", + "\u25ec" + ] + ] + }, + { + "input": "&trie", + "description": "Bad named entity: trie without a semi-colon", + "output": [ + [ + "Character", + "&trie" + ] + ] + }, + { + "input": "≜", + "description": "Named entity: trie; with a semi-colon", + "output": [ + [ + "Character", + "\u225c" + ] + ] + }, + { + "input": "&triminus", + "description": "Bad named entity: triminus without a semi-colon", + "output": [ + [ + "Character", + "&triminus" + ] + ] + }, + { + "input": "⨺", + "description": "Named entity: triminus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a3a" + ] + ] + }, + { + "input": "&triplus", + "description": "Bad named entity: triplus without a semi-colon", + "output": [ + [ + "Character", + "&triplus" + ] + ] + }, + { + "input": "⨹", + "description": "Named entity: triplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a39" + ] + ] + }, + { + "input": "&trisb", + "description": "Bad named entity: trisb without a semi-colon", + "output": [ + [ + "Character", + "&trisb" + ] + ] + }, + { + "input": "⧍", + "description": "Named entity: trisb; with a semi-colon", + "output": [ + [ + "Character", + "\u29cd" + ] + ] + }, + { + "input": "&tritime", + "description": "Bad named entity: tritime without a semi-colon", + "output": [ + [ + "Character", + "&tritime" + ] + ] + }, + { + "input": "⨻", + "description": "Named entity: tritime; with a semi-colon", + "output": [ + [ + "Character", + "\u2a3b" + ] + ] + }, + { + "input": "&trpezium", + "description": "Bad named entity: trpezium without a semi-colon", + "output": [ + [ + "Character", + "&trpezium" + ] + ] + }, + { + "input": "⏢", + "description": "Named entity: trpezium; with a semi-colon", + "output": [ + [ + "Character", + "\u23e2" + ] + ] + }, + { + "input": "&tscr", + "description": "Bad named entity: tscr without a semi-colon", + "output": [ + [ + "Character", + "&tscr" + ] + ] + }, + { + "input": "𝓉", + "description": "Named entity: tscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcc9" + ] + ] + }, + { + "input": "&tscy", + "description": "Bad named entity: tscy without a semi-colon", + "output": [ + [ + "Character", + "&tscy" + ] + ] + }, + { + "input": "ц", + "description": "Named entity: tscy; with a semi-colon", + "output": [ + [ + "Character", + "\u0446" + ] + ] + }, + { + "input": "&tshcy", + "description": "Bad named entity: tshcy without a semi-colon", + "output": [ + [ + "Character", + "&tshcy" + ] + ] + }, + { + "input": "ћ", + "description": "Named entity: tshcy; with a semi-colon", + "output": [ + [ + "Character", + "\u045b" + ] + ] + }, + { + "input": "&tstrok", + "description": "Bad named entity: tstrok without a semi-colon", + "output": [ + [ + "Character", + "&tstrok" + ] + ] + }, + { + "input": "ŧ", + "description": "Named entity: tstrok; with a semi-colon", + "output": [ + [ + "Character", + "\u0167" + ] + ] + }, + { + "input": "&twixt", + "description": "Bad named entity: twixt without a semi-colon", + "output": [ + [ + "Character", + "&twixt" + ] + ] + }, + { + "input": "≬", + "description": "Named entity: twixt; with a semi-colon", + "output": [ + [ + "Character", + "\u226c" + ] + ] + }, + { + "input": "&twoheadleftarrow", + "description": "Bad named entity: twoheadleftarrow without a semi-colon", + "output": [ + [ + "Character", + "&twoheadleftarrow" + ] + ] + }, + { + "input": "↞", + "description": "Named entity: twoheadleftarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u219e" + ] + ] + }, + { + "input": "&twoheadrightarrow", + "description": "Bad named entity: twoheadrightarrow without a semi-colon", + "output": [ + [ + "Character", + "&twoheadrightarrow" + ] + ] + }, + { + "input": "↠", + "description": "Named entity: twoheadrightarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u21a0" + ] + ] + }, + { + "input": "&uArr", + "description": "Bad named entity: uArr without a semi-colon", + "output": [ + [ + "Character", + "&uArr" + ] + ] + }, + { + "input": "⇑", + "description": "Named entity: uArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d1" + ] + ] + }, + { + "input": "&uHar", + "description": "Bad named entity: uHar without a semi-colon", + "output": [ + [ + "Character", + "&uHar" + ] + ] + }, + { + "input": "⥣", + "description": "Named entity: uHar; with a semi-colon", + "output": [ + [ + "Character", + "\u2963" + ] + ] + }, + { + "input": "ú", + "description": "Named entity: uacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00fa" + ] + ] + }, + { + "input": "ú", + "description": "Named entity: uacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00fa" + ] + ] + }, + { + "input": "&uarr", + "description": "Bad named entity: uarr without a semi-colon", + "output": [ + [ + "Character", + "&uarr" + ] + ] + }, + { + "input": "↑", + "description": "Named entity: uarr; with a semi-colon", + "output": [ + [ + "Character", + "\u2191" + ] + ] + }, + { + "input": "&ubrcy", + "description": "Bad named entity: ubrcy without a semi-colon", + "output": [ + [ + "Character", + "&ubrcy" + ] + ] + }, + { + "input": "ў", + "description": "Named entity: ubrcy; with a semi-colon", + "output": [ + [ + "Character", + "\u045e" + ] + ] + }, + { + "input": "&ubreve", + "description": "Bad named entity: ubreve without a semi-colon", + "output": [ + [ + "Character", + "&ubreve" + ] + ] + }, + { + "input": "ŭ", + "description": "Named entity: ubreve; with a semi-colon", + "output": [ + [ + "Character", + "\u016d" + ] + ] + }, + { + "input": "û", + "description": "Named entity: ucirc without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00fb" + ] + ] + }, + { + "input": "û", + "description": "Named entity: ucirc; with a semi-colon", + "output": [ + [ + "Character", + "\u00fb" + ] + ] + }, + { + "input": "&ucy", + "description": "Bad named entity: ucy without a semi-colon", + "output": [ + [ + "Character", + "&ucy" + ] + ] + }, + { + "input": "у", + "description": "Named entity: ucy; with a semi-colon", + "output": [ + [ + "Character", + "\u0443" + ] + ] + }, + { + "input": "&udarr", + "description": "Bad named entity: udarr without a semi-colon", + "output": [ + [ + "Character", + "&udarr" + ] + ] + }, + { + "input": "⇅", + "description": "Named entity: udarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21c5" + ] + ] + }, + { + "input": "&udblac", + "description": "Bad named entity: udblac without a semi-colon", + "output": [ + [ + "Character", + "&udblac" + ] + ] + }, + { + "input": "ű", + "description": "Named entity: udblac; with a semi-colon", + "output": [ + [ + "Character", + "\u0171" + ] + ] + }, + { + "input": "&udhar", + "description": "Bad named entity: udhar without a semi-colon", + "output": [ + [ + "Character", + "&udhar" + ] + ] + }, + { + "input": "⥮", + "description": "Named entity: udhar; with a semi-colon", + "output": [ + [ + "Character", + "\u296e" + ] + ] + }, + { + "input": "&ufisht", + "description": "Bad named entity: ufisht without a semi-colon", + "output": [ + [ + "Character", + "&ufisht" + ] + ] + }, + { + "input": "⥾", + "description": "Named entity: ufisht; with a semi-colon", + "output": [ + [ + "Character", + "\u297e" + ] + ] + }, + { + "input": "&ufr", + "description": "Bad named entity: ufr without a semi-colon", + "output": [ + [ + "Character", + "&ufr" + ] + ] + }, + { + "input": "𝔲", + "description": "Named entity: ufr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd32" + ] + ] + }, + { + "input": "ù", + "description": "Named entity: ugrave without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00f9" + ] + ] + }, + { + "input": "ù", + "description": "Named entity: ugrave; with a semi-colon", + "output": [ + [ + "Character", + "\u00f9" + ] + ] + }, + { + "input": "&uharl", + "description": "Bad named entity: uharl without a semi-colon", + "output": [ + [ + "Character", + "&uharl" + ] + ] + }, + { + "input": "↿", + "description": "Named entity: uharl; with a semi-colon", + "output": [ + [ + "Character", + "\u21bf" + ] + ] + }, + { + "input": "&uharr", + "description": "Bad named entity: uharr without a semi-colon", + "output": [ + [ + "Character", + "&uharr" + ] + ] + }, + { + "input": "↾", + "description": "Named entity: uharr; with a semi-colon", + "output": [ + [ + "Character", + "\u21be" + ] + ] + }, + { + "input": "&uhblk", + "description": "Bad named entity: uhblk without a semi-colon", + "output": [ + [ + "Character", + "&uhblk" + ] + ] + }, + { + "input": "▀", + "description": "Named entity: uhblk; with a semi-colon", + "output": [ + [ + "Character", + "\u2580" + ] + ] + }, + { + "input": "&ulcorn", + "description": "Bad named entity: ulcorn without a semi-colon", + "output": [ + [ + "Character", + "&ulcorn" + ] + ] + }, + { + "input": "⌜", + "description": "Named entity: ulcorn; with a semi-colon", + "output": [ + [ + "Character", + "\u231c" + ] + ] + }, + { + "input": "&ulcorner", + "description": "Bad named entity: ulcorner without a semi-colon", + "output": [ + [ + "Character", + "&ulcorner" + ] + ] + }, + { + "input": "⌜", + "description": "Named entity: ulcorner; with a semi-colon", + "output": [ + [ + "Character", + "\u231c" + ] + ] + }, + { + "input": "&ulcrop", + "description": "Bad named entity: ulcrop without a semi-colon", + "output": [ + [ + "Character", + "&ulcrop" + ] + ] + }, + { + "input": "⌏", + "description": "Named entity: ulcrop; with a semi-colon", + "output": [ + [ + "Character", + "\u230f" + ] + ] + }, + { + "input": "&ultri", + "description": "Bad named entity: ultri without a semi-colon", + "output": [ + [ + "Character", + "&ultri" + ] + ] + }, + { + "input": "◸", + "description": "Named entity: ultri; with a semi-colon", + "output": [ + [ + "Character", + "\u25f8" + ] + ] + }, + { + "input": "&umacr", + "description": "Bad named entity: umacr without a semi-colon", + "output": [ + [ + "Character", + "&umacr" + ] + ] + }, + { + "input": "ū", + "description": "Named entity: umacr; with a semi-colon", + "output": [ + [ + "Character", + "\u016b" + ] + ] + }, + { + "input": "¨", + "description": "Named entity: uml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a8" + ] + ] + }, + { + "input": "¨", + "description": "Named entity: uml; with a semi-colon", + "output": [ + [ + "Character", + "\u00a8" + ] + ] + }, + { + "input": "&uogon", + "description": "Bad named entity: uogon without a semi-colon", + "output": [ + [ + "Character", + "&uogon" + ] + ] + }, + { + "input": "ų", + "description": "Named entity: uogon; with a semi-colon", + "output": [ + [ + "Character", + "\u0173" + ] + ] + }, + { + "input": "&uopf", + "description": "Bad named entity: uopf without a semi-colon", + "output": [ + [ + "Character", + "&uopf" + ] + ] + }, + { + "input": "𝕦", + "description": "Named entity: uopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd66" + ] + ] + }, + { + "input": "&uparrow", + "description": "Bad named entity: uparrow without a semi-colon", + "output": [ + [ + "Character", + "&uparrow" + ] + ] + }, + { + "input": "↑", + "description": "Named entity: uparrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2191" + ] + ] + }, + { + "input": "&updownarrow", + "description": "Bad named entity: updownarrow without a semi-colon", + "output": [ + [ + "Character", + "&updownarrow" + ] + ] + }, + { + "input": "↕", + "description": "Named entity: updownarrow; with a semi-colon", + "output": [ + [ + "Character", + "\u2195" + ] + ] + }, + { + "input": "&upharpoonleft", + "description": "Bad named entity: upharpoonleft without a semi-colon", + "output": [ + [ + "Character", + "&upharpoonleft" + ] + ] + }, + { + "input": "↿", + "description": "Named entity: upharpoonleft; with a semi-colon", + "output": [ + [ + "Character", + "\u21bf" + ] + ] + }, + { + "input": "&upharpoonright", + "description": "Bad named entity: upharpoonright without a semi-colon", + "output": [ + [ + "Character", + "&upharpoonright" + ] + ] + }, + { + "input": "↾", + "description": "Named entity: upharpoonright; with a semi-colon", + "output": [ + [ + "Character", + "\u21be" + ] + ] + }, + { + "input": "&uplus", + "description": "Bad named entity: uplus without a semi-colon", + "output": [ + [ + "Character", + "&uplus" + ] + ] + }, + { + "input": "⊎", + "description": "Named entity: uplus; with a semi-colon", + "output": [ + [ + "Character", + "\u228e" + ] + ] + }, + { + "input": "&upsi", + "description": "Bad named entity: upsi without a semi-colon", + "output": [ + [ + "Character", + "&upsi" + ] + ] + }, + { + "input": "υ", + "description": "Named entity: upsi; with a semi-colon", + "output": [ + [ + "Character", + "\u03c5" + ] + ] + }, + { + "input": "&upsih", + "description": "Bad named entity: upsih without a semi-colon", + "output": [ + [ + "Character", + "&upsih" + ] + ] + }, + { + "input": "ϒ", + "description": "Named entity: upsih; with a semi-colon", + "output": [ + [ + "Character", + "\u03d2" + ] + ] + }, + { + "input": "&upsilon", + "description": "Bad named entity: upsilon without a semi-colon", + "output": [ + [ + "Character", + "&upsilon" + ] + ] + }, + { + "input": "υ", + "description": "Named entity: upsilon; with a semi-colon", + "output": [ + [ + "Character", + "\u03c5" + ] + ] + }, + { + "input": "&upuparrows", + "description": "Bad named entity: upuparrows without a semi-colon", + "output": [ + [ + "Character", + "&upuparrows" + ] + ] + }, + { + "input": "⇈", + "description": "Named entity: upuparrows; with a semi-colon", + "output": [ + [ + "Character", + "\u21c8" + ] + ] + }, + { + "input": "&urcorn", + "description": "Bad named entity: urcorn without a semi-colon", + "output": [ + [ + "Character", + "&urcorn" + ] + ] + }, + { + "input": "⌝", + "description": "Named entity: urcorn; with a semi-colon", + "output": [ + [ + "Character", + "\u231d" + ] + ] + }, + { + "input": "&urcorner", + "description": "Bad named entity: urcorner without a semi-colon", + "output": [ + [ + "Character", + "&urcorner" + ] + ] + }, + { + "input": "⌝", + "description": "Named entity: urcorner; with a semi-colon", + "output": [ + [ + "Character", + "\u231d" + ] + ] + }, + { + "input": "&urcrop", + "description": "Bad named entity: urcrop without a semi-colon", + "output": [ + [ + "Character", + "&urcrop" + ] + ] + }, + { + "input": "⌎", + "description": "Named entity: urcrop; with a semi-colon", + "output": [ + [ + "Character", + "\u230e" + ] + ] + }, + { + "input": "&uring", + "description": "Bad named entity: uring without a semi-colon", + "output": [ + [ + "Character", + "&uring" + ] + ] + }, + { + "input": "ů", + "description": "Named entity: uring; with a semi-colon", + "output": [ + [ + "Character", + "\u016f" + ] + ] + }, + { + "input": "&urtri", + "description": "Bad named entity: urtri without a semi-colon", + "output": [ + [ + "Character", + "&urtri" + ] + ] + }, + { + "input": "◹", + "description": "Named entity: urtri; with a semi-colon", + "output": [ + [ + "Character", + "\u25f9" + ] + ] + }, + { + "input": "&uscr", + "description": "Bad named entity: uscr without a semi-colon", + "output": [ + [ + "Character", + "&uscr" + ] + ] + }, + { + "input": "𝓊", + "description": "Named entity: uscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcca" + ] + ] + }, + { + "input": "&utdot", + "description": "Bad named entity: utdot without a semi-colon", + "output": [ + [ + "Character", + "&utdot" + ] + ] + }, + { + "input": "⋰", + "description": "Named entity: utdot; with a semi-colon", + "output": [ + [ + "Character", + "\u22f0" + ] + ] + }, + { + "input": "&utilde", + "description": "Bad named entity: utilde without a semi-colon", + "output": [ + [ + "Character", + "&utilde" + ] + ] + }, + { + "input": "ũ", + "description": "Named entity: utilde; with a semi-colon", + "output": [ + [ + "Character", + "\u0169" + ] + ] + }, + { + "input": "&utri", + "description": "Bad named entity: utri without a semi-colon", + "output": [ + [ + "Character", + "&utri" + ] + ] + }, + { + "input": "▵", + "description": "Named entity: utri; with a semi-colon", + "output": [ + [ + "Character", + "\u25b5" + ] + ] + }, + { + "input": "&utrif", + "description": "Bad named entity: utrif without a semi-colon", + "output": [ + [ + "Character", + "&utrif" + ] + ] + }, + { + "input": "▴", + "description": "Named entity: utrif; with a semi-colon", + "output": [ + [ + "Character", + "\u25b4" + ] + ] + }, + { + "input": "&uuarr", + "description": "Bad named entity: uuarr without a semi-colon", + "output": [ + [ + "Character", + "&uuarr" + ] + ] + }, + { + "input": "⇈", + "description": "Named entity: uuarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21c8" + ] + ] + }, + { + "input": "ü", + "description": "Named entity: uuml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00fc" + ] + ] + }, + { + "input": "ü", + "description": "Named entity: uuml; with a semi-colon", + "output": [ + [ + "Character", + "\u00fc" + ] + ] + }, + { + "input": "&uwangle", + "description": "Bad named entity: uwangle without a semi-colon", + "output": [ + [ + "Character", + "&uwangle" + ] + ] + }, + { + "input": "⦧", + "description": "Named entity: uwangle; with a semi-colon", + "output": [ + [ + "Character", + "\u29a7" + ] + ] + }, + { + "input": "&vArr", + "description": "Bad named entity: vArr without a semi-colon", + "output": [ + [ + "Character", + "&vArr" + ] + ] + }, + { + "input": "⇕", + "description": "Named entity: vArr; with a semi-colon", + "output": [ + [ + "Character", + "\u21d5" + ] + ] + }, + { + "input": "&vBar", + "description": "Bad named entity: vBar without a semi-colon", + "output": [ + [ + "Character", + "&vBar" + ] + ] + }, + { + "input": "⫨", + "description": "Named entity: vBar; with a semi-colon", + "output": [ + [ + "Character", + "\u2ae8" + ] + ] + }, + { + "input": "&vBarv", + "description": "Bad named entity: vBarv without a semi-colon", + "output": [ + [ + "Character", + "&vBarv" + ] + ] + }, + { + "input": "⫩", + "description": "Named entity: vBarv; with a semi-colon", + "output": [ + [ + "Character", + "\u2ae9" + ] + ] + }, + { + "input": "&vDash", + "description": "Bad named entity: vDash without a semi-colon", + "output": [ + [ + "Character", + "&vDash" + ] + ] + }, + { + "input": "⊨", + "description": "Named entity: vDash; with a semi-colon", + "output": [ + [ + "Character", + "\u22a8" + ] + ] + }, + { + "input": "&vangrt", + "description": "Bad named entity: vangrt without a semi-colon", + "output": [ + [ + "Character", + "&vangrt" + ] + ] + }, + { + "input": "⦜", + "description": "Named entity: vangrt; with a semi-colon", + "output": [ + [ + "Character", + "\u299c" + ] + ] + }, + { + "input": "&varepsilon", + "description": "Bad named entity: varepsilon without a semi-colon", + "output": [ + [ + "Character", + "&varepsilon" + ] + ] + }, + { + "input": "ϵ", + "description": "Named entity: varepsilon; with a semi-colon", + "output": [ + [ + "Character", + "\u03f5" + ] + ] + }, + { + "input": "&varkappa", + "description": "Bad named entity: varkappa without a semi-colon", + "output": [ + [ + "Character", + "&varkappa" + ] + ] + }, + { + "input": "ϰ", + "description": "Named entity: varkappa; with a semi-colon", + "output": [ + [ + "Character", + "\u03f0" + ] + ] + }, + { + "input": "&varnothing", + "description": "Bad named entity: varnothing without a semi-colon", + "output": [ + [ + "Character", + "&varnothing" + ] + ] + }, + { + "input": "∅", + "description": "Named entity: varnothing; with a semi-colon", + "output": [ + [ + "Character", + "\u2205" + ] + ] + }, + { + "input": "&varphi", + "description": "Bad named entity: varphi without a semi-colon", + "output": [ + [ + "Character", + "&varphi" + ] + ] + }, + { + "input": "ϕ", + "description": "Named entity: varphi; with a semi-colon", + "output": [ + [ + "Character", + "\u03d5" + ] + ] + }, + { + "input": "&varpi", + "description": "Bad named entity: varpi without a semi-colon", + "output": [ + [ + "Character", + "&varpi" + ] + ] + }, + { + "input": "ϖ", + "description": "Named entity: varpi; with a semi-colon", + "output": [ + [ + "Character", + "\u03d6" + ] + ] + }, + { + "input": "&varpropto", + "description": "Bad named entity: varpropto without a semi-colon", + "output": [ + [ + "Character", + "&varpropto" + ] + ] + }, + { + "input": "∝", + "description": "Named entity: varpropto; with a semi-colon", + "output": [ + [ + "Character", + "\u221d" + ] + ] + }, + { + "input": "&varr", + "description": "Bad named entity: varr without a semi-colon", + "output": [ + [ + "Character", + "&varr" + ] + ] + }, + { + "input": "↕", + "description": "Named entity: varr; with a semi-colon", + "output": [ + [ + "Character", + "\u2195" + ] + ] + }, + { + "input": "&varrho", + "description": "Bad named entity: varrho without a semi-colon", + "output": [ + [ + "Character", + "&varrho" + ] + ] + }, + { + "input": "ϱ", + "description": "Named entity: varrho; with a semi-colon", + "output": [ + [ + "Character", + "\u03f1" + ] + ] + }, + { + "input": "&varsigma", + "description": "Bad named entity: varsigma without a semi-colon", + "output": [ + [ + "Character", + "&varsigma" + ] + ] + }, + { + "input": "ς", + "description": "Named entity: varsigma; with a semi-colon", + "output": [ + [ + "Character", + "\u03c2" + ] + ] + }, + { + "input": "&varsubsetneq", + "description": "Bad named entity: varsubsetneq without a semi-colon", + "output": [ + [ + "Character", + "&varsubsetneq" + ] + ] + }, + { + "input": "⊊︀", + "description": "Named entity: varsubsetneq; with a semi-colon", + "output": [ + [ + "Character", + "\u228a\ufe00" + ] + ] + }, + { + "input": "&varsubsetneqq", + "description": "Bad named entity: varsubsetneqq without a semi-colon", + "output": [ + [ + "Character", + "&varsubsetneqq" + ] + ] + }, + { + "input": "⫋︀", + "description": "Named entity: varsubsetneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2acb\ufe00" + ] + ] + }, + { + "input": "&varsupsetneq", + "description": "Bad named entity: varsupsetneq without a semi-colon", + "output": [ + [ + "Character", + "&varsupsetneq" + ] + ] + }, + { + "input": "⊋︀", + "description": "Named entity: varsupsetneq; with a semi-colon", + "output": [ + [ + "Character", + "\u228b\ufe00" + ] + ] + }, + { + "input": "&varsupsetneqq", + "description": "Bad named entity: varsupsetneqq without a semi-colon", + "output": [ + [ + "Character", + "&varsupsetneqq" + ] + ] + }, + { + "input": "⫌︀", + "description": "Named entity: varsupsetneqq; with a semi-colon", + "output": [ + [ + "Character", + "\u2acc\ufe00" + ] + ] + }, + { + "input": "&vartheta", + "description": "Bad named entity: vartheta without a semi-colon", + "output": [ + [ + "Character", + "&vartheta" + ] + ] + }, + { + "input": "ϑ", + "description": "Named entity: vartheta; with a semi-colon", + "output": [ + [ + "Character", + "\u03d1" + ] + ] + }, + { + "input": "&vartriangleleft", + "description": "Bad named entity: vartriangleleft without a semi-colon", + "output": [ + [ + "Character", + "&vartriangleleft" + ] + ] + }, + { + "input": "⊲", + "description": "Named entity: vartriangleleft; with a semi-colon", + "output": [ + [ + "Character", + "\u22b2" + ] + ] + }, + { + "input": "&vartriangleright", + "description": "Bad named entity: vartriangleright without a semi-colon", + "output": [ + [ + "Character", + "&vartriangleright" + ] + ] + }, + { + "input": "⊳", + "description": "Named entity: vartriangleright; with a semi-colon", + "output": [ + [ + "Character", + "\u22b3" + ] + ] + }, + { + "input": "&vcy", + "description": "Bad named entity: vcy without a semi-colon", + "output": [ + [ + "Character", + "&vcy" + ] + ] + }, + { + "input": "в", + "description": "Named entity: vcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0432" + ] + ] + }, + { + "input": "&vdash", + "description": "Bad named entity: vdash without a semi-colon", + "output": [ + [ + "Character", + "&vdash" + ] + ] + }, + { + "input": "⊢", + "description": "Named entity: vdash; with a semi-colon", + "output": [ + [ + "Character", + "\u22a2" + ] + ] + }, + { + "input": "&vee", + "description": "Bad named entity: vee without a semi-colon", + "output": [ + [ + "Character", + "&vee" + ] + ] + }, + { + "input": "∨", + "description": "Named entity: vee; with a semi-colon", + "output": [ + [ + "Character", + "\u2228" + ] + ] + }, + { + "input": "&veebar", + "description": "Bad named entity: veebar without a semi-colon", + "output": [ + [ + "Character", + "&veebar" + ] + ] + }, + { + "input": "⊻", + "description": "Named entity: veebar; with a semi-colon", + "output": [ + [ + "Character", + "\u22bb" + ] + ] + }, + { + "input": "&veeeq", + "description": "Bad named entity: veeeq without a semi-colon", + "output": [ + [ + "Character", + "&veeeq" + ] + ] + }, + { + "input": "≚", + "description": "Named entity: veeeq; with a semi-colon", + "output": [ + [ + "Character", + "\u225a" + ] + ] + }, + { + "input": "&vellip", + "description": "Bad named entity: vellip without a semi-colon", + "output": [ + [ + "Character", + "&vellip" + ] + ] + }, + { + "input": "⋮", + "description": "Named entity: vellip; with a semi-colon", + "output": [ + [ + "Character", + "\u22ee" + ] + ] + }, + { + "input": "&verbar", + "description": "Bad named entity: verbar without a semi-colon", + "output": [ + [ + "Character", + "&verbar" + ] + ] + }, + { + "input": "|", + "description": "Named entity: verbar; with a semi-colon", + "output": [ + [ + "Character", + "|" + ] + ] + }, + { + "input": "&vert", + "description": "Bad named entity: vert without a semi-colon", + "output": [ + [ + "Character", + "&vert" + ] + ] + }, + { + "input": "|", + "description": "Named entity: vert; with a semi-colon", + "output": [ + [ + "Character", + "|" + ] + ] + }, + { + "input": "&vfr", + "description": "Bad named entity: vfr without a semi-colon", + "output": [ + [ + "Character", + "&vfr" + ] + ] + }, + { + "input": "𝔳", + "description": "Named entity: vfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd33" + ] + ] + }, + { + "input": "&vltri", + "description": "Bad named entity: vltri without a semi-colon", + "output": [ + [ + "Character", + "&vltri" + ] + ] + }, + { + "input": "⊲", + "description": "Named entity: vltri; with a semi-colon", + "output": [ + [ + "Character", + "\u22b2" + ] + ] + }, + { + "input": "&vnsub", + "description": "Bad named entity: vnsub without a semi-colon", + "output": [ + [ + "Character", + "&vnsub" + ] + ] + }, + { + "input": "⊂⃒", + "description": "Named entity: vnsub; with a semi-colon", + "output": [ + [ + "Character", + "\u2282\u20d2" + ] + ] + }, + { + "input": "&vnsup", + "description": "Bad named entity: vnsup without a semi-colon", + "output": [ + [ + "Character", + "&vnsup" + ] + ] + }, + { + "input": "⊃⃒", + "description": "Named entity: vnsup; with a semi-colon", + "output": [ + [ + "Character", + "\u2283\u20d2" + ] + ] + }, + { + "input": "&vopf", + "description": "Bad named entity: vopf without a semi-colon", + "output": [ + [ + "Character", + "&vopf" + ] + ] + }, + { + "input": "𝕧", + "description": "Named entity: vopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd67" + ] + ] + }, + { + "input": "&vprop", + "description": "Bad named entity: vprop without a semi-colon", + "output": [ + [ + "Character", + "&vprop" + ] + ] + }, + { + "input": "∝", + "description": "Named entity: vprop; with a semi-colon", + "output": [ + [ + "Character", + "\u221d" + ] + ] + }, + { + "input": "&vrtri", + "description": "Bad named entity: vrtri without a semi-colon", + "output": [ + [ + "Character", + "&vrtri" + ] + ] + }, + { + "input": "⊳", + "description": "Named entity: vrtri; with a semi-colon", + "output": [ + [ + "Character", + "\u22b3" + ] + ] + }, + { + "input": "&vscr", + "description": "Bad named entity: vscr without a semi-colon", + "output": [ + [ + "Character", + "&vscr" + ] + ] + }, + { + "input": "𝓋", + "description": "Named entity: vscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udccb" + ] + ] + }, + { + "input": "&vsubnE", + "description": "Bad named entity: vsubnE without a semi-colon", + "output": [ + [ + "Character", + "&vsubnE" + ] + ] + }, + { + "input": "⫋︀", + "description": "Named entity: vsubnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2acb\ufe00" + ] + ] + }, + { + "input": "&vsubne", + "description": "Bad named entity: vsubne without a semi-colon", + "output": [ + [ + "Character", + "&vsubne" + ] + ] + }, + { + "input": "⊊︀", + "description": "Named entity: vsubne; with a semi-colon", + "output": [ + [ + "Character", + "\u228a\ufe00" + ] + ] + }, + { + "input": "&vsupnE", + "description": "Bad named entity: vsupnE without a semi-colon", + "output": [ + [ + "Character", + "&vsupnE" + ] + ] + }, + { + "input": "⫌︀", + "description": "Named entity: vsupnE; with a semi-colon", + "output": [ + [ + "Character", + "\u2acc\ufe00" + ] + ] + }, + { + "input": "&vsupne", + "description": "Bad named entity: vsupne without a semi-colon", + "output": [ + [ + "Character", + "&vsupne" + ] + ] + }, + { + "input": "⊋︀", + "description": "Named entity: vsupne; with a semi-colon", + "output": [ + [ + "Character", + "\u228b\ufe00" + ] + ] + }, + { + "input": "&vzigzag", + "description": "Bad named entity: vzigzag without a semi-colon", + "output": [ + [ + "Character", + "&vzigzag" + ] + ] + }, + { + "input": "⦚", + "description": "Named entity: vzigzag; with a semi-colon", + "output": [ + [ + "Character", + "\u299a" + ] + ] + }, + { + "input": "&wcirc", + "description": "Bad named entity: wcirc without a semi-colon", + "output": [ + [ + "Character", + "&wcirc" + ] + ] + }, + { + "input": "ŵ", + "description": "Named entity: wcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0175" + ] + ] + }, + { + "input": "&wedbar", + "description": "Bad named entity: wedbar without a semi-colon", + "output": [ + [ + "Character", + "&wedbar" + ] + ] + }, + { + "input": "⩟", + "description": "Named entity: wedbar; with a semi-colon", + "output": [ + [ + "Character", + "\u2a5f" + ] + ] + }, + { + "input": "&wedge", + "description": "Bad named entity: wedge without a semi-colon", + "output": [ + [ + "Character", + "&wedge" + ] + ] + }, + { + "input": "∧", + "description": "Named entity: wedge; with a semi-colon", + "output": [ + [ + "Character", + "\u2227" + ] + ] + }, + { + "input": "&wedgeq", + "description": "Bad named entity: wedgeq without a semi-colon", + "output": [ + [ + "Character", + "&wedgeq" + ] + ] + }, + { + "input": "≙", + "description": "Named entity: wedgeq; with a semi-colon", + "output": [ + [ + "Character", + "\u2259" + ] + ] + }, + { + "input": "&weierp", + "description": "Bad named entity: weierp without a semi-colon", + "output": [ + [ + "Character", + "&weierp" + ] + ] + }, + { + "input": "℘", + "description": "Named entity: weierp; with a semi-colon", + "output": [ + [ + "Character", + "\u2118" + ] + ] + }, + { + "input": "&wfr", + "description": "Bad named entity: wfr without a semi-colon", + "output": [ + [ + "Character", + "&wfr" + ] + ] + }, + { + "input": "𝔴", + "description": "Named entity: wfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd34" + ] + ] + }, + { + "input": "&wopf", + "description": "Bad named entity: wopf without a semi-colon", + "output": [ + [ + "Character", + "&wopf" + ] + ] + }, + { + "input": "𝕨", + "description": "Named entity: wopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd68" + ] + ] + }, + { + "input": "&wp", + "description": "Bad named entity: wp without a semi-colon", + "output": [ + [ + "Character", + "&wp" + ] + ] + }, + { + "input": "℘", + "description": "Named entity: wp; with a semi-colon", + "output": [ + [ + "Character", + "\u2118" + ] + ] + }, + { + "input": "&wr", + "description": "Bad named entity: wr without a semi-colon", + "output": [ + [ + "Character", + "&wr" + ] + ] + }, + { + "input": "≀", + "description": "Named entity: wr; with a semi-colon", + "output": [ + [ + "Character", + "\u2240" + ] + ] + }, + { + "input": "&wreath", + "description": "Bad named entity: wreath without a semi-colon", + "output": [ + [ + "Character", + "&wreath" + ] + ] + }, + { + "input": "≀", + "description": "Named entity: wreath; with a semi-colon", + "output": [ + [ + "Character", + "\u2240" + ] + ] + }, + { + "input": "&wscr", + "description": "Bad named entity: wscr without a semi-colon", + "output": [ + [ + "Character", + "&wscr" + ] + ] + }, + { + "input": "𝓌", + "description": "Named entity: wscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udccc" + ] + ] + }, + { + "input": "&xcap", + "description": "Bad named entity: xcap without a semi-colon", + "output": [ + [ + "Character", + "&xcap" + ] + ] + }, + { + "input": "⋂", + "description": "Named entity: xcap; with a semi-colon", + "output": [ + [ + "Character", + "\u22c2" + ] + ] + }, + { + "input": "&xcirc", + "description": "Bad named entity: xcirc without a semi-colon", + "output": [ + [ + "Character", + "&xcirc" + ] + ] + }, + { + "input": "◯", + "description": "Named entity: xcirc; with a semi-colon", + "output": [ + [ + "Character", + "\u25ef" + ] + ] + }, + { + "input": "&xcup", + "description": "Bad named entity: xcup without a semi-colon", + "output": [ + [ + "Character", + "&xcup" + ] + ] + }, + { + "input": "⋃", + "description": "Named entity: xcup; with a semi-colon", + "output": [ + [ + "Character", + "\u22c3" + ] + ] + }, + { + "input": "&xdtri", + "description": "Bad named entity: xdtri without a semi-colon", + "output": [ + [ + "Character", + "&xdtri" + ] + ] + }, + { + "input": "▽", + "description": "Named entity: xdtri; with a semi-colon", + "output": [ + [ + "Character", + "\u25bd" + ] + ] + }, + { + "input": "&xfr", + "description": "Bad named entity: xfr without a semi-colon", + "output": [ + [ + "Character", + "&xfr" + ] + ] + }, + { + "input": "𝔵", + "description": "Named entity: xfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd35" + ] + ] + }, + { + "input": "&xhArr", + "description": "Bad named entity: xhArr without a semi-colon", + "output": [ + [ + "Character", + "&xhArr" + ] + ] + }, + { + "input": "⟺", + "description": "Named entity: xhArr; with a semi-colon", + "output": [ + [ + "Character", + "\u27fa" + ] + ] + }, + { + "input": "&xharr", + "description": "Bad named entity: xharr without a semi-colon", + "output": [ + [ + "Character", + "&xharr" + ] + ] + }, + { + "input": "⟷", + "description": "Named entity: xharr; with a semi-colon", + "output": [ + [ + "Character", + "\u27f7" + ] + ] + }, + { + "input": "&xi", + "description": "Bad named entity: xi without a semi-colon", + "output": [ + [ + "Character", + "&xi" + ] + ] + }, + { + "input": "ξ", + "description": "Named entity: xi; with a semi-colon", + "output": [ + [ + "Character", + "\u03be" + ] + ] + }, + { + "input": "&xlArr", + "description": "Bad named entity: xlArr without a semi-colon", + "output": [ + [ + "Character", + "&xlArr" + ] + ] + }, + { + "input": "⟸", + "description": "Named entity: xlArr; with a semi-colon", + "output": [ + [ + "Character", + "\u27f8" + ] + ] + }, + { + "input": "&xlarr", + "description": "Bad named entity: xlarr without a semi-colon", + "output": [ + [ + "Character", + "&xlarr" + ] + ] + }, + { + "input": "⟵", + "description": "Named entity: xlarr; with a semi-colon", + "output": [ + [ + "Character", + "\u27f5" + ] + ] + }, + { + "input": "&xmap", + "description": "Bad named entity: xmap without a semi-colon", + "output": [ + [ + "Character", + "&xmap" + ] + ] + }, + { + "input": "⟼", + "description": "Named entity: xmap; with a semi-colon", + "output": [ + [ + "Character", + "\u27fc" + ] + ] + }, + { + "input": "&xnis", + "description": "Bad named entity: xnis without a semi-colon", + "output": [ + [ + "Character", + "&xnis" + ] + ] + }, + { + "input": "⋻", + "description": "Named entity: xnis; with a semi-colon", + "output": [ + [ + "Character", + "\u22fb" + ] + ] + }, + { + "input": "&xodot", + "description": "Bad named entity: xodot without a semi-colon", + "output": [ + [ + "Character", + "&xodot" + ] + ] + }, + { + "input": "⨀", + "description": "Named entity: xodot; with a semi-colon", + "output": [ + [ + "Character", + "\u2a00" + ] + ] + }, + { + "input": "&xopf", + "description": "Bad named entity: xopf without a semi-colon", + "output": [ + [ + "Character", + "&xopf" + ] + ] + }, + { + "input": "𝕩", + "description": "Named entity: xopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd69" + ] + ] + }, + { + "input": "&xoplus", + "description": "Bad named entity: xoplus without a semi-colon", + "output": [ + [ + "Character", + "&xoplus" + ] + ] + }, + { + "input": "⨁", + "description": "Named entity: xoplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a01" + ] + ] + }, + { + "input": "&xotime", + "description": "Bad named entity: xotime without a semi-colon", + "output": [ + [ + "Character", + "&xotime" + ] + ] + }, + { + "input": "⨂", + "description": "Named entity: xotime; with a semi-colon", + "output": [ + [ + "Character", + "\u2a02" + ] + ] + }, + { + "input": "&xrArr", + "description": "Bad named entity: xrArr without a semi-colon", + "output": [ + [ + "Character", + "&xrArr" + ] + ] + }, + { + "input": "⟹", + "description": "Named entity: xrArr; with a semi-colon", + "output": [ + [ + "Character", + "\u27f9" + ] + ] + }, + { + "input": "&xrarr", + "description": "Bad named entity: xrarr without a semi-colon", + "output": [ + [ + "Character", + "&xrarr" + ] + ] + }, + { + "input": "⟶", + "description": "Named entity: xrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u27f6" + ] + ] + }, + { + "input": "&xscr", + "description": "Bad named entity: xscr without a semi-colon", + "output": [ + [ + "Character", + "&xscr" + ] + ] + }, + { + "input": "𝓍", + "description": "Named entity: xscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udccd" + ] + ] + }, + { + "input": "&xsqcup", + "description": "Bad named entity: xsqcup without a semi-colon", + "output": [ + [ + "Character", + "&xsqcup" + ] + ] + }, + { + "input": "⨆", + "description": "Named entity: xsqcup; with a semi-colon", + "output": [ + [ + "Character", + "\u2a06" + ] + ] + }, + { + "input": "&xuplus", + "description": "Bad named entity: xuplus without a semi-colon", + "output": [ + [ + "Character", + "&xuplus" + ] + ] + }, + { + "input": "⨄", + "description": "Named entity: xuplus; with a semi-colon", + "output": [ + [ + "Character", + "\u2a04" + ] + ] + }, + { + "input": "&xutri", + "description": "Bad named entity: xutri without a semi-colon", + "output": [ + [ + "Character", + "&xutri" + ] + ] + }, + { + "input": "△", + "description": "Named entity: xutri; with a semi-colon", + "output": [ + [ + "Character", + "\u25b3" + ] + ] + }, + { + "input": "&xvee", + "description": "Bad named entity: xvee without a semi-colon", + "output": [ + [ + "Character", + "&xvee" + ] + ] + }, + { + "input": "⋁", + "description": "Named entity: xvee; with a semi-colon", + "output": [ + [ + "Character", + "\u22c1" + ] + ] + }, + { + "input": "&xwedge", + "description": "Bad named entity: xwedge without a semi-colon", + "output": [ + [ + "Character", + "&xwedge" + ] + ] + }, + { + "input": "⋀", + "description": "Named entity: xwedge; with a semi-colon", + "output": [ + [ + "Character", + "\u22c0" + ] + ] + }, + { + "input": "ý", + "description": "Named entity: yacute without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00fd" + ] + ] + }, + { + "input": "ý", + "description": "Named entity: yacute; with a semi-colon", + "output": [ + [ + "Character", + "\u00fd" + ] + ] + }, + { + "input": "&yacy", + "description": "Bad named entity: yacy without a semi-colon", + "output": [ + [ + "Character", + "&yacy" + ] + ] + }, + { + "input": "я", + "description": "Named entity: yacy; with a semi-colon", + "output": [ + [ + "Character", + "\u044f" + ] + ] + }, + { + "input": "&ycirc", + "description": "Bad named entity: ycirc without a semi-colon", + "output": [ + [ + "Character", + "&ycirc" + ] + ] + }, + { + "input": "ŷ", + "description": "Named entity: ycirc; with a semi-colon", + "output": [ + [ + "Character", + "\u0177" + ] + ] + }, + { + "input": "&ycy", + "description": "Bad named entity: ycy without a semi-colon", + "output": [ + [ + "Character", + "&ycy" + ] + ] + }, + { + "input": "ы", + "description": "Named entity: ycy; with a semi-colon", + "output": [ + [ + "Character", + "\u044b" + ] + ] + }, + { + "input": "¥", + "description": "Named entity: yen without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00a5" + ] + ] + }, + { + "input": "¥", + "description": "Named entity: yen; with a semi-colon", + "output": [ + [ + "Character", + "\u00a5" + ] + ] + }, + { + "input": "&yfr", + "description": "Bad named entity: yfr without a semi-colon", + "output": [ + [ + "Character", + "&yfr" + ] + ] + }, + { + "input": "𝔶", + "description": "Named entity: yfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd36" + ] + ] + }, + { + "input": "&yicy", + "description": "Bad named entity: yicy without a semi-colon", + "output": [ + [ + "Character", + "&yicy" + ] + ] + }, + { + "input": "ї", + "description": "Named entity: yicy; with a semi-colon", + "output": [ + [ + "Character", + "\u0457" + ] + ] + }, + { + "input": "&yopf", + "description": "Bad named entity: yopf without a semi-colon", + "output": [ + [ + "Character", + "&yopf" + ] + ] + }, + { + "input": "𝕪", + "description": "Named entity: yopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd6a" + ] + ] + }, + { + "input": "&yscr", + "description": "Bad named entity: yscr without a semi-colon", + "output": [ + [ + "Character", + "&yscr" + ] + ] + }, + { + "input": "𝓎", + "description": "Named entity: yscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udcce" + ] + ] + }, + { + "input": "&yucy", + "description": "Bad named entity: yucy without a semi-colon", + "output": [ + [ + "Character", + "&yucy" + ] + ] + }, + { + "input": "ю", + "description": "Named entity: yucy; with a semi-colon", + "output": [ + [ + "Character", + "\u044e" + ] + ] + }, + { + "input": "ÿ", + "description": "Named entity: yuml without a semi-colon", + "output": [ + "ParseError", + [ + "Character", + "\u00ff" + ] + ] + }, + { + "input": "ÿ", + "description": "Named entity: yuml; with a semi-colon", + "output": [ + [ + "Character", + "\u00ff" + ] + ] + }, + { + "input": "&zacute", + "description": "Bad named entity: zacute without a semi-colon", + "output": [ + [ + "Character", + "&zacute" + ] + ] + }, + { + "input": "ź", + "description": "Named entity: zacute; with a semi-colon", + "output": [ + [ + "Character", + "\u017a" + ] + ] + }, + { + "input": "&zcaron", + "description": "Bad named entity: zcaron without a semi-colon", + "output": [ + [ + "Character", + "&zcaron" + ] + ] + }, + { + "input": "ž", + "description": "Named entity: zcaron; with a semi-colon", + "output": [ + [ + "Character", + "\u017e" + ] + ] + }, + { + "input": "&zcy", + "description": "Bad named entity: zcy without a semi-colon", + "output": [ + [ + "Character", + "&zcy" + ] + ] + }, + { + "input": "з", + "description": "Named entity: zcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0437" + ] + ] + }, + { + "input": "&zdot", + "description": "Bad named entity: zdot without a semi-colon", + "output": [ + [ + "Character", + "&zdot" + ] + ] + }, + { + "input": "ż", + "description": "Named entity: zdot; with a semi-colon", + "output": [ + [ + "Character", + "\u017c" + ] + ] + }, + { + "input": "&zeetrf", + "description": "Bad named entity: zeetrf without a semi-colon", + "output": [ + [ + "Character", + "&zeetrf" + ] + ] + }, + { + "input": "ℨ", + "description": "Named entity: zeetrf; with a semi-colon", + "output": [ + [ + "Character", + "\u2128" + ] + ] + }, + { + "input": "&zeta", + "description": "Bad named entity: zeta without a semi-colon", + "output": [ + [ + "Character", + "&zeta" + ] + ] + }, + { + "input": "ζ", + "description": "Named entity: zeta; with a semi-colon", + "output": [ + [ + "Character", + "\u03b6" + ] + ] + }, + { + "input": "&zfr", + "description": "Bad named entity: zfr without a semi-colon", + "output": [ + [ + "Character", + "&zfr" + ] + ] + }, + { + "input": "𝔷", + "description": "Named entity: zfr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd37" + ] + ] + }, + { + "input": "&zhcy", + "description": "Bad named entity: zhcy without a semi-colon", + "output": [ + [ + "Character", + "&zhcy" + ] + ] + }, + { + "input": "ж", + "description": "Named entity: zhcy; with a semi-colon", + "output": [ + [ + "Character", + "\u0436" + ] + ] + }, + { + "input": "&zigrarr", + "description": "Bad named entity: zigrarr without a semi-colon", + "output": [ + [ + "Character", + "&zigrarr" + ] + ] + }, + { + "input": "⇝", + "description": "Named entity: zigrarr; with a semi-colon", + "output": [ + [ + "Character", + "\u21dd" + ] + ] + }, + { + "input": "&zopf", + "description": "Bad named entity: zopf without a semi-colon", + "output": [ + [ + "Character", + "&zopf" + ] + ] + }, + { + "input": "𝕫", + "description": "Named entity: zopf; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udd6b" + ] + ] + }, + { + "input": "&zscr", + "description": "Bad named entity: zscr without a semi-colon", + "output": [ + [ + "Character", + "&zscr" + ] + ] + }, + { + "input": "𝓏", + "description": "Named entity: zscr; with a semi-colon", + "output": [ + [ + "Character", + "\ud835\udccf" + ] + ] + }, + { + "input": "&zwj", + "description": "Bad named entity: zwj without a semi-colon", + "output": [ + [ + "Character", + "&zwj" + ] + ] + }, + { + "input": "‍", + "description": "Named entity: zwj; with a semi-colon", + "output": [ + [ + "Character", + "\u200d" + ] + ] + }, + { + "input": "&zwnj", + "description": "Bad named entity: zwnj without a semi-colon", + "output": [ + [ + "Character", + "&zwnj" + ] + ] + }, + { + "input": "‌", + "description": "Named entity: zwnj; with a semi-colon", + "output": [ + [ + "Character", + "\u200c" + ] + ] + } + ] +}
\ No newline at end of file diff --git a/test/data/tokeniser2/numericEntities.test b/test/data/tokeniser2/numericEntities.test index 78a8a13..36c8228 100644 --- a/test/data/tokeniser2/numericEntities.test +++ b/test/data/tokeniser2/numericEntities.test @@ -6,115 +6,115 @@ {"description": "Invalid numeric entity character U+0001", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0001"]]}, {"description": "Invalid numeric entity character U+0002", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0002"]]}, {"description": "Invalid numeric entity character U+0003", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0003"]]}, {"description": "Invalid numeric entity character U+0004", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0004"]]}, {"description": "Invalid numeric entity character U+0005", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0005"]]}, {"description": "Invalid numeric entity character U+0006", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0006"]]}, {"description": "Invalid numeric entity character U+0007", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0007"]]}, {"description": "Invalid numeric entity character U+0008", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0008"]]}, {"description": "Invalid numeric entity character U+000B", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u000b"]]}, {"description": "Invalid numeric entity character U+000E", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u000e"]]}, {"description": "Invalid numeric entity character U+000F", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u000f"]]}, {"description": "Invalid numeric entity character U+0010", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0010"]]}, {"description": "Invalid numeric entity character U+0011", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0011"]]}, {"description": "Invalid numeric entity character U+0012", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0012"]]}, {"description": "Invalid numeric entity character U+0013", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0013"]]}, {"description": "Invalid numeric entity character U+0014", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0014"]]}, {"description": "Invalid numeric entity character U+0015", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0015"]]}, {"description": "Invalid numeric entity character U+0016", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0016"]]}, {"description": "Invalid numeric entity character U+0017", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0017"]]}, {"description": "Invalid numeric entity character U+0018", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0018"]]}, {"description": "Invalid numeric entity character U+0019", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u0019"]]}, {"description": "Invalid numeric entity character U+001A", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u001a"]]}, {"description": "Invalid numeric entity character U+001B", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u001b"]]}, {"description": "Invalid numeric entity character U+001C", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u001c"]]}, {"description": "Invalid numeric entity character U+001D", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u001d"]]}, {"description": "Invalid numeric entity character U+001E", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u001e"]]}, {"description": "Invalid numeric entity character U+001F", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u001f"]]}, {"description": "Invalid numeric entity character U+007F", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\u007f"]]}, {"description": "Invalid numeric entity character U+D800", "input": "�", @@ -126,267 +126,267 @@ {"description": "Invalid numeric entity character U+FDD0", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd0"]]}, {"description": "Invalid numeric entity character U+FDD1", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd1"]]}, {"description": "Invalid numeric entity character U+FDD2", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd2"]]}, {"description": "Invalid numeric entity character U+FDD3", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd3"]]}, {"description": "Invalid numeric entity character U+FDD4", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd4"]]}, {"description": "Invalid numeric entity character U+FDD5", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd5"]]}, {"description": "Invalid numeric entity character U+FDD6", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd6"]]}, {"description": "Invalid numeric entity character U+FDD7", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd7"]]}, {"description": "Invalid numeric entity character U+FDD8", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd8"]]}, {"description": "Invalid numeric entity character U+FDD9", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdd9"]]}, {"description": "Invalid numeric entity character U+FDDA", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdda"]]}, {"description": "Invalid numeric entity character U+FDDB", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufddb"]]}, {"description": "Invalid numeric entity character U+FDDC", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufddc"]]}, {"description": "Invalid numeric entity character U+FDDD", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufddd"]]}, {"description": "Invalid numeric entity character U+FDDE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdde"]]}, {"description": "Invalid numeric entity character U+FDDF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufddf"]]}, {"description": "Invalid numeric entity character U+FDE0", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde0"]]}, {"description": "Invalid numeric entity character U+FDE1", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde1"]]}, {"description": "Invalid numeric entity character U+FDE2", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde2"]]}, {"description": "Invalid numeric entity character U+FDE3", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde3"]]}, {"description": "Invalid numeric entity character U+FDE4", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde4"]]}, {"description": "Invalid numeric entity character U+FDE5", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde5"]]}, {"description": "Invalid numeric entity character U+FDE6", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde6"]]}, {"description": "Invalid numeric entity character U+FDE7", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde7"]]}, {"description": "Invalid numeric entity character U+FDE8", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde8"]]}, {"description": "Invalid numeric entity character U+FDE9", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufde9"]]}, {"description": "Invalid numeric entity character U+FDEA", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdea"]]}, {"description": "Invalid numeric entity character U+FDEB", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdeb"]]}, {"description": "Invalid numeric entity character U+FDEC", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdec"]]}, {"description": "Invalid numeric entity character U+FDED", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufded"]]}, {"description": "Invalid numeric entity character U+FDEE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdee"]]}, {"description": "Invalid numeric entity character U+FDEF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufdef"]]}, {"description": "Invalid numeric entity character U+FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\ufffe"]]}, {"description": "Invalid numeric entity character U+FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uffff"]]}, {"description": "Invalid numeric entity character U+1FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD83F\uDFFE"]]}, {"description": "Invalid numeric entity character U+1FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD83F\uDFFF"]]}, {"description": "Invalid numeric entity character U+2FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD87F\uDFFE"]]}, {"description": "Invalid numeric entity character U+2FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD87F\uDFFF"]]}, {"description": "Invalid numeric entity character U+3FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD8BF\uDFFE"]]}, {"description": "Invalid numeric entity character U+3FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD8BF\uDFFF"]]}, {"description": "Invalid numeric entity character U+4FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD8FF\uDFFE"]]}, {"description": "Invalid numeric entity character U+4FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD8FF\uDFFF"]]}, {"description": "Invalid numeric entity character U+5FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD93F\uDFFE"]]}, {"description": "Invalid numeric entity character U+5FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD93F\uDFFF"]]}, {"description": "Invalid numeric entity character U+6FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD97F\uDFFE"]]}, {"description": "Invalid numeric entity character U+6FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD97F\uDFFF"]]}, {"description": "Invalid numeric entity character U+7FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD9BF\uDFFE"]]}, {"description": "Invalid numeric entity character U+7FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD9BF\uDFFF"]]}, {"description": "Invalid numeric entity character U+8FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD9FF\uDFFE"]]}, {"description": "Invalid numeric entity character U+8FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uD9FF\uDFFF"]]}, {"description": "Invalid numeric entity character U+9FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDA3F\uDFFE"]]}, {"description": "Invalid numeric entity character U+9FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDA3F\uDFFF"]]}, {"description": "Invalid numeric entity character U+AFFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDA7F\uDFFE"]]}, {"description": "Invalid numeric entity character U+AFFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDA7F\uDFFF"]]}, {"description": "Invalid numeric entity character U+BFFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDABF\uDFFE"]]}, {"description": "Invalid numeric entity character U+BFFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDABF\uDFFF"]]}, {"description": "Invalid numeric entity character U+CFFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDAFF\uDFFE"]]}, {"description": "Invalid numeric entity character U+CFFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDAFF\uDFFF"]]}, {"description": "Invalid numeric entity character U+DFFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDB3F\uDFFE"]]}, {"description": "Invalid numeric entity character U+DFFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDB3F\uDFFF"]]}, {"description": "Invalid numeric entity character U+EFFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDB7F\uDFFE"]]}, {"description": "Invalid numeric entity character U+EFFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDB7F\uDFFF"]]}, {"description": "Invalid numeric entity character U+FFFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDBBF\uDFFE"]]}, {"description": "Invalid numeric entity character U+FFFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDBBF\uDFFF"]]}, {"description": "Invalid numeric entity character U+10FFFE", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDBFF\uDFFE"]]}, {"description": "Invalid numeric entity character U+10FFFF", "input": "", -"output": ["ParseError", ["Character", "\uFFFD"]]}, +"output": ["ParseError", ["Character", "\uDBFF\uDFFF"]]}, {"description": "Valid numeric entity character U+0009", "input": "	", @@ -1309,3 +1309,5 @@ "output": [["Character", "\uDBFF\uDFFD"]]} ]} + + diff --git a/test/data/tokeniser2/pendingSpecChanges.test b/test/data/tokeniser2/pendingSpecChanges.test new file mode 100644 index 0000000..1b7dc3c --- /dev/null +++ b/test/data/tokeniser2/pendingSpecChanges.test @@ -0,0 +1,7 @@ +{"tests": [ + +{"description":"<!---- >", +"input":"<!---- >", +"output":["ParseError", "ParseError", ["Comment","-- >"]]} + +]} diff --git a/test/data/tokeniser2/test1.test b/test/data/tokeniser2/test1.test index 9431863..b97b2cb 100644 --- a/test/data/tokeniser2/test1.test +++ b/test/data/tokeniser2/test1.test @@ -115,7 +115,7 @@ {"description":"Unfinished entity", "input":"&f", -"output":["ParseError", ["Character", "&f"]]}, +"output":[["Character", "&f"]]}, {"description":"Ampersand, number sign", "input":"&#", @@ -143,11 +143,11 @@ {"description":"Partial entity match at end of file", "input":"I'm &no", -"output":[["Character","I'm "], "ParseError", ["Character", "&no"]]}, +"output":[["Character","I'm &no"]]}, {"description":"Non-ASCII character reference name", "input":"&\u00AC;", -"output":["ParseError", ["Character", "&\u00AC;"]]}, +"output":[["Character", "&\u00AC;"]]}, {"description":"ASCII decimal entity", "input":"$", @@ -163,22 +163,34 @@ {"description":"Entity in attribute without semicolon ending in x", "input":"<h a='¬x'>", -"output":["ParseError", ["StartTag", "h", {"a":"¬x"}]]}, +"output":[["StartTag", "h", {"a":"¬x"}]]}, {"description":"Entity in attribute without semicolon ending in 1", "input":"<h a='¬1'>", -"output":["ParseError", ["StartTag", "h", {"a":"¬1"}]]}, +"output":[["StartTag", "h", {"a":"¬1"}]]}, {"description":"Entity in attribute without semicolon ending in i", "input":"<h a='¬i'>", -"output":["ParseError", ["StartTag", "h", {"a":"¬i"}]]}, +"output":[["StartTag", "h", {"a":"¬i"}]]}, {"description":"Entity in attribute without semicolon", "input":"<h a='©'>", "output":["ParseError", ["StartTag", "h", {"a":"\u00A9"}]]}, {"description":"Unquoted attribute ending in ampersand", - "input":"<s o=& t", - "output":["ParseError",["StartTag","s",{"o":"&","t":""}]]} +"input":"<s o=& t>", +"output":[["StartTag","s",{"o":"&","t":""}]]}, + +{"description":"Unquoted attribute at end of tag with final character of &, with tag followed by characters", +"input":"<a a=a&>foo", +"output":[["StartTag", "a", {"a":"a&"}], ["Character", "foo"]]}, + +{"description":"plaintext element", + "input":"<plaintext>foobar", + "output":[["StartTag","plaintext",{}], ["Character","foobar"]]}, + +{"description":"Open angled bracket in unquoted attribute value state", + "input":"<a a=f<>", + "output":["ParseError", ["StartTag", "a", {"a":"f<"}]]} ]} diff --git a/test/data/tokeniser2/test2.test b/test/data/tokeniser2/test2.test index 6d6f6ff..87a8eba 100644 --- a/test/data/tokeniser2/test2.test +++ b/test/data/tokeniser2/test2.test @@ -2,7 +2,7 @@ {"description":"DOCTYPE without name", "input":"<!DOCTYPE>", -"output":["ParseError", "ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"DOCTYPE without space before name", "input":"<!DOCTYPEhtml>", @@ -82,7 +82,7 @@ {"description":"Entity without a name", "input":"&;", -"output":["ParseError", ["Character", "&;"]]}, +"output":[["Character", "&;"]]}, {"description":"Unescaped ampersand in attribute value", "input":"<h a='&'>", @@ -134,7 +134,7 @@ {"description":"Null Byte Replacement", "input":"\u0000", -"output":["ParseError", ["Character", "\ufffd"]]}, +"output":["ParseError", ["Character", "\u0000"]]}, {"description":"Comment with dash", "input":"<!---x", @@ -158,6 +158,22 @@ {"description":"Single-quote after attribute name", "input":"<h a '>", -"output":["ParseError", ["StartTag", "h", {"a":"", "'":""}]]} +"output":["ParseError", ["StartTag", "h", {"a":"", "'":""}]]}, + +{"description":"Empty end tag with following characters", +"input":"a</>bc", +"output":[["Character", "a"], "ParseError", ["Character", "bc"]]}, + +{"description":"Empty end tag with following tag", +"input":"a</><b>c", +"output":[["Character", "a"], "ParseError", ["StartTag", "b", {}], ["Character", "c"]]}, + +{"description":"Empty end tag with following comment", +"input":"a</><!--b-->c", +"output":[["Character", "a"], "ParseError", ["Comment", "b"], ["Character", "c"]]}, + +{"description":"Empty end tag with following end tag", +"input":"a</></b>c", +"output":[["Character", "a"], "ParseError", ["EndTag", "b"], ["Character", "c"]]} ]} diff --git a/test/data/tokeniser2/test3.test b/test/data/tokeniser2/test3.test index 593fc93..8fc529a 100644 --- a/test/data/tokeniser2/test3.test +++ b/test/data/tokeniser2/test3.test @@ -4,10 +4,6 @@ "input":"", "output":[]}, -{"description":"\\u0000", -"input":"\u0000", -"output":["ParseError", ["Character", "\uFFFD"]]}, - {"description":"\\u0009", "input":"\u0009", "output":[["Character", "\u0009"]]}, @@ -86,7 +82,7 @@ {"description":"<\\u0000", "input":"<\u0000", -"output":["ParseError", "ParseError", ["Character", "<\uFFFD"]]}, +"output":["ParseError", ["Character", "<"], "ParseError", ["Character", "\u0000"]]}, {"description":"<\\u0009", "input":"<\u0009", @@ -114,7 +110,7 @@ {"description":"<!\\u0000", "input":"<!\u0000", -"output":["ParseError", "ParseError", ["Comment", "\uFFFD"]]}, +"output":["ParseError", ["Comment", "\uFFFD"]]}, {"description":"<!\\u0009", "input":"<!\u0009", @@ -522,7 +518,7 @@ {"description":"<!----\\u0000", "input":"<!----\u0000", -"output":["ParseError", "ParseError", "ParseError", ["Comment", "--\uFFFD"]]}, +"output":["ParseError", "ParseError", ["Comment", "--\uFFFD"]]}, {"description":"<!----\\u0009", "input":"<!----\u0009", @@ -544,10 +540,62 @@ "input":"<!---- ", "output":["ParseError", "ParseError", ["Comment", "-- "]]}, +{"description":"<!---- -", +"input":"<!---- -", +"output":["ParseError", "ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- --", +"input":"<!---- --", +"output":["ParseError", "ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- -->", +"input":"<!---- -->", +"output":["ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- -->", +"input":"<!---- -->", +"output":["ParseError", ["Comment", "-- "]]}, + +{"description":"<!---- a-->", +"input":"<!---- a-->", +"output":["ParseError", ["Comment", "-- a"]]}, + {"description":"<!----!", "input":"<!----!", +"output":["ParseError", "ParseError", ["Comment", ""]]}, + +{"description":"<!----!>", +"input":"<!----!>", +"output":["ParseError", ["Comment", ""]]}, + +{"description":"<!----!a", +"input":"<!----!a", +"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, + +{"description":"<!----!a-", +"input":"<!----!a-", +"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, + +{"description":"<!----!a--", +"input":"<!----!a--", +"output":["ParseError", "ParseError", ["Comment", "--!a"]]}, + +{"description":"<!----!a-->", +"input":"<!----!a-->", +"output":["ParseError", ["Comment", "--!a"]]}, + +{"description":"<!----!-", +"input":"<!----!-", +"output":["ParseError", "ParseError", ["Comment", "--!"]]}, + +{"description":"<!----!--", +"input":"<!----!--", "output":["ParseError", "ParseError", ["Comment", "--!"]]}, +{"description":"<!----!-->", +"input":"<!----!-->", +"output":["ParseError", ["Comment", "--!"]]}, + {"description":"<!----\"", "input":"<!----\"", "output":["ParseError", "ParseError", ["Comment", "--\""]]}, @@ -866,7 +914,7 @@ {"description":"<!DOCTYPE", "input":"<!DOCTYPE", -"output":["ParseError", "ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE\\u0000", "input":"<!DOCTYPE\u0000", @@ -878,11 +926,11 @@ {"description":"<!DOCTYPE\\u0009", "input":"<!DOCTYPE\u0009", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE\\u000A", "input":"<!DOCTYPE\u000A", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE\\u000B", "input":"<!DOCTYPE\u000B", @@ -890,11 +938,11 @@ {"description":"<!DOCTYPE\\u000C", "input":"<!DOCTYPE\u000C", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE\\u000D", "input":"<!DOCTYPE\u000D", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE\\u001F", "input":"<!DOCTYPE\u001F", @@ -902,7 +950,7 @@ {"description":"<!DOCTYPE ", "input":"<!DOCTYPE ", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE \\u0000", "input":"<!DOCTYPE \u0000", @@ -914,11 +962,11 @@ {"description":"<!DOCTYPE \\u0009", "input":"<!DOCTYPE \u0009", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE \\u000A", "input":"<!DOCTYPE \u000A", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE \\u000B", "input":"<!DOCTYPE \u000B", @@ -926,11 +974,11 @@ {"description":"<!DOCTYPE \\u000C", "input":"<!DOCTYPE \u000C", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE \\u000D", "input":"<!DOCTYPE \u000D", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE \\u001F", "input":"<!DOCTYPE \u001F", @@ -938,7 +986,7 @@ {"description":"<!DOCTYPE ", "input":"<!DOCTYPE ", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE !", "input":"<!DOCTYPE !", @@ -986,7 +1034,7 @@ {"description":"<!DOCTYPE >", "input":"<!DOCTYPE >", -"output":["ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE ?", "input":"<!DOCTYPE ?", @@ -1062,7 +1110,7 @@ {"description":"<!DOCTYPE a \\u0000", "input":"<!DOCTYPE a \u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, {"description":"<!DOCTYPE a \\u0008", "input":"<!DOCTYPE a \u0008", @@ -1166,7 +1214,7 @@ {"description":"<!DOCTYPE a PUBLIC\\u0000", "input":"<!DOCTYPE a PUBLIC\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, {"description":"<!DOCTYPE a PUBLIC\\u0008", "input":"<!DOCTYPE a PUBLIC\u0008", @@ -1206,135 +1254,135 @@ {"description":"<!DOCTYPE a PUBLIC\"", "input":"<!DOCTYPE a PUBLIC\"", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"\\u0000", "input":"<!DOCTYPE a PUBLIC\"\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"\\u0009", "input":"<!DOCTYPE a PUBLIC\"\u0009", -"output":["ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"\\u000A", "input":"<!DOCTYPE a PUBLIC\"\u000A", -"output":["ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"\\u000B", "input":"<!DOCTYPE a PUBLIC\"\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"\\u000C", "input":"<!DOCTYPE a PUBLIC\"\u000C", -"output":["ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\" ", "input":"<!DOCTYPE a PUBLIC\" ", -"output":["ParseError", ["DOCTYPE", "a", " ", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"!", "input":"<!DOCTYPE a PUBLIC\"!", -"output":["ParseError", ["DOCTYPE", "a", "!", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"\"", "input":"<!DOCTYPE a PUBLIC\"\"", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"#", "input":"<!DOCTYPE a PUBLIC\"#", -"output":["ParseError", ["DOCTYPE", "a", "#", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "#", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"&", "input":"<!DOCTYPE a PUBLIC\"&", -"output":["ParseError", ["DOCTYPE", "a", "&", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"'", "input":"<!DOCTYPE a PUBLIC\"'", -"output":["ParseError", ["DOCTYPE", "a", "'", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "'", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"-", "input":"<!DOCTYPE a PUBLIC\"-", -"output":["ParseError", ["DOCTYPE", "a", "-", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"/", "input":"<!DOCTYPE a PUBLIC\"/", -"output":["ParseError", ["DOCTYPE", "a", "/", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"0", "input":"<!DOCTYPE a PUBLIC\"0", -"output":["ParseError", ["DOCTYPE", "a", "0", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"1", "input":"<!DOCTYPE a PUBLIC\"1", -"output":["ParseError", ["DOCTYPE", "a", "1", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"9", "input":"<!DOCTYPE a PUBLIC\"9", -"output":["ParseError", ["DOCTYPE", "a", "9", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"<", "input":"<!DOCTYPE a PUBLIC\"<", -"output":["ParseError", ["DOCTYPE", "a", "<", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"=", "input":"<!DOCTYPE a PUBLIC\"=", -"output":["ParseError", ["DOCTYPE", "a", "=", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\">", "input":"<!DOCTYPE a PUBLIC\">", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"?", "input":"<!DOCTYPE a PUBLIC\"?", -"output":["ParseError", ["DOCTYPE", "a", "?", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"@", "input":"<!DOCTYPE a PUBLIC\"@", -"output":["ParseError", ["DOCTYPE", "a", "@", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"A", "input":"<!DOCTYPE a PUBLIC\"A", -"output":["ParseError", ["DOCTYPE", "a", "A", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"B", "input":"<!DOCTYPE a PUBLIC\"B", -"output":["ParseError", ["DOCTYPE", "a", "B", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"Y", "input":"<!DOCTYPE a PUBLIC\"Y", -"output":["ParseError", ["DOCTYPE", "a", "Y", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"Z", "input":"<!DOCTYPE a PUBLIC\"Z", -"output":["ParseError", ["DOCTYPE", "a", "Z", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"`", "input":"<!DOCTYPE a PUBLIC\"`", -"output":["ParseError", ["DOCTYPE", "a", "`", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"a", "input":"<!DOCTYPE a PUBLIC\"a", -"output":["ParseError", ["DOCTYPE", "a", "a", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"b", "input":"<!DOCTYPE a PUBLIC\"b", -"output":["ParseError", ["DOCTYPE", "a", "b", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"y", "input":"<!DOCTYPE a PUBLIC\"y", -"output":["ParseError", ["DOCTYPE", "a", "y", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"z", "input":"<!DOCTYPE a PUBLIC\"z", -"output":["ParseError", ["DOCTYPE", "a", "z", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"{", "input":"<!DOCTYPE a PUBLIC\"{", -"output":["ParseError", ["DOCTYPE", "a", "{", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, {"description":"<!DOCTYPE a PUBLIC\"\\uDBC0\\uDC00", "input":"<!DOCTYPE a PUBLIC\"\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, {"description":"<!DOCTYPE a PUBLIC#", "input":"<!DOCTYPE a PUBLIC#", @@ -1346,47 +1394,47 @@ {"description":"<!DOCTYPE a PUBLIC'", "input":"<!DOCTYPE a PUBLIC'", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'\\u0000", "input":"<!DOCTYPE a PUBLIC'\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'\\u0009", "input":"<!DOCTYPE a PUBLIC'\u0009", -"output":["ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'\\u000A", "input":"<!DOCTYPE a PUBLIC'\u000A", -"output":["ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'\\u000B", "input":"<!DOCTYPE a PUBLIC'\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'\\u000C", "input":"<!DOCTYPE a PUBLIC'\u000C", -"output":["ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, {"description":"<!DOCTYPE a PUBLIC' ", "input":"<!DOCTYPE a PUBLIC' ", -"output":["ParseError", ["DOCTYPE", "a", " ", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'!", "input":"<!DOCTYPE a PUBLIC'!", -"output":["ParseError", ["DOCTYPE", "a", "!", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'\"", "input":"<!DOCTYPE a PUBLIC'\"", -"output":["ParseError", ["DOCTYPE", "a", "\"", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\"", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'&", "input":"<!DOCTYPE a PUBLIC'&", -"output":["ParseError", ["DOCTYPE", "a", "&", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''", "input":"<!DOCTYPE a PUBLIC''", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\\u0000", "input":"<!DOCTYPE a PUBLIC''\u0000", @@ -1394,231 +1442,231 @@ {"description":"<!DOCTYPE a PUBLIC''\\u0008", "input":"<!DOCTYPE a PUBLIC''\u0008", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\\u0009", "input":"<!DOCTYPE a PUBLIC''\u0009", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\\u000A", "input":"<!DOCTYPE a PUBLIC''\u000A", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\\u000B", "input":"<!DOCTYPE a PUBLIC''\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\\u000C", "input":"<!DOCTYPE a PUBLIC''\u000C", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\\u000D", "input":"<!DOCTYPE a PUBLIC''\u000D", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\\u001F", "input":"<!DOCTYPE a PUBLIC''\u001F", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'' ", "input":"<!DOCTYPE a PUBLIC'' ", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''!", "input":"<!DOCTYPE a PUBLIC''!", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\"", "input":"<!DOCTYPE a PUBLIC''\"", -"output":["ParseError", ["DOCTYPE", "a", "", "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, {"description":"<!DOCTYPE a PUBLIC''#", "input":"<!DOCTYPE a PUBLIC''#", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''&", "input":"<!DOCTYPE a PUBLIC''&", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'''", "input":"<!DOCTYPE a PUBLIC'''", -"output":["ParseError", ["DOCTYPE", "a", "", "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, {"description":"<!DOCTYPE a PUBLIC''(", "input":"<!DOCTYPE a PUBLIC''(", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''-", "input":"<!DOCTYPE a PUBLIC''-", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''/", "input":"<!DOCTYPE a PUBLIC''/", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''0", "input":"<!DOCTYPE a PUBLIC''0", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''1", "input":"<!DOCTYPE a PUBLIC''1", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''9", "input":"<!DOCTYPE a PUBLIC''9", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''<", "input":"<!DOCTYPE a PUBLIC''<", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''=", "input":"<!DOCTYPE a PUBLIC''=", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''>", "input":"<!DOCTYPE a PUBLIC''>", -"output":[["DOCTYPE", "a", "", null, true]]}, +"output":["ParseError", ["DOCTYPE", "a", "", null, true]]}, {"description":"<!DOCTYPE a PUBLIC''?", "input":"<!DOCTYPE a PUBLIC''?", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''@", "input":"<!DOCTYPE a PUBLIC''@", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''A", "input":"<!DOCTYPE a PUBLIC''A", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''B", "input":"<!DOCTYPE a PUBLIC''B", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''Y", "input":"<!DOCTYPE a PUBLIC''Y", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''Z", "input":"<!DOCTYPE a PUBLIC''Z", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''`", "input":"<!DOCTYPE a PUBLIC''`", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''a", "input":"<!DOCTYPE a PUBLIC''a", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''b", "input":"<!DOCTYPE a PUBLIC''b", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''y", "input":"<!DOCTYPE a PUBLIC''y", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''z", "input":"<!DOCTYPE a PUBLIC''z", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''{", "input":"<!DOCTYPE a PUBLIC''{", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC''\\uDBC0\\uDC00", "input":"<!DOCTYPE a PUBLIC''\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'(", "input":"<!DOCTYPE a PUBLIC'(", -"output":["ParseError", ["DOCTYPE", "a", "(", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "(", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'-", "input":"<!DOCTYPE a PUBLIC'-", -"output":["ParseError", ["DOCTYPE", "a", "-", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'/", "input":"<!DOCTYPE a PUBLIC'/", -"output":["ParseError", ["DOCTYPE", "a", "/", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'0", "input":"<!DOCTYPE a PUBLIC'0", -"output":["ParseError", ["DOCTYPE", "a", "0", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'1", "input":"<!DOCTYPE a PUBLIC'1", -"output":["ParseError", ["DOCTYPE", "a", "1", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'9", "input":"<!DOCTYPE a PUBLIC'9", -"output":["ParseError", ["DOCTYPE", "a", "9", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'<", "input":"<!DOCTYPE a PUBLIC'<", -"output":["ParseError", ["DOCTYPE", "a", "<", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'=", "input":"<!DOCTYPE a PUBLIC'=", -"output":["ParseError", ["DOCTYPE", "a", "=", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'>", "input":"<!DOCTYPE a PUBLIC'>", -"output":["ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'?", "input":"<!DOCTYPE a PUBLIC'?", -"output":["ParseError", ["DOCTYPE", "a", "?", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'@", "input":"<!DOCTYPE a PUBLIC'@", -"output":["ParseError", ["DOCTYPE", "a", "@", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'A", "input":"<!DOCTYPE a PUBLIC'A", -"output":["ParseError", ["DOCTYPE", "a", "A", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'B", "input":"<!DOCTYPE a PUBLIC'B", -"output":["ParseError", ["DOCTYPE", "a", "B", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'Y", "input":"<!DOCTYPE a PUBLIC'Y", -"output":["ParseError", ["DOCTYPE", "a", "Y", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'Z", "input":"<!DOCTYPE a PUBLIC'Z", -"output":["ParseError", ["DOCTYPE", "a", "Z", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'`", "input":"<!DOCTYPE a PUBLIC'`", -"output":["ParseError", ["DOCTYPE", "a", "`", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'a", "input":"<!DOCTYPE a PUBLIC'a", -"output":["ParseError", ["DOCTYPE", "a", "a", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'b", "input":"<!DOCTYPE a PUBLIC'b", -"output":["ParseError", ["DOCTYPE", "a", "b", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'y", "input":"<!DOCTYPE a PUBLIC'y", -"output":["ParseError", ["DOCTYPE", "a", "y", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'z", "input":"<!DOCTYPE a PUBLIC'z", -"output":["ParseError", ["DOCTYPE", "a", "z", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'{", "input":"<!DOCTYPE a PUBLIC'{", -"output":["ParseError", ["DOCTYPE", "a", "{", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, {"description":"<!DOCTYPE a PUBLIC'\\uDBC0\\uDC00", "input":"<!DOCTYPE a PUBLIC'\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, {"description":"<!DOCTYPE a PUBLIC(", "input":"<!DOCTYPE a PUBLIC(", @@ -1714,7 +1762,7 @@ {"description":"<!DOCTYPE a SYSTEM\\u0000", "input":"<!DOCTYPE a SYSTEM\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, {"description":"<!DOCTYPE a SYSTEM\\u0008", "input":"<!DOCTYPE a SYSTEM\u0008", @@ -1754,135 +1802,135 @@ {"description":"<!DOCTYPE a SYSTEM\"", "input":"<!DOCTYPE a SYSTEM\"", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM\"\\u0000", "input":"<!DOCTYPE a SYSTEM\"\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, {"description":"<!DOCTYPE a SYSTEM\"\\u0009", "input":"<!DOCTYPE a SYSTEM\"\u0009", -"output":["ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, {"description":"<!DOCTYPE a SYSTEM\"\\u000A", "input":"<!DOCTYPE a SYSTEM\"\u000A", -"output":["ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, {"description":"<!DOCTYPE a SYSTEM\"\\u000B", "input":"<!DOCTYPE a SYSTEM\"\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, {"description":"<!DOCTYPE a SYSTEM\"\\u000C", "input":"<!DOCTYPE a SYSTEM\"\u000C", -"output":["ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, {"description":"<!DOCTYPE a SYSTEM\" ", "input":"<!DOCTYPE a SYSTEM\" ", -"output":["ParseError", ["DOCTYPE", "a", null, " ", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, {"description":"<!DOCTYPE a SYSTEM\"!", "input":"<!DOCTYPE a SYSTEM\"!", -"output":["ParseError", ["DOCTYPE", "a", null, "!", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, {"description":"<!DOCTYPE a SYSTEM\"\"", "input":"<!DOCTYPE a SYSTEM\"\"", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM\"#", "input":"<!DOCTYPE a SYSTEM\"#", -"output":["ParseError", ["DOCTYPE", "a", null, "#", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "#", false]]}, {"description":"<!DOCTYPE a SYSTEM\"&", "input":"<!DOCTYPE a SYSTEM\"&", -"output":["ParseError", ["DOCTYPE", "a", null, "&", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, {"description":"<!DOCTYPE a SYSTEM\"'", "input":"<!DOCTYPE a SYSTEM\"'", -"output":["ParseError", ["DOCTYPE", "a", null, "'", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "'", false]]}, {"description":"<!DOCTYPE a SYSTEM\"-", "input":"<!DOCTYPE a SYSTEM\"-", -"output":["ParseError", ["DOCTYPE", "a", null, "-", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, {"description":"<!DOCTYPE a SYSTEM\"/", "input":"<!DOCTYPE a SYSTEM\"/", -"output":["ParseError", ["DOCTYPE", "a", null, "/", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, {"description":"<!DOCTYPE a SYSTEM\"0", "input":"<!DOCTYPE a SYSTEM\"0", -"output":["ParseError", ["DOCTYPE", "a", null, "0", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, {"description":"<!DOCTYPE a SYSTEM\"1", "input":"<!DOCTYPE a SYSTEM\"1", -"output":["ParseError", ["DOCTYPE", "a", null, "1", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, {"description":"<!DOCTYPE a SYSTEM\"9", "input":"<!DOCTYPE a SYSTEM\"9", -"output":["ParseError", ["DOCTYPE", "a", null, "9", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, {"description":"<!DOCTYPE a SYSTEM\"<", "input":"<!DOCTYPE a SYSTEM\"<", -"output":["ParseError", ["DOCTYPE", "a", null, "<", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, {"description":"<!DOCTYPE a SYSTEM\"=", "input":"<!DOCTYPE a SYSTEM\"=", -"output":["ParseError", ["DOCTYPE", "a", null, "=", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, {"description":"<!DOCTYPE a SYSTEM\">", "input":"<!DOCTYPE a SYSTEM\">", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM\"?", "input":"<!DOCTYPE a SYSTEM\"?", -"output":["ParseError", ["DOCTYPE", "a", null, "?", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, {"description":"<!DOCTYPE a SYSTEM\"@", "input":"<!DOCTYPE a SYSTEM\"@", -"output":["ParseError", ["DOCTYPE", "a", null, "@", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, {"description":"<!DOCTYPE a SYSTEM\"A", "input":"<!DOCTYPE a SYSTEM\"A", -"output":["ParseError", ["DOCTYPE", "a", null, "A", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, {"description":"<!DOCTYPE a SYSTEM\"B", "input":"<!DOCTYPE a SYSTEM\"B", -"output":["ParseError", ["DOCTYPE", "a", null, "B", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, {"description":"<!DOCTYPE a SYSTEM\"Y", "input":"<!DOCTYPE a SYSTEM\"Y", -"output":["ParseError", ["DOCTYPE", "a", null, "Y", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, {"description":"<!DOCTYPE a SYSTEM\"Z", "input":"<!DOCTYPE a SYSTEM\"Z", -"output":["ParseError", ["DOCTYPE", "a", null, "Z", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, {"description":"<!DOCTYPE a SYSTEM\"`", "input":"<!DOCTYPE a SYSTEM\"`", -"output":["ParseError", ["DOCTYPE", "a", null, "`", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, {"description":"<!DOCTYPE a SYSTEM\"a", "input":"<!DOCTYPE a SYSTEM\"a", -"output":["ParseError", ["DOCTYPE", "a", null, "a", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, {"description":"<!DOCTYPE a SYSTEM\"b", "input":"<!DOCTYPE a SYSTEM\"b", -"output":["ParseError", ["DOCTYPE", "a", null, "b", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, {"description":"<!DOCTYPE a SYSTEM\"y", "input":"<!DOCTYPE a SYSTEM\"y", -"output":["ParseError", ["DOCTYPE", "a", null, "y", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, {"description":"<!DOCTYPE a SYSTEM\"z", "input":"<!DOCTYPE a SYSTEM\"z", -"output":["ParseError", ["DOCTYPE", "a", null, "z", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, {"description":"<!DOCTYPE a SYSTEM\"{", "input":"<!DOCTYPE a SYSTEM\"{", -"output":["ParseError", ["DOCTYPE", "a", null, "{", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, {"description":"<!DOCTYPE a SYSTEM\"\\uDBC0\\uDC00", "input":"<!DOCTYPE a SYSTEM\"\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, {"description":"<!DOCTYPE a SYSTEM#", "input":"<!DOCTYPE a SYSTEM#", @@ -1894,47 +1942,47 @@ {"description":"<!DOCTYPE a SYSTEM'", "input":"<!DOCTYPE a SYSTEM'", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM'\\u0000", "input":"<!DOCTYPE a SYSTEM'\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, {"description":"<!DOCTYPE a SYSTEM'\\u0009", "input":"<!DOCTYPE a SYSTEM'\u0009", -"output":["ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, {"description":"<!DOCTYPE a SYSTEM'\\u000A", "input":"<!DOCTYPE a SYSTEM'\u000A", -"output":["ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, {"description":"<!DOCTYPE a SYSTEM'\\u000B", "input":"<!DOCTYPE a SYSTEM'\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, {"description":"<!DOCTYPE a SYSTEM'\\u000C", "input":"<!DOCTYPE a SYSTEM'\u000C", -"output":["ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, {"description":"<!DOCTYPE a SYSTEM' ", "input":"<!DOCTYPE a SYSTEM' ", -"output":["ParseError", ["DOCTYPE", "a", null, " ", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, {"description":"<!DOCTYPE a SYSTEM'!", "input":"<!DOCTYPE a SYSTEM'!", -"output":["ParseError", ["DOCTYPE", "a", null, "!", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, {"description":"<!DOCTYPE a SYSTEM'\"", "input":"<!DOCTYPE a SYSTEM'\"", -"output":["ParseError", ["DOCTYPE", "a", null, "\"", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\"", false]]}, {"description":"<!DOCTYPE a SYSTEM'&", "input":"<!DOCTYPE a SYSTEM'&", -"output":["ParseError", ["DOCTYPE", "a", null, "&", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, {"description":"<!DOCTYPE a SYSTEM''", "input":"<!DOCTYPE a SYSTEM''", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM''\\u0000", "input":"<!DOCTYPE a SYSTEM''\u0000", @@ -1942,223 +1990,223 @@ {"description":"<!DOCTYPE a SYSTEM''\\u0008", "input":"<!DOCTYPE a SYSTEM''\u0008", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''\\u0009", "input":"<!DOCTYPE a SYSTEM''\u0009", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM''\\u000A", "input":"<!DOCTYPE a SYSTEM''\u000A", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM''\\u000B", "input":"<!DOCTYPE a SYSTEM''\u000B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''\\u000C", "input":"<!DOCTYPE a SYSTEM''\u000C", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM''\\u000D", "input":"<!DOCTYPE a SYSTEM''\u000D", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM''\\u001F", "input":"<!DOCTYPE a SYSTEM''\u001F", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM'' ", "input":"<!DOCTYPE a SYSTEM'' ", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM''!", "input":"<!DOCTYPE a SYSTEM''!", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''\"", "input":"<!DOCTYPE a SYSTEM''\"", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''&", "input":"<!DOCTYPE a SYSTEM''&", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM'''", "input":"<!DOCTYPE a SYSTEM'''", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''-", "input":"<!DOCTYPE a SYSTEM''-", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''/", "input":"<!DOCTYPE a SYSTEM''/", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''0", "input":"<!DOCTYPE a SYSTEM''0", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''1", "input":"<!DOCTYPE a SYSTEM''1", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''9", "input":"<!DOCTYPE a SYSTEM''9", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''<", "input":"<!DOCTYPE a SYSTEM''<", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''=", "input":"<!DOCTYPE a SYSTEM''=", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''>", "input":"<!DOCTYPE a SYSTEM''>", -"output":[["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''?", "input":"<!DOCTYPE a SYSTEM''?", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''@", "input":"<!DOCTYPE a SYSTEM''@", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''A", "input":"<!DOCTYPE a SYSTEM''A", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''B", "input":"<!DOCTYPE a SYSTEM''B", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''Y", "input":"<!DOCTYPE a SYSTEM''Y", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''Z", "input":"<!DOCTYPE a SYSTEM''Z", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''`", "input":"<!DOCTYPE a SYSTEM''`", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''a", "input":"<!DOCTYPE a SYSTEM''a", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''b", "input":"<!DOCTYPE a SYSTEM''b", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''y", "input":"<!DOCTYPE a SYSTEM''y", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''z", "input":"<!DOCTYPE a SYSTEM''z", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''{", "input":"<!DOCTYPE a SYSTEM''{", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM''\\uDBC0\\uDC00", "input":"<!DOCTYPE a SYSTEM''\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPE a SYSTEM'(", "input":"<!DOCTYPE a SYSTEM'(", -"output":["ParseError", ["DOCTYPE", "a", null, "(", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "(", false]]}, {"description":"<!DOCTYPE a SYSTEM'-", "input":"<!DOCTYPE a SYSTEM'-", -"output":["ParseError", ["DOCTYPE", "a", null, "-", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, {"description":"<!DOCTYPE a SYSTEM'/", "input":"<!DOCTYPE a SYSTEM'/", -"output":["ParseError", ["DOCTYPE", "a", null, "/", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, {"description":"<!DOCTYPE a SYSTEM'0", "input":"<!DOCTYPE a SYSTEM'0", -"output":["ParseError", ["DOCTYPE", "a", null, "0", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, {"description":"<!DOCTYPE a SYSTEM'1", "input":"<!DOCTYPE a SYSTEM'1", -"output":["ParseError", ["DOCTYPE", "a", null, "1", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, {"description":"<!DOCTYPE a SYSTEM'9", "input":"<!DOCTYPE a SYSTEM'9", -"output":["ParseError", ["DOCTYPE", "a", null, "9", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, {"description":"<!DOCTYPE a SYSTEM'<", "input":"<!DOCTYPE a SYSTEM'<", -"output":["ParseError", ["DOCTYPE", "a", null, "<", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, {"description":"<!DOCTYPE a SYSTEM'=", "input":"<!DOCTYPE a SYSTEM'=", -"output":["ParseError", ["DOCTYPE", "a", null, "=", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, {"description":"<!DOCTYPE a SYSTEM'>", "input":"<!DOCTYPE a SYSTEM'>", -"output":["ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPE a SYSTEM'?", "input":"<!DOCTYPE a SYSTEM'?", -"output":["ParseError", ["DOCTYPE", "a", null, "?", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, {"description":"<!DOCTYPE a SYSTEM'@", "input":"<!DOCTYPE a SYSTEM'@", -"output":["ParseError", ["DOCTYPE", "a", null, "@", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, {"description":"<!DOCTYPE a SYSTEM'A", "input":"<!DOCTYPE a SYSTEM'A", -"output":["ParseError", ["DOCTYPE", "a", null, "A", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, {"description":"<!DOCTYPE a SYSTEM'B", "input":"<!DOCTYPE a SYSTEM'B", -"output":["ParseError", ["DOCTYPE", "a", null, "B", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, {"description":"<!DOCTYPE a SYSTEM'Y", "input":"<!DOCTYPE a SYSTEM'Y", -"output":["ParseError", ["DOCTYPE", "a", null, "Y", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, {"description":"<!DOCTYPE a SYSTEM'Z", "input":"<!DOCTYPE a SYSTEM'Z", -"output":["ParseError", ["DOCTYPE", "a", null, "Z", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, {"description":"<!DOCTYPE a SYSTEM'`", "input":"<!DOCTYPE a SYSTEM'`", -"output":["ParseError", ["DOCTYPE", "a", null, "`", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, {"description":"<!DOCTYPE a SYSTEM'a", "input":"<!DOCTYPE a SYSTEM'a", -"output":["ParseError", ["DOCTYPE", "a", null, "a", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, {"description":"<!DOCTYPE a SYSTEM'b", "input":"<!DOCTYPE a SYSTEM'b", -"output":["ParseError", ["DOCTYPE", "a", null, "b", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, {"description":"<!DOCTYPE a SYSTEM'y", "input":"<!DOCTYPE a SYSTEM'y", -"output":["ParseError", ["DOCTYPE", "a", null, "y", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, {"description":"<!DOCTYPE a SYSTEM'z", "input":"<!DOCTYPE a SYSTEM'z", -"output":["ParseError", ["DOCTYPE", "a", null, "z", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, {"description":"<!DOCTYPE a SYSTEM'{", "input":"<!DOCTYPE a SYSTEM'{", -"output":["ParseError", ["DOCTYPE", "a", null, "{", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, {"description":"<!DOCTYPE a SYSTEM'\\uDBC0\\uDC00", "input":"<!DOCTYPE a SYSTEM'\uDBC0\uDC00", -"output":["ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, {"description":"<!DOCTYPE a SYSTEM(", "input":"<!DOCTYPE a SYSTEM(", @@ -2266,7 +2314,7 @@ {"description":"<!DOCTYPE a a\\u0000", "input":"<!DOCTYPE a a\u0000", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, +"output":["ParseError", ["DOCTYPE", "a", null, null, false]]}, {"description":"<!DOCTYPE a a\\u0009", "input":"<!DOCTYPE a a\u0009", @@ -2578,7 +2626,7 @@ {"description":"<!DOCTYPE>", "input":"<!DOCTYPE>", -"output":["ParseError", "ParseError", ["DOCTYPE", "", null, null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", null, null, null, false]]}, {"description":"<!DOCTYPE?", "input":"<!DOCTYPE?", @@ -2650,7 +2698,7 @@ {"description":"<!DOCTYPEa \\u0000", "input":"<!DOCTYPEa \u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, {"description":"<!DOCTYPEa \\u0008", "input":"<!DOCTYPEa \u0008", @@ -2754,7 +2802,7 @@ {"description":"<!DOCTYPEa PUBLIC\\u0000", "input":"<!DOCTYPEa PUBLIC\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, {"description":"<!DOCTYPEa PUBLIC\\u0008", "input":"<!DOCTYPEa PUBLIC\u0008", @@ -2794,135 +2842,135 @@ {"description":"<!DOCTYPEa PUBLIC\"", "input":"<!DOCTYPEa PUBLIC\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"\\u0000", "input":"<!DOCTYPEa PUBLIC\"\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"\\u0009", "input":"<!DOCTYPEa PUBLIC\"\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"\\u000A", "input":"<!DOCTYPEa PUBLIC\"\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"\\u000B", "input":"<!DOCTYPEa PUBLIC\"\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"\\u000C", "input":"<!DOCTYPEa PUBLIC\"\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\" ", "input":"<!DOCTYPEa PUBLIC\" ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"!", "input":"<!DOCTYPEa PUBLIC\"!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"\"", "input":"<!DOCTYPEa PUBLIC\"\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"#", "input":"<!DOCTYPEa PUBLIC\"#", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "#", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "#", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"&", "input":"<!DOCTYPEa PUBLIC\"&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"'", "input":"<!DOCTYPEa PUBLIC\"'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "'", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "'", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"-", "input":"<!DOCTYPEa PUBLIC\"-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"/", "input":"<!DOCTYPEa PUBLIC\"/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"0", "input":"<!DOCTYPEa PUBLIC\"0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"1", "input":"<!DOCTYPEa PUBLIC\"1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"9", "input":"<!DOCTYPEa PUBLIC\"9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"<", "input":"<!DOCTYPEa PUBLIC\"<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"=", "input":"<!DOCTYPEa PUBLIC\"=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\">", "input":"<!DOCTYPEa PUBLIC\">", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"?", "input":"<!DOCTYPEa PUBLIC\"?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"@", "input":"<!DOCTYPEa PUBLIC\"@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"A", "input":"<!DOCTYPEa PUBLIC\"A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"B", "input":"<!DOCTYPEa PUBLIC\"B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"Y", "input":"<!DOCTYPEa PUBLIC\"Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"Z", "input":"<!DOCTYPEa PUBLIC\"Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"`", "input":"<!DOCTYPEa PUBLIC\"`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"a", "input":"<!DOCTYPEa PUBLIC\"a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"b", "input":"<!DOCTYPEa PUBLIC\"b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"y", "input":"<!DOCTYPEa PUBLIC\"y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"z", "input":"<!DOCTYPEa PUBLIC\"z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"{", "input":"<!DOCTYPEa PUBLIC\"{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, {"description":"<!DOCTYPEa PUBLIC\"\\uDBC0\\uDC00", "input":"<!DOCTYPEa PUBLIC\"\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, {"description":"<!DOCTYPEa PUBLIC#", "input":"<!DOCTYPEa PUBLIC#", @@ -2934,47 +2982,47 @@ {"description":"<!DOCTYPEa PUBLIC'", "input":"<!DOCTYPEa PUBLIC'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'\\u0000", "input":"<!DOCTYPEa PUBLIC'\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uFFFD", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'\\u0009", "input":"<!DOCTYPEa PUBLIC'\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u0009", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'\\u000A", "input":"<!DOCTYPEa PUBLIC'\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000A", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'\\u000B", "input":"<!DOCTYPEa PUBLIC'\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000B", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'\\u000C", "input":"<!DOCTYPEa PUBLIC'\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\u000C", null, false]]}, {"description":"<!DOCTYPEa PUBLIC' ", "input":"<!DOCTYPEa PUBLIC' ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", " ", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'!", "input":"<!DOCTYPEa PUBLIC'!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "!", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'\"", "input":"<!DOCTYPEa PUBLIC'\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\"", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\"", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'&", "input":"<!DOCTYPEa PUBLIC'&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "&", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''", "input":"<!DOCTYPEa PUBLIC''", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\\u0000", "input":"<!DOCTYPEa PUBLIC''\u0000", @@ -2982,231 +3030,231 @@ {"description":"<!DOCTYPEa PUBLIC''\\u0008", "input":"<!DOCTYPEa PUBLIC''\u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\\u0009", "input":"<!DOCTYPEa PUBLIC''\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\\u000A", "input":"<!DOCTYPEa PUBLIC''\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\\u000B", "input":"<!DOCTYPEa PUBLIC''\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\\u000C", "input":"<!DOCTYPEa PUBLIC''\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\\u000D", "input":"<!DOCTYPEa PUBLIC''\u000D", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\\u001F", "input":"<!DOCTYPEa PUBLIC''\u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'' ", "input":"<!DOCTYPEa PUBLIC'' ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''!", "input":"<!DOCTYPEa PUBLIC''!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\"", "input":"<!DOCTYPEa PUBLIC''\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, {"description":"<!DOCTYPEa PUBLIC''#", "input":"<!DOCTYPEa PUBLIC''#", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''&", "input":"<!DOCTYPEa PUBLIC''&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'''", "input":"<!DOCTYPEa PUBLIC'''", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", "", false]]}, {"description":"<!DOCTYPEa PUBLIC''(", "input":"<!DOCTYPEa PUBLIC''(", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''-", "input":"<!DOCTYPEa PUBLIC''-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''/", "input":"<!DOCTYPEa PUBLIC''/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''0", "input":"<!DOCTYPEa PUBLIC''0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''1", "input":"<!DOCTYPEa PUBLIC''1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''9", "input":"<!DOCTYPEa PUBLIC''9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''<", "input":"<!DOCTYPEa PUBLIC''<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''=", "input":"<!DOCTYPEa PUBLIC''=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''>", "input":"<!DOCTYPEa PUBLIC''>", -"output":["ParseError", ["DOCTYPE", "a", "", null, true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, true]]}, {"description":"<!DOCTYPEa PUBLIC''?", "input":"<!DOCTYPEa PUBLIC''?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''@", "input":"<!DOCTYPEa PUBLIC''@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''A", "input":"<!DOCTYPEa PUBLIC''A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''B", "input":"<!DOCTYPEa PUBLIC''B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''Y", "input":"<!DOCTYPEa PUBLIC''Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''Z", "input":"<!DOCTYPEa PUBLIC''Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''`", "input":"<!DOCTYPEa PUBLIC''`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''a", "input":"<!DOCTYPEa PUBLIC''a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''b", "input":"<!DOCTYPEa PUBLIC''b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''y", "input":"<!DOCTYPEa PUBLIC''y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''z", "input":"<!DOCTYPEa PUBLIC''z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''{", "input":"<!DOCTYPEa PUBLIC''{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC''\\uDBC0\\uDC00", "input":"<!DOCTYPEa PUBLIC''\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'(", "input":"<!DOCTYPEa PUBLIC'(", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "(", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "(", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'-", "input":"<!DOCTYPEa PUBLIC'-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "-", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'/", "input":"<!DOCTYPEa PUBLIC'/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "/", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'0", "input":"<!DOCTYPEa PUBLIC'0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "0", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'1", "input":"<!DOCTYPEa PUBLIC'1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "1", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'9", "input":"<!DOCTYPEa PUBLIC'9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "9", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'<", "input":"<!DOCTYPEa PUBLIC'<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "<", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'=", "input":"<!DOCTYPEa PUBLIC'=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "=", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'>", "input":"<!DOCTYPEa PUBLIC'>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'?", "input":"<!DOCTYPEa PUBLIC'?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "?", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'@", "input":"<!DOCTYPEa PUBLIC'@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "@", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'A", "input":"<!DOCTYPEa PUBLIC'A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "A", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'B", "input":"<!DOCTYPEa PUBLIC'B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "B", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'Y", "input":"<!DOCTYPEa PUBLIC'Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Y", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'Z", "input":"<!DOCTYPEa PUBLIC'Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "Z", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'`", "input":"<!DOCTYPEa PUBLIC'`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "`", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'a", "input":"<!DOCTYPEa PUBLIC'a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "a", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'b", "input":"<!DOCTYPEa PUBLIC'b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "b", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'y", "input":"<!DOCTYPEa PUBLIC'y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "y", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'z", "input":"<!DOCTYPEa PUBLIC'z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "z", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'{", "input":"<!DOCTYPEa PUBLIC'{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "{", null, false]]}, {"description":"<!DOCTYPEa PUBLIC'\\uDBC0\\uDC00", "input":"<!DOCTYPEa PUBLIC'\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", "\uDBC0\uDC00", null, false]]}, {"description":"<!DOCTYPEa PUBLIC(", "input":"<!DOCTYPEa PUBLIC(", @@ -3302,7 +3350,7 @@ {"description":"<!DOCTYPEa SYSTEM\\u0000", "input":"<!DOCTYPEa SYSTEM\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, {"description":"<!DOCTYPEa SYSTEM\\u0008", "input":"<!DOCTYPEa SYSTEM\u0008", @@ -3342,135 +3390,135 @@ {"description":"<!DOCTYPEa SYSTEM\"", "input":"<!DOCTYPEa SYSTEM\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM\"\\u0000", "input":"<!DOCTYPEa SYSTEM\"\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, {"description":"<!DOCTYPEa SYSTEM\"\\u0009", "input":"<!DOCTYPEa SYSTEM\"\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, {"description":"<!DOCTYPEa SYSTEM\"\\u000A", "input":"<!DOCTYPEa SYSTEM\"\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, {"description":"<!DOCTYPEa SYSTEM\"\\u000B", "input":"<!DOCTYPEa SYSTEM\"\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, {"description":"<!DOCTYPEa SYSTEM\"\\u000C", "input":"<!DOCTYPEa SYSTEM\"\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, {"description":"<!DOCTYPEa SYSTEM\" ", "input":"<!DOCTYPEa SYSTEM\" ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, {"description":"<!DOCTYPEa SYSTEM\"!", "input":"<!DOCTYPEa SYSTEM\"!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, {"description":"<!DOCTYPEa SYSTEM\"\"", "input":"<!DOCTYPEa SYSTEM\"\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM\"#", "input":"<!DOCTYPEa SYSTEM\"#", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "#", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "#", false]]}, {"description":"<!DOCTYPEa SYSTEM\"&", "input":"<!DOCTYPEa SYSTEM\"&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, {"description":"<!DOCTYPEa SYSTEM\"'", "input":"<!DOCTYPEa SYSTEM\"'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "'", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "'", false]]}, {"description":"<!DOCTYPEa SYSTEM\"-", "input":"<!DOCTYPEa SYSTEM\"-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, {"description":"<!DOCTYPEa SYSTEM\"/", "input":"<!DOCTYPEa SYSTEM\"/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, {"description":"<!DOCTYPEa SYSTEM\"0", "input":"<!DOCTYPEa SYSTEM\"0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, {"description":"<!DOCTYPEa SYSTEM\"1", "input":"<!DOCTYPEa SYSTEM\"1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, {"description":"<!DOCTYPEa SYSTEM\"9", "input":"<!DOCTYPEa SYSTEM\"9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, {"description":"<!DOCTYPEa SYSTEM\"<", "input":"<!DOCTYPEa SYSTEM\"<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, {"description":"<!DOCTYPEa SYSTEM\"=", "input":"<!DOCTYPEa SYSTEM\"=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, {"description":"<!DOCTYPEa SYSTEM\">", "input":"<!DOCTYPEa SYSTEM\">", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM\"?", "input":"<!DOCTYPEa SYSTEM\"?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, {"description":"<!DOCTYPEa SYSTEM\"@", "input":"<!DOCTYPEa SYSTEM\"@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, {"description":"<!DOCTYPEa SYSTEM\"A", "input":"<!DOCTYPEa SYSTEM\"A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, {"description":"<!DOCTYPEa SYSTEM\"B", "input":"<!DOCTYPEa SYSTEM\"B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, {"description":"<!DOCTYPEa SYSTEM\"Y", "input":"<!DOCTYPEa SYSTEM\"Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, {"description":"<!DOCTYPEa SYSTEM\"Z", "input":"<!DOCTYPEa SYSTEM\"Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, {"description":"<!DOCTYPEa SYSTEM\"`", "input":"<!DOCTYPEa SYSTEM\"`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, {"description":"<!DOCTYPEa SYSTEM\"a", "input":"<!DOCTYPEa SYSTEM\"a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, {"description":"<!DOCTYPEa SYSTEM\"b", "input":"<!DOCTYPEa SYSTEM\"b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, {"description":"<!DOCTYPEa SYSTEM\"y", "input":"<!DOCTYPEa SYSTEM\"y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, {"description":"<!DOCTYPEa SYSTEM\"z", "input":"<!DOCTYPEa SYSTEM\"z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, {"description":"<!DOCTYPEa SYSTEM\"{", "input":"<!DOCTYPEa SYSTEM\"{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, {"description":"<!DOCTYPEa SYSTEM\"\\uDBC0\\uDC00", "input":"<!DOCTYPEa SYSTEM\"\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, {"description":"<!DOCTYPEa SYSTEM#", "input":"<!DOCTYPEa SYSTEM#", @@ -3482,47 +3530,47 @@ {"description":"<!DOCTYPEa SYSTEM'", "input":"<!DOCTYPEa SYSTEM'", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM'\\u0000", "input":"<!DOCTYPEa SYSTEM'\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uFFFD", false]]}, {"description":"<!DOCTYPEa SYSTEM'\\u0009", "input":"<!DOCTYPEa SYSTEM'\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u0009", false]]}, {"description":"<!DOCTYPEa SYSTEM'\\u000A", "input":"<!DOCTYPEa SYSTEM'\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000A", false]]}, {"description":"<!DOCTYPEa SYSTEM'\\u000B", "input":"<!DOCTYPEa SYSTEM'\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000B", false]]}, {"description":"<!DOCTYPEa SYSTEM'\\u000C", "input":"<!DOCTYPEa SYSTEM'\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\u000C", false]]}, {"description":"<!DOCTYPEa SYSTEM' ", "input":"<!DOCTYPEa SYSTEM' ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, " ", false]]}, {"description":"<!DOCTYPEa SYSTEM'!", "input":"<!DOCTYPEa SYSTEM'!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "!", false]]}, {"description":"<!DOCTYPEa SYSTEM'\"", "input":"<!DOCTYPEa SYSTEM'\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\"", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\"", false]]}, {"description":"<!DOCTYPEa SYSTEM'&", "input":"<!DOCTYPEa SYSTEM'&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "&", false]]}, {"description":"<!DOCTYPEa SYSTEM''", "input":"<!DOCTYPEa SYSTEM''", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM''\\u0000", "input":"<!DOCTYPEa SYSTEM''\u0000", @@ -3530,223 +3578,223 @@ {"description":"<!DOCTYPEa SYSTEM''\\u0008", "input":"<!DOCTYPEa SYSTEM''\u0008", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''\\u0009", "input":"<!DOCTYPEa SYSTEM''\u0009", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM''\\u000A", "input":"<!DOCTYPEa SYSTEM''\u000A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM''\\u000B", "input":"<!DOCTYPEa SYSTEM''\u000B", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''\\u000C", "input":"<!DOCTYPEa SYSTEM''\u000C", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM''\\u000D", "input":"<!DOCTYPEa SYSTEM''\u000D", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM''\\u001F", "input":"<!DOCTYPEa SYSTEM''\u001F", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM'' ", "input":"<!DOCTYPEa SYSTEM'' ", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM''!", "input":"<!DOCTYPEa SYSTEM''!", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''\"", "input":"<!DOCTYPEa SYSTEM''\"", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''&", "input":"<!DOCTYPEa SYSTEM''&", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM'''", "input":"<!DOCTYPEa SYSTEM'''", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''-", "input":"<!DOCTYPEa SYSTEM''-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''/", "input":"<!DOCTYPEa SYSTEM''/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''0", "input":"<!DOCTYPEa SYSTEM''0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''1", "input":"<!DOCTYPEa SYSTEM''1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''9", "input":"<!DOCTYPEa SYSTEM''9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''<", "input":"<!DOCTYPEa SYSTEM''<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''=", "input":"<!DOCTYPEa SYSTEM''=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''>", "input":"<!DOCTYPEa SYSTEM''>", -"output":["ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''?", "input":"<!DOCTYPEa SYSTEM''?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''@", "input":"<!DOCTYPEa SYSTEM''@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''A", "input":"<!DOCTYPEa SYSTEM''A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''B", "input":"<!DOCTYPEa SYSTEM''B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''Y", "input":"<!DOCTYPEa SYSTEM''Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''Z", "input":"<!DOCTYPEa SYSTEM''Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''`", "input":"<!DOCTYPEa SYSTEM''`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''a", "input":"<!DOCTYPEa SYSTEM''a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''b", "input":"<!DOCTYPEa SYSTEM''b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''y", "input":"<!DOCTYPEa SYSTEM''y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''z", "input":"<!DOCTYPEa SYSTEM''z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''{", "input":"<!DOCTYPEa SYSTEM''{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM''\\uDBC0\\uDC00", "input":"<!DOCTYPEa SYSTEM''\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", true]]}, {"description":"<!DOCTYPEa SYSTEM'(", "input":"<!DOCTYPEa SYSTEM'(", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "(", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "(", false]]}, {"description":"<!DOCTYPEa SYSTEM'-", "input":"<!DOCTYPEa SYSTEM'-", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "-", false]]}, {"description":"<!DOCTYPEa SYSTEM'/", "input":"<!DOCTYPEa SYSTEM'/", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "/", false]]}, {"description":"<!DOCTYPEa SYSTEM'0", "input":"<!DOCTYPEa SYSTEM'0", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "0", false]]}, {"description":"<!DOCTYPEa SYSTEM'1", "input":"<!DOCTYPEa SYSTEM'1", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "1", false]]}, {"description":"<!DOCTYPEa SYSTEM'9", "input":"<!DOCTYPEa SYSTEM'9", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "9", false]]}, {"description":"<!DOCTYPEa SYSTEM'<", "input":"<!DOCTYPEa SYSTEM'<", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "<", false]]}, {"description":"<!DOCTYPEa SYSTEM'=", "input":"<!DOCTYPEa SYSTEM'=", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "=", false]]}, {"description":"<!DOCTYPEa SYSTEM'>", "input":"<!DOCTYPEa SYSTEM'>", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "", false]]}, {"description":"<!DOCTYPEa SYSTEM'?", "input":"<!DOCTYPEa SYSTEM'?", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "?", false]]}, {"description":"<!DOCTYPEa SYSTEM'@", "input":"<!DOCTYPEa SYSTEM'@", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "@", false]]}, {"description":"<!DOCTYPEa SYSTEM'A", "input":"<!DOCTYPEa SYSTEM'A", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "A", false]]}, {"description":"<!DOCTYPEa SYSTEM'B", "input":"<!DOCTYPEa SYSTEM'B", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "B", false]]}, {"description":"<!DOCTYPEa SYSTEM'Y", "input":"<!DOCTYPEa SYSTEM'Y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Y", false]]}, {"description":"<!DOCTYPEa SYSTEM'Z", "input":"<!DOCTYPEa SYSTEM'Z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "Z", false]]}, {"description":"<!DOCTYPEa SYSTEM'`", "input":"<!DOCTYPEa SYSTEM'`", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "`", false]]}, {"description":"<!DOCTYPEa SYSTEM'a", "input":"<!DOCTYPEa SYSTEM'a", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "a", false]]}, {"description":"<!DOCTYPEa SYSTEM'b", "input":"<!DOCTYPEa SYSTEM'b", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "b", false]]}, {"description":"<!DOCTYPEa SYSTEM'y", "input":"<!DOCTYPEa SYSTEM'y", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "y", false]]}, {"description":"<!DOCTYPEa SYSTEM'z", "input":"<!DOCTYPEa SYSTEM'z", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "z", false]]}, {"description":"<!DOCTYPEa SYSTEM'{", "input":"<!DOCTYPEa SYSTEM'{", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "{", false]]}, {"description":"<!DOCTYPEa SYSTEM'\\uDBC0\\uDC00", "input":"<!DOCTYPEa SYSTEM'\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, +"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, "\uDBC0\uDC00", false]]}, {"description":"<!DOCTYPEa SYSTEM(", "input":"<!DOCTYPEa SYSTEM(", @@ -3854,7 +3902,7 @@ {"description":"<!DOCTYPEa a\\u0000", "input":"<!DOCTYPEa a\u0000", -"output":["ParseError", "ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, +"output":["ParseError", "ParseError", ["DOCTYPE", "a", null, null, false]]}, {"description":"<!DOCTYPEa a\\u0009", "input":"<!DOCTYPEa a\u0009", @@ -4182,7 +4230,7 @@ {"description":"</\\u0000", "input":"</\u0000", -"output":["ParseError", "ParseError", ["Comment", "\uFFFD"]]}, +"output":["ParseError", ["Comment", "\uFFFD"]]}, {"description":"</\\u0009", "input":"</\u0009", @@ -4260,21 +4308,21 @@ "input":"</@", "output":["ParseError", ["Comment", "@"]]}, -{"description":"</A", -"input":"</A", -"output":["ParseError", ["EndTag", "a"]]}, +{"description":"</A>", +"input":"</A>", +"output":[["EndTag", "a"]]}, -{"description":"</B", -"input":"</B", -"output":["ParseError", ["EndTag", "b"]]}, +{"description":"</B>", +"input":"</B>", +"output":[["EndTag", "b"]]}, -{"description":"</Y", -"input":"</Y", -"output":["ParseError", ["EndTag", "y"]]}, +{"description":"</Y>", +"input":"</Y>", +"output":[["EndTag", "y"]]}, -{"description":"</Z", -"input":"</Z", -"output":["ParseError", ["EndTag", "z"]]}, +{"description":"</Z>", +"input":"</Z>", +"output":[["EndTag", "z"]]}, {"description":"</[", "input":"</[", @@ -4284,21 +4332,21 @@ "input":"</`", "output":["ParseError", ["Comment", "`"]]}, -{"description":"</a", -"input":"</a", -"output":["ParseError", ["EndTag", "a"]]}, +{"description":"</a>", +"input":"</a>", +"output":[["EndTag", "a"]]}, -{"description":"</b", -"input":"</b", -"output":["ParseError", ["EndTag", "b"]]}, +{"description":"</b>", +"input":"</b>", +"output":[["EndTag", "b"]]}, -{"description":"</y", -"input":"</y", -"output":["ParseError", ["EndTag", "y"]]}, +{"description":"</y>", +"input":"</y>", +"output":[["EndTag", "y"]]}, -{"description":"</z", -"input":"</z", -"output":["ParseError", ["EndTag", "z"]]}, +{"description":"</z>", +"input":"</z>", +"output":[["EndTag", "z"]]}, {"description":"</{", "input":"</{", @@ -4338,7 +4386,7 @@ {"description":"<?\\u0000", "input":"<?\u0000", -"output":["ParseError", "ParseError", ["Comment", "?\uFFFD"]]}, +"output":["ParseError", ["Comment", "?\uFFFD"]]}, {"description":"<?\\u0009", "input":"<?\u0009", @@ -4464,21 +4512,21 @@ "input":"<@", "output":["ParseError", ["Character", "<@"]]}, -{"description":"<A", -"input":"<A", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<A>", +"input":"<A>", +"output":[["StartTag", "a", {}]]}, -{"description":"<B", -"input":"<B", -"output":["ParseError", ["StartTag", "b", {}]]}, +{"description":"<B>", +"input":"<B>", +"output":[["StartTag", "b", {}]]}, -{"description":"<Y", -"input":"<Y", -"output":["ParseError", ["StartTag", "y", {}]]}, +{"description":"<Y>", +"input":"<Y>", +"output":[["StartTag", "y", {}]]}, -{"description":"<Z", -"input":"<Z", -"output":["ParseError", ["StartTag", "z", {}]]}, +{"description":"<Z>", +"input":"<Z>", +"output":[["StartTag", "z", {}]]}, {"description":"<[", "input":"<[", @@ -4488,1445 +4536,1445 @@ "input":"<`", "output":["ParseError", ["Character", "<`"]]}, -{"description":"<a", -"input":"<a", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a>", +"input":"<a>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a\\u0000", -"input":"<a\u0000", -"output":["ParseError", "ParseError", ["StartTag", "a\uFFFD", {}]]}, +{"description":"<a\\u0000>", +"input":"<a\u0000>", +"output":["ParseError", ["StartTag", "a\uFFFD", {}]]}, -{"description":"<a\\u0008", -"input":"<a\u0008", -"output":["ParseError", "ParseError", ["StartTag", "a\u0008", {}]]}, +{"description":"<a\\u0008>", +"input":"<a\u0008>", +"output":["ParseError", ["StartTag", "a\u0008", {}]]}, -{"description":"<a\\u0009", -"input":"<a\u0009", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a\\u0009>", +"input":"<a\u0009>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a\\u000A", -"input":"<a\u000A", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a\\u000A>", +"input":"<a\u000A>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a\\u000B", -"input":"<a\u000B", -"output":["ParseError", "ParseError", ["StartTag", "a\u000B", {}]]}, +{"description":"<a\\u000B>", +"input":"<a\u000B>", +"output":["ParseError", ["StartTag", "a\u000B", {}]]}, -{"description":"<a\\u000C", -"input":"<a\u000C", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a\\u000C>", +"input":"<a\u000C>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a\\u000D", -"input":"<a\u000D", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a\\u000D>", +"input":"<a\u000D>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a\\u001F", -"input":"<a\u001F", -"output":["ParseError", "ParseError", ["StartTag", "a\u001F", {}]]}, +{"description":"<a\\u001F>", +"input":"<a\u001F>", +"output":["ParseError", ["StartTag", "a\u001F", {}]]}, -{"description":"<a ", -"input":"<a ", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a >", +"input":"<a >", +"output":[["StartTag", "a", {}]]}, -{"description":"<a \\u0000", -"input":"<a \u0000", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\uFFFD":""}]]}, +{"description":"<a \\u0000>", +"input":"<a \u0000>", +"output":["ParseError", ["StartTag", "a", {"\uFFFD":""}]]}, -{"description":"<a \\u0008", -"input":"<a \u0008", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\u0008":""}]]}, +{"description":"<a \\u0008>", +"input":"<a \u0008>", +"output":["ParseError", ["StartTag", "a", {"\u0008":""}]]}, -{"description":"<a \\u0009", -"input":"<a \u0009", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a \\u0009>", +"input":"<a \u0009>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a \\u000A", -"input":"<a \u000A", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a \\u000A>", +"input":"<a \u000A>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a \\u000B", -"input":"<a \u000B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\u000B":""}]]}, +{"description":"<a \\u000B>", +"input":"<a \u000B>", +"output":["ParseError", ["StartTag", "a", {"\u000B":""}]]}, -{"description":"<a \\u000C", -"input":"<a \u000C", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a \\u000C>", +"input":"<a \u000C>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a \\u000D", -"input":"<a \u000D", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a \\u000D>", +"input":"<a \u000D>", +"output":[["StartTag", "a", {}]]}, -{"description":"<a \\u001F", -"input":"<a \u001F", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\u001F":""}]]}, +{"description":"<a \\u001F>", +"input":"<a \u001F>", +"output":["ParseError", ["StartTag", "a", {"\u001F":""}]]}, -{"description":"<a ", -"input":"<a ", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a >", +"input":"<a >", +"output":[["StartTag", "a", {}]]}, -{"description":"<a !", -"input":"<a !", -"output":["ParseError", ["StartTag", "a", {"!":""}]]}, +{"description":"<a !>", +"input":"<a !>", +"output":[["StartTag", "a", {"!":""}]]}, -{"description":"<a \"", -"input":"<a \"", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\"":""}]]}, +{"description":"<a \">", +"input":"<a \">", +"output":["ParseError", ["StartTag", "a", {"\"":""}]]}, -{"description":"<a #", -"input":"<a #", -"output":["ParseError", ["StartTag", "a", {"#":""}]]}, +{"description":"<a #>", +"input":"<a #>", +"output":[["StartTag", "a", {"#":""}]]}, -{"description":"<a &", -"input":"<a &", -"output":["ParseError", ["StartTag", "a", {"&":""}]]}, +{"description":"<a &>", +"input":"<a &>", +"output":[["StartTag", "a", {"&":""}]]}, -{"description":"<a '", -"input":"<a '", -"output":["ParseError", "ParseError", ["StartTag", "a", {"'":""}]]}, +{"description":"<a '>", +"input":"<a '>", +"output":["ParseError", ["StartTag", "a", {"'":""}]]}, -{"description":"<a (", -"input":"<a (", -"output":["ParseError", ["StartTag", "a", {"(":""}]]}, +{"description":"<a (>", +"input":"<a (>", +"output":[["StartTag", "a", {"(":""}]]}, -{"description":"<a -", -"input":"<a -", -"output":["ParseError", ["StartTag", "a", {"-":""}]]}, +{"description":"<a ->", +"input":"<a ->", +"output":[["StartTag", "a", {"-":""}]]}, -{"description":"<a .", -"input":"<a .", -"output":["ParseError", ["StartTag", "a", {".":""}]]}, +{"description":"<a .>", +"input":"<a .>", +"output":[["StartTag", "a", {".":""}]]}, -{"description":"<a /", -"input":"<a /", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a />", +"input":"<a />", +"output":[["StartTag", "a", {}, true]]}, -{"description":"<a 0", -"input":"<a 0", -"output":["ParseError", ["StartTag", "a", {"0":""}]]}, +{"description":"<a 0>", +"input":"<a 0>", +"output":[["StartTag", "a", {"0":""}]]}, -{"description":"<a 1", -"input":"<a 1", -"output":["ParseError", ["StartTag", "a", {"1":""}]]}, +{"description":"<a 1>", +"input":"<a 1>", +"output":[["StartTag", "a", {"1":""}]]}, -{"description":"<a 9", -"input":"<a 9", -"output":["ParseError", ["StartTag", "a", {"9":""}]]}, +{"description":"<a 9>", +"input":"<a 9>", +"output":[["StartTag", "a", {"9":""}]]}, -{"description":"<a <", -"input":"<a <", +{"description":"<a <>", +"input":"<a <>", "output":["ParseError", ["StartTag", "a", {"<":""}]]}, -{"description":"<a =", -"input":"<a =", -"output":["ParseError", "ParseError", ["StartTag", "a", {"=":""}]]}, +{"description":"<a =>", +"input":"<a =>", +"output":["ParseError", ["StartTag", "a", {"=":""}]]}, {"description":"<a >", "input":"<a >", "output":[["StartTag", "a", {}]]}, -{"description":"<a ?", -"input":"<a ?", -"output":["ParseError", ["StartTag", "a", {"?":""}]]}, +{"description":"<a ?>", +"input":"<a ?>", +"output":[["StartTag", "a", {"?":""}]]}, -{"description":"<a @", -"input":"<a @", -"output":["ParseError", ["StartTag", "a", {"@":""}]]}, +{"description":"<a @>", +"input":"<a @>", +"output":[["StartTag", "a", {"@":""}]]}, -{"description":"<a A", -"input":"<a A", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a A>", +"input":"<a A>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a B", -"input":"<a B", -"output":["ParseError", ["StartTag", "a", {"b":""}]]}, +{"description":"<a B>", +"input":"<a B>", +"output":[["StartTag", "a", {"b":""}]]}, -{"description":"<a Y", -"input":"<a Y", -"output":["ParseError", ["StartTag", "a", {"y":""}]]}, +{"description":"<a Y>", +"input":"<a Y>", +"output":[["StartTag", "a", {"y":""}]]}, -{"description":"<a Z", -"input":"<a Z", -"output":["ParseError", ["StartTag", "a", {"z":""}]]}, +{"description":"<a Z>", +"input":"<a Z>", +"output":[["StartTag", "a", {"z":""}]]}, -{"description":"<a [", -"input":"<a [", -"output":["ParseError", ["StartTag", "a", {"[":""}]]}, +{"description":"<a [>", +"input":"<a [>", +"output":[["StartTag", "a", {"[":""}]]}, -{"description":"<a `", -"input":"<a `", -"output":["ParseError", ["StartTag", "a", {"`":""}]]}, +{"description":"<a `>", +"input":"<a `>", +"output":[["StartTag", "a", {"`":""}]]}, -{"description":"<a a", -"input":"<a a", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a>", +"input":"<a a>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a\\u0000", -"input":"<a a\u0000", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a\uFFFD":""}]]}, +{"description":"<a a\\u0000>", +"input":"<a a\u0000>", +"output":["ParseError", ["StartTag", "a", {"a\uFFFD":""}]]}, -{"description":"<a a\\u0008", -"input":"<a a\u0008", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a\u0008":""}]]}, +{"description":"<a a\\u0008>", +"input":"<a a\u0008>", +"output":["ParseError", ["StartTag", "a", {"a\u0008":""}]]}, -{"description":"<a a\\u0009", -"input":"<a a\u0009", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a\\u0009>", +"input":"<a a\u0009>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a\\u000A", -"input":"<a a\u000A", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a\\u000A>", +"input":"<a a\u000A>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a\\u000B", -"input":"<a a\u000B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a\u000B":""}]]}, +{"description":"<a a\\u000B>", +"input":"<a a\u000B>", +"output":["ParseError", ["StartTag", "a", {"a\u000B":""}]]}, -{"description":"<a a\\u000C", -"input":"<a a\u000C", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a\\u000C>", +"input":"<a a\u000C>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a\\u000D", -"input":"<a a\u000D", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a\\u000D>", +"input":"<a a\u000D>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a\\u001F", -"input":"<a a\u001F", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a\u001F":""}]]}, +{"description":"<a a\\u001F>", +"input":"<a a\u001F>", +"output":["ParseError", ["StartTag", "a", {"a\u001F":""}]]}, -{"description":"<a a ", -"input":"<a a ", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a >", +"input":"<a a >", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a \\u0000", -"input":"<a a \u0000", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]}, +{"description":"<a a \\u0000>", +"input":"<a a \u0000>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]}, -{"description":"<a a \\u0008", -"input":"<a a \u0008", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]}, +{"description":"<a a \\u0008>", +"input":"<a a \u0008>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]}, -{"description":"<a a \\u0009", -"input":"<a a \u0009", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a \\u0009>", +"input":"<a a \u0009>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a \\u000A", -"input":"<a a \u000A", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a \\u000A>", +"input":"<a a \u000A>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a \\u000B", -"input":"<a a \u000B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]}, +{"description":"<a a \\u000B>", +"input":"<a a \u000B>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]}, -{"description":"<a a \\u000C", -"input":"<a a \u000C", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a \\u000C>", +"input":"<a a \u000C>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a \\u000D", -"input":"<a a \u000D", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a \\u000D>", +"input":"<a a \u000D>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a \\u001F", -"input":"<a a \u001F", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]}, +{"description":"<a a \\u001F>", +"input":"<a a \u001F>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]}, -{"description":"<a a ", -"input":"<a a ", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a >", +"input":"<a a >", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a !", -"input":"<a a !", -"output":["ParseError", ["StartTag", "a", {"a":"", "!":""}]]}, +{"description":"<a a !>", +"input":"<a a !>", +"output":[["StartTag", "a", {"a":"", "!":""}]]}, -{"description":"<a a \"", -"input":"<a a \"", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\"":""}]]}, +{"description":"<a a \">", +"input":"<a a \">", +"output":["ParseError", ["StartTag", "a", {"a":"", "\"":""}]]}, -{"description":"<a a #", -"input":"<a a #", -"output":["ParseError", ["StartTag", "a", {"a":"", "#":""}]]}, +{"description":"<a a #>", +"input":"<a a #>", +"output":[["StartTag", "a", {"a":"", "#":""}]]}, -{"description":"<a a &", -"input":"<a a &", -"output":["ParseError", ["StartTag", "a", {"a":"", "&":""}]]}, +{"description":"<a a &>", +"input":"<a a &>", +"output":[["StartTag", "a", {"a":"", "&":""}]]}, -{"description":"<a a '", -"input":"<a a '", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "'":""}]]}, +{"description":"<a a '>", +"input":"<a a '>", +"output":["ParseError", ["StartTag", "a", {"a":"", "'":""}]]}, -{"description":"<a a (", -"input":"<a a (", -"output":["ParseError", ["StartTag", "a", {"a":"", "(":""}]]}, +{"description":"<a a (>", +"input":"<a a (>", +"output":[["StartTag", "a", {"a":"", "(":""}]]}, -{"description":"<a a -", -"input":"<a a -", -"output":["ParseError", ["StartTag", "a", {"a":"", "-":""}]]}, +{"description":"<a a ->", +"input":"<a a ->", +"output":[["StartTag", "a", {"a":"", "-":""}]]}, -{"description":"<a a .", -"input":"<a a .", -"output":["ParseError", ["StartTag", "a", {"a":"", ".":""}]]}, +{"description":"<a a .>", +"input":"<a a .>", +"output":[["StartTag", "a", {"a":"", ".":""}]]}, -{"description":"<a a /", -"input":"<a a /", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a />", +"input":"<a a />", +"output":[["StartTag", "a", {"a":""}, true]]}, -{"description":"<a a 0", -"input":"<a a 0", -"output":["ParseError", ["StartTag", "a", {"a":"", "0":""}]]}, +{"description":"<a a 0>", +"input":"<a a 0>", +"output":[["StartTag", "a", {"a":"", "0":""}]]}, -{"description":"<a a 1", -"input":"<a a 1", -"output":["ParseError", ["StartTag", "a", {"a":"", "1":""}]]}, +{"description":"<a a 1>", +"input":"<a a 1>", +"output":[["StartTag", "a", {"a":"", "1":""}]]}, -{"description":"<a a 9", -"input":"<a a 9", -"output":["ParseError", ["StartTag", "a", {"a":"", "9":""}]]}, +{"description":"<a a 9>", +"input":"<a a 9>", +"output":[["StartTag", "a", {"a":"", "9":""}]]}, -{"description":"<a a <", -"input":"<a a <", +{"description":"<a a <>", +"input":"<a a <>", "output":["ParseError", ["StartTag", "a", {"a":"", "<":""}]]}, -{"description":"<a a =", -"input":"<a a =", +{"description":"<a a =>", +"input":"<a a =>", "output":["ParseError", ["StartTag", "a", {"a":""}]]}, {"description":"<a a >", "input":"<a a >", "output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a ?", -"input":"<a a ?", -"output":["ParseError", ["StartTag", "a", {"a":"", "?":""}]]}, +{"description":"<a a ?>", +"input":"<a a ?>", +"output":[["StartTag", "a", {"a":"", "?":""}]]}, -{"description":"<a a @", -"input":"<a a @", -"output":["ParseError", ["StartTag", "a", {"a":"", "@":""}]]}, +{"description":"<a a @>", +"input":"<a a @>", +"output":[["StartTag", "a", {"a":"", "@":""}]]}, -{"description":"<a a A", -"input":"<a a A", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a A>", +"input":"<a a A>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a B", -"input":"<a a B", -"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, +{"description":"<a a B>", +"input":"<a a B>", +"output":[["StartTag", "a", {"a":"", "b":""}]]}, -{"description":"<a a Y", -"input":"<a a Y", -"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, +{"description":"<a a Y>", +"input":"<a a Y>", +"output":[["StartTag", "a", {"a":"", "y":""}]]}, -{"description":"<a a Z", -"input":"<a a Z", -"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, +{"description":"<a a Z>", +"input":"<a a Z>", +"output":[["StartTag", "a", {"a":"", "z":""}]]}, -{"description":"<a a [", -"input":"<a a [", -"output":["ParseError", ["StartTag", "a", {"a":"", "[":""}]]}, +{"description":"<a a [>", +"input":"<a a [>", +"output":[["StartTag", "a", {"a":"", "[":""}]]}, -{"description":"<a a `", -"input":"<a a `", -"output":["ParseError", ["StartTag", "a", {"a":"", "`":""}]]}, +{"description":"<a a `>", +"input":"<a a `>", +"output":[["StartTag", "a", {"a":"", "`":""}]]}, -{"description":"<a a a", -"input":"<a a a", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a a>", +"input":"<a a a>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a b", -"input":"<a a b", -"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, +{"description":"<a a b>", +"input":"<a a b>", +"output":[["StartTag", "a", {"a":"", "b":""}]]}, -{"description":"<a a y", -"input":"<a a y", -"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, +{"description":"<a a y>", +"input":"<a a y>", +"output":[["StartTag", "a", {"a":"", "y":""}]]}, -{"description":"<a a z", -"input":"<a a z", -"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, +{"description":"<a a z>", +"input":"<a a z>", +"output":[["StartTag", "a", {"a":"", "z":""}]]}, -{"description":"<a a {", -"input":"<a a {", -"output":["ParseError", ["StartTag", "a", {"a":"", "{":""}]]}, +{"description":"<a a {>", +"input":"<a a {>", +"output":[["StartTag", "a", {"a":"", "{":""}]]}, -{"description":"<a a \\uDBC0\\uDC00", -"input":"<a a \uDBC0\uDC00", -"output":["ParseError", ["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]}, +{"description":"<a a \\uDBC0\\uDC00>", +"input":"<a a \uDBC0\uDC00>", +"output":[["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]}, -{"description":"<a a!", -"input":"<a a!", -"output":["ParseError", ["StartTag", "a", {"a!":""}]]}, +{"description":"<a a!>", +"input":"<a a!>", +"output":[["StartTag", "a", {"a!":""}]]}, -{"description":"<a a\"", -"input":"<a a\"", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a\"":""}]]}, +{"description":"<a a\">", +"input":"<a a\">", +"output":["ParseError", ["StartTag", "a", {"a\"":""}]]}, -{"description":"<a a#", -"input":"<a a#", -"output":["ParseError", ["StartTag", "a", {"a#":""}]]}, +{"description":"<a a#>", +"input":"<a a#>", +"output":[["StartTag", "a", {"a#":""}]]}, -{"description":"<a a&", -"input":"<a a&", -"output":["ParseError", ["StartTag", "a", {"a&":""}]]}, +{"description":"<a a&>", +"input":"<a a&>", +"output":[["StartTag", "a", {"a&":""}]]}, -{"description":"<a a'", -"input":"<a a'", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a'":""}]]}, +{"description":"<a a'>", +"input":"<a a'>", +"output":["ParseError", ["StartTag", "a", {"a'":""}]]}, -{"description":"<a a(", -"input":"<a a(", -"output":["ParseError", ["StartTag", "a", {"a(":""}]]}, +{"description":"<a a(>", +"input":"<a a(>", +"output":[["StartTag", "a", {"a(":""}]]}, -{"description":"<a a-", -"input":"<a a-", -"output":["ParseError", ["StartTag", "a", {"a-":""}]]}, +{"description":"<a a->", +"input":"<a a->", +"output":[["StartTag", "a", {"a-":""}]]}, -{"description":"<a a.", -"input":"<a a.", -"output":["ParseError", ["StartTag", "a", {"a.":""}]]}, +{"description":"<a a.>", +"input":"<a a.>", +"output":[["StartTag", "a", {"a.":""}]]}, -{"description":"<a a/", -"input":"<a a/", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a/>", +"input":"<a a/>", +"output":[["StartTag", "a", {"a":""}, true]]}, -{"description":"<a a0", -"input":"<a a0", -"output":["ParseError", ["StartTag", "a", {"a0":""}]]}, +{"description":"<a a0>", +"input":"<a a0>", +"output":[["StartTag", "a", {"a0":""}]]}, -{"description":"<a a1", -"input":"<a a1", -"output":["ParseError", ["StartTag", "a", {"a1":""}]]}, +{"description":"<a a1>", +"input":"<a a1>", +"output":[["StartTag", "a", {"a1":""}]]}, -{"description":"<a a9", -"input":"<a a9", -"output":["ParseError", ["StartTag", "a", {"a9":""}]]}, +{"description":"<a a9>", +"input":"<a a9>", +"output":[["StartTag", "a", {"a9":""}]]}, -{"description":"<a a<", -"input":"<a a<", +{"description":"<a a<>", +"input":"<a a<>", "output":["ParseError", ["StartTag", "a", {"a<":""}]]}, -{"description":"<a a=", -"input":"<a a=", +{"description":"<a a=>", +"input":"<a a=>", "output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=\\u0000", -"input":"<a a=\u0000", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, +{"description":"<a a=\\u0000>", +"input":"<a a=\u0000>", +"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, -{"description":"<a a=\\u0008", -"input":"<a a=\u0008", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"\u0008"}]]}, +{"description":"<a a=\\u0008>", +"input":"<a a=\u0008>", +"output":["ParseError", ["StartTag", "a", {"a":"\u0008"}]]}, -{"description":"<a a=\\u0009", -"input":"<a a=\u0009", +{"description":"<a a=\\u0009>", +"input":"<a a=\u0009>", "output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=\\u000A", -"input":"<a a=\u000A", +{"description":"<a a=\\u000A>", +"input":"<a a=\u000A>", "output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=\\u000B", -"input":"<a a=\u000B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, +{"description":"<a a=\\u000B>", +"input":"<a a=\u000B>", +"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, -{"description":"<a a=\\u000C", -"input":"<a a=\u000C", +{"description":"<a a=\\u000C>", +"input":"<a a=\u000C>", "output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=\\u000D", -"input":"<a a=\u000D", +{"description":"<a a=\\u000D>", +"input":"<a a=\u000D>", "output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=\\u001F", -"input":"<a a=\u001F", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"\u001F"}]]}, +{"description":"<a a=\\u001F>", +"input":"<a a=\u001F>", +"output":["ParseError", ["StartTag", "a", {"a":"\u001F"}]]}, -{"description":"<a a= ", -"input":"<a a= ", +{"description":"<a a= >", +"input":"<a a= >", "output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=!", -"input":"<a a=!", -"output":["ParseError", ["StartTag", "a", {"a":"!"}]]}, +{"description":"<a a=!>", +"input":"<a a=!>", +"output":[["StartTag", "a", {"a":"!"}]]}, -{"description":"<a a=\"", -"input":"<a a=\"", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=\"\">", +"input":"<a a=\"\">", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=\"\\u0000", -"input":"<a a=\"\u0000", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, +{"description":"<a a=\"\\u0000\">", +"input":"<a a=\"\u0000\">", +"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, -{"description":"<a a=\"\\u0009", -"input":"<a a=\"\u0009", -"output":["ParseError", ["StartTag", "a", {"a":"\u0009"}]]}, +{"description":"<a a=\"\\u0009\">", +"input":"<a a=\"\u0009\">", +"output":[["StartTag", "a", {"a":"\u0009"}]]}, -{"description":"<a a=\"\\u000A", -"input":"<a a=\"\u000A", -"output":["ParseError", ["StartTag", "a", {"a":"\u000A"}]]}, +{"description":"<a a=\"\\u000A\">", +"input":"<a a=\"\u000A\">", +"output":[["StartTag", "a", {"a":"\u000A"}]]}, -{"description":"<a a=\"\\u000B", -"input":"<a a=\"\u000B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, +{"description":"<a a=\"\\u000B\">", +"input":"<a a=\"\u000B\">", +"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, -{"description":"<a a=\"\\u000C", -"input":"<a a=\"\u000C", -"output":["ParseError", ["StartTag", "a", {"a":"\u000C"}]]}, +{"description":"<a a=\"\\u000C\">", +"input":"<a a=\"\u000C\">", +"output":[["StartTag", "a", {"a":"\u000C"}]]}, -{"description":"<a a=\" ", -"input":"<a a=\" ", -"output":["ParseError", ["StartTag", "a", {"a":" "}]]}, +{"description":"<a a=\" \">", +"input":"<a a=\" \">", +"output":[["StartTag", "a", {"a":" "}]]}, -{"description":"<a a=\"!", -"input":"<a a=\"!", -"output":["ParseError", ["StartTag", "a", {"a":"!"}]]}, +{"description":"<a a=\"!\">", +"input":"<a a=\"!\">", +"output":[["StartTag", "a", {"a":"!"}]]}, -{"description":"<a a=\"\"", -"input":"<a a=\"\"", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=\"\">", +"input":"<a a=\"\">", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=\"#", -"input":"<a a=\"#", -"output":["ParseError", ["StartTag", "a", {"a":"#"}]]}, +{"description":"<a a=\"#\">", +"input":"<a a=\"#\">", +"output":[["StartTag", "a", {"a":"#"}]]}, -{"description":"<a a=\"%", -"input":"<a a=\"%", -"output":["ParseError", ["StartTag", "a", {"a":"%"}]]}, +{"description":"<a a=\"%\">", +"input":"<a a=\"%\">", +"output":[["StartTag", "a", {"a":"%"}]]}, -{"description":"<a a=\"&", -"input":"<a a=\"&", -"output":["ParseError", ["StartTag", "a", {"a":"&"}]]}, +{"description":"<a a=\"&\">", +"input":"<a a=\"&\">", +"output":[["StartTag", "a", {"a":"&"}]]}, -{"description":"<a a=\"'", -"input":"<a a=\"'", -"output":["ParseError", ["StartTag", "a", {"a":"'"}]]}, +{"description":"<a a=\"'\">", +"input":"<a a=\"'\">", +"output":[["StartTag", "a", {"a":"'"}]]}, -{"description":"<a a=\"-", -"input":"<a a=\"-", -"output":["ParseError", ["StartTag", "a", {"a":"-"}]]}, +{"description":"<a a=\"-\">", +"input":"<a a=\"-\">", +"output":[["StartTag", "a", {"a":"-"}]]}, -{"description":"<a a=\"/", -"input":"<a a=\"/", -"output":["ParseError", ["StartTag", "a", {"a":"/"}]]}, +{"description":"<a a=\"/\">", +"input":"<a a=\"/\">", +"output":[["StartTag", "a", {"a":"/"}]]}, -{"description":"<a a=\"0", -"input":"<a a=\"0", -"output":["ParseError", ["StartTag", "a", {"a":"0"}]]}, +{"description":"<a a=\"0\">", +"input":"<a a=\"0\">", +"output":[["StartTag", "a", {"a":"0"}]]}, -{"description":"<a a=\"1", -"input":"<a a=\"1", -"output":["ParseError", ["StartTag", "a", {"a":"1"}]]}, +{"description":"<a a=\"1\">", +"input":"<a a=\"1\">", +"output":[["StartTag", "a", {"a":"1"}]]}, -{"description":"<a a=\"9", -"input":"<a a=\"9", -"output":["ParseError", ["StartTag", "a", {"a":"9"}]]}, +{"description":"<a a=\"9\">", +"input":"<a a=\"9\">", +"output":[["StartTag", "a", {"a":"9"}]]}, -{"description":"<a a=\"<", -"input":"<a a=\"<", -"output":["ParseError", ["StartTag", "a", {"a":"<"}]]}, +{"description":"<a a=\"<\">", +"input":"<a a=\"<\">", +"output":[["StartTag", "a", {"a":"<"}]]}, -{"description":"<a a=\"=", -"input":"<a a=\"=", -"output":["ParseError", ["StartTag", "a", {"a":"="}]]}, +{"description":"<a a=\"=\">", +"input":"<a a=\"=\">", +"output":[["StartTag", "a", {"a":"="}]]}, -{"description":"<a a=\">", -"input":"<a a=\">", -"output":["ParseError", ["StartTag", "a", {"a":">"}]]}, +{"description":"<a a=\">\">", +"input":"<a a=\">\">", +"output":[["StartTag", "a", {"a":">"}]]}, -{"description":"<a a=\"?", -"input":"<a a=\"?", -"output":["ParseError", ["StartTag", "a", {"a":"?"}]]}, +{"description":"<a a=\"?\">", +"input":"<a a=\"?\">", +"output":[["StartTag", "a", {"a":"?"}]]}, -{"description":"<a a=\"@", -"input":"<a a=\"@", -"output":["ParseError", ["StartTag", "a", {"a":"@"}]]}, +{"description":"<a a=\"@\">", +"input":"<a a=\"@\">", +"output":[["StartTag", "a", {"a":"@"}]]}, -{"description":"<a a=\"A", -"input":"<a a=\"A", -"output":["ParseError", ["StartTag", "a", {"a":"A"}]]}, +{"description":"<a a=\"A\">", +"input":"<a a=\"A\">", +"output":[["StartTag", "a", {"a":"A"}]]}, -{"description":"<a a=\"B", -"input":"<a a=\"B", -"output":["ParseError", ["StartTag", "a", {"a":"B"}]]}, +{"description":"<a a=\"B\">", +"input":"<a a=\"B\">", +"output":[["StartTag", "a", {"a":"B"}]]}, -{"description":"<a a=\"Y", -"input":"<a a=\"Y", -"output":["ParseError", ["StartTag", "a", {"a":"Y"}]]}, +{"description":"<a a=\"Y\">", +"input":"<a a=\"Y\">", +"output":[["StartTag", "a", {"a":"Y"}]]}, -{"description":"<a a=\"Z", -"input":"<a a=\"Z", -"output":["ParseError", ["StartTag", "a", {"a":"Z"}]]}, +{"description":"<a a=\"Z\">", +"input":"<a a=\"Z\">", +"output":[["StartTag", "a", {"a":"Z"}]]}, -{"description":"<a a=\"`", -"input":"<a a=\"`", -"output":["ParseError", ["StartTag", "a", {"a":"`"}]]}, +{"description":"<a a=\"`\">", +"input":"<a a=\"`\">", +"output":[["StartTag", "a", {"a":"`"}]]}, -{"description":"<a a=\"a", -"input":"<a a=\"a", -"output":["ParseError", ["StartTag", "a", {"a":"a"}]]}, +{"description":"<a a=\"a\">", +"input":"<a a=\"a\">", +"output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a=\"b", -"input":"<a a=\"b", -"output":["ParseError", ["StartTag", "a", {"a":"b"}]]}, +{"description":"<a a=\"b\">", +"input":"<a a=\"b\">", +"output":[["StartTag", "a", {"a":"b"}]]}, -{"description":"<a a=\"y", -"input":"<a a=\"y", -"output":["ParseError", ["StartTag", "a", {"a":"y"}]]}, +{"description":"<a a=\"y\">", +"input":"<a a=\"y\">", +"output":[["StartTag", "a", {"a":"y"}]]}, -{"description":"<a a=\"z", -"input":"<a a=\"z", -"output":["ParseError", ["StartTag", "a", {"a":"z"}]]}, +{"description":"<a a=\"z\">", +"input":"<a a=\"z\">", +"output":[["StartTag", "a", {"a":"z"}]]}, -{"description":"<a a=\"{", -"input":"<a a=\"{", -"output":["ParseError", ["StartTag", "a", {"a":"{"}]]}, +{"description":"<a a=\"{\">", +"input":"<a a=\"{\">", +"output":[["StartTag", "a", {"a":"{"}]]}, -{"description":"<a a=\"\\uDBC0\\uDC00", -"input":"<a a=\"\uDBC0\uDC00", -"output":["ParseError", ["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, +{"description":"<a a=\"\\uDBC0\\uDC00\">", +"input":"<a a=\"\uDBC0\uDC00\">", +"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, -{"description":"<a a=#", -"input":"<a a=#", -"output":["ParseError", ["StartTag", "a", {"a":"#"}]]}, +{"description":"<a a=#>", +"input":"<a a=#>", +"output":[["StartTag", "a", {"a":"#"}]]}, -{"description":"<a a=%", -"input":"<a a=%", -"output":["ParseError", ["StartTag", "a", {"a":"%"}]]}, +{"description":"<a a=%>", +"input":"<a a=%>", +"output":[["StartTag", "a", {"a":"%"}]]}, -{"description":"<a a=&", -"input":"<a a=&", -"output":["ParseError", ["StartTag", "a", {"a":"&"}]]}, +{"description":"<a a=&>", +"input":"<a a=&>", +"output":[["StartTag", "a", {"a":"&"}]]}, -{"description":"<a a='", -"input":"<a a='", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''>", +"input":"<a a=''>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a='\\u0000", -"input":"<a a='\u0000", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, +{"description":"<a a='\\u0000'>", +"input":"<a a='\u0000'>", +"output":["ParseError", ["StartTag", "a", {"a":"\uFFFD"}]]}, -{"description":"<a a='\\u0009", -"input":"<a a='\u0009", -"output":["ParseError", ["StartTag", "a", {"a":"\u0009"}]]}, +{"description":"<a a='\\u0009'>", +"input":"<a a='\u0009'>", +"output":[["StartTag", "a", {"a":"\u0009"}]]}, -{"description":"<a a='\\u000A", -"input":"<a a='\u000A", -"output":["ParseError", ["StartTag", "a", {"a":"\u000A"}]]}, +{"description":"<a a='\\u000A'>", +"input":"<a a='\u000A'>", +"output":[["StartTag", "a", {"a":"\u000A"}]]}, -{"description":"<a a='\\u000B", -"input":"<a a='\u000B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, +{"description":"<a a='\\u000B'>", +"input":"<a a='\u000B'>", +"output":["ParseError", ["StartTag", "a", {"a":"\u000B"}]]}, -{"description":"<a a='\\u000C", -"input":"<a a='\u000C", -"output":["ParseError", ["StartTag", "a", {"a":"\u000C"}]]}, +{"description":"<a a='\\u000C'>", +"input":"<a a='\u000C'>", +"output":[["StartTag", "a", {"a":"\u000C"}]]}, -{"description":"<a a=' ", -"input":"<a a=' ", -"output":["ParseError", ["StartTag", "a", {"a":" "}]]}, +{"description":"<a a=' '>", +"input":"<a a=' '>", +"output":[["StartTag", "a", {"a":" "}]]}, -{"description":"<a a='!", -"input":"<a a='!", -"output":["ParseError", ["StartTag", "a", {"a":"!"}]]}, +{"description":"<a a='!'>", +"input":"<a a='!'>", +"output":[["StartTag", "a", {"a":"!"}]]}, -{"description":"<a a='\"", -"input":"<a a='\"", -"output":["ParseError", ["StartTag", "a", {"a":"\""}]]}, +{"description":"<a a='\"'>", +"input":"<a a='\"'>", +"output":[["StartTag", "a", {"a":"\""}]]}, -{"description":"<a a='%", -"input":"<a a='%", -"output":["ParseError", ["StartTag", "a", {"a":"%"}]]}, +{"description":"<a a='%'>", +"input":"<a a='%'>", +"output":[["StartTag", "a", {"a":"%"}]]}, -{"description":"<a a='&", -"input":"<a a='&", -"output":["ParseError", ["StartTag", "a", {"a":"&"}]]}, +{"description":"<a a='&'>", +"input":"<a a='&'>", +"output":[["StartTag", "a", {"a":"&"}]]}, -{"description":"<a a=''", -"input":"<a a=''", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''>", +"input":"<a a=''>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''\\u0000", -"input":"<a a=''\u0000", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]}, +{"description":"<a a=''\\u0000>", +"input":"<a a=''\u0000>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\uFFFD":""}]]}, -{"description":"<a a=''\\u0008", -"input":"<a a=''\u0008", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]}, +{"description":"<a a=''\\u0008>", +"input":"<a a=''\u0008>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u0008":""}]]}, -{"description":"<a a=''\\u0009", -"input":"<a a=''\u0009", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''\\u0009>", +"input":"<a a=''\u0009>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''\\u000A", -"input":"<a a=''\u000A", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''\\u000A>", +"input":"<a a=''\u000A>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''\\u000B", -"input":"<a a=''\u000B", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]}, +{"description":"<a a=''\\u000B>", +"input":"<a a=''\u000B>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u000B":""}]]}, -{"description":"<a a=''\\u000C", -"input":"<a a=''\u000C", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''\\u000C>", +"input":"<a a=''\u000C>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''\\u000D", -"input":"<a a=''\u000D", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''\\u000D>", +"input":"<a a=''\u000D>", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''\\u001F", -"input":"<a a=''\u001F", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]}, +{"description":"<a a=''\\u001F>", +"input":"<a a=''\u001F>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\u001F":""}]]}, -{"description":"<a a='' ", -"input":"<a a='' ", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a='' >", +"input":"<a a='' >", +"output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''!", -"input":"<a a=''!", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "!":""}]]}, +{"description":"<a a=''!>", +"input":"<a a=''!>", +"output":["ParseError", ["StartTag", "a", {"a":"", "!":""}]]}, -{"description":"<a a=''\"", -"input":"<a a=''\"", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":"", "\"":""}]]}, +{"description":"<a a=''\">", +"input":"<a a=''\">", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\"":""}]]}, -{"description":"<a a=''&", -"input":"<a a=''&", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "&":""}]]}, +{"description":"<a a=''&>", +"input":"<a a=''&>", +"output":["ParseError", ["StartTag", "a", {"a":"", "&":""}]]}, -{"description":"<a a='''", -"input":"<a a='''", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":"", "'":""}]]}, +{"description":"<a a='''>", +"input":"<a a='''>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "'":""}]]}, -{"description":"<a a=''-", -"input":"<a a=''-", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "-":""}]]}, +{"description":"<a a=''->", +"input":"<a a=''->", +"output":["ParseError", ["StartTag", "a", {"a":"", "-":""}]]}, -{"description":"<a a=''.", -"input":"<a a=''.", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", ".":""}]]}, +{"description":"<a a=''.>", +"input":"<a a=''.>", +"output":["ParseError", ["StartTag", "a", {"a":"", ".":""}]]}, -{"description":"<a a=''/", -"input":"<a a=''/", -"output":["ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''/>", +"input":"<a a=''/>", +"output":[["StartTag", "a", {"a":""}, true]]}, -{"description":"<a a=''0", -"input":"<a a=''0", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "0":""}]]}, +{"description":"<a a=''0>", +"input":"<a a=''0>", +"output":["ParseError", ["StartTag", "a", {"a":"", "0":""}]]}, -{"description":"<a a=''1", -"input":"<a a=''1", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "1":""}]]}, +{"description":"<a a=''1>", +"input":"<a a=''1>", +"output":["ParseError", ["StartTag", "a", {"a":"", "1":""}]]}, -{"description":"<a a=''9", -"input":"<a a=''9", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "9":""}]]}, +{"description":"<a a=''9>", +"input":"<a a=''9>", +"output":["ParseError", ["StartTag", "a", {"a":"", "9":""}]]}, -{"description":"<a a=''<", -"input":"<a a=''<", +{"description":"<a a=''<>", +"input":"<a a=''<>", "output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "<":""}]]}, -{"description":"<a a=''=", -"input":"<a a=''=", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":"", "=":""}]]}, +{"description":"<a a=''=>", +"input":"<a a=''=>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "=":""}]]}, {"description":"<a a=''>", "input":"<a a=''>", "output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''?", -"input":"<a a=''?", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "?":""}]]}, +{"description":"<a a=''?>", +"input":"<a a=''?>", +"output":["ParseError", ["StartTag", "a", {"a":"", "?":""}]]}, -{"description":"<a a=''@", -"input":"<a a=''@", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "@":""}]]}, +{"description":"<a a=''@>", +"input":"<a a=''@>", +"output":["ParseError", ["StartTag", "a", {"a":"", "@":""}]]}, -{"description":"<a a=''A", -"input":"<a a=''A", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''A>", +"input":"<a a=''A>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''B", -"input":"<a a=''B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, +{"description":"<a a=''B>", +"input":"<a a=''B>", +"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, -{"description":"<a a=''Y", -"input":"<a a=''Y", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, +{"description":"<a a=''Y>", +"input":"<a a=''Y>", +"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, -{"description":"<a a=''Z", -"input":"<a a=''Z", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, +{"description":"<a a=''Z>", +"input":"<a a=''Z>", +"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, -{"description":"<a a=''`", -"input":"<a a=''`", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "`":""}]]}, +{"description":"<a a=''`>", +"input":"<a a=''`>", +"output":["ParseError", ["StartTag", "a", {"a":"", "`":""}]]}, -{"description":"<a a=''a", -"input":"<a a=''a", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a a=''a>", +"input":"<a a=''a>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=''b", -"input":"<a a=''b", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, +{"description":"<a a=''b>", +"input":"<a a=''b>", +"output":["ParseError", ["StartTag", "a", {"a":"", "b":""}]]}, -{"description":"<a a=''y", -"input":"<a a=''y", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, +{"description":"<a a=''y>", +"input":"<a a=''y>", +"output":["ParseError", ["StartTag", "a", {"a":"", "y":""}]]}, -{"description":"<a a=''z", -"input":"<a a=''z", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, +{"description":"<a a=''z>", +"input":"<a a=''z>", +"output":["ParseError", ["StartTag", "a", {"a":"", "z":""}]]}, -{"description":"<a a=''{", -"input":"<a a=''{", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "{":""}]]}, +{"description":"<a a=''{>", +"input":"<a a=''{>", +"output":["ParseError", ["StartTag", "a", {"a":"", "{":""}]]}, -{"description":"<a a=''\\uDBC0\\uDC00", -"input":"<a a=''\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]}, +{"description":"<a a=''\\uDBC0\\uDC00>", +"input":"<a a=''\uDBC0\uDC00>", +"output":["ParseError", ["StartTag", "a", {"a":"", "\uDBC0\uDC00":""}]]}, -{"description":"<a a='(", -"input":"<a a='(", -"output":["ParseError", ["StartTag", "a", {"a":"("}]]}, +{"description":"<a a='('>", +"input":"<a a='('>", +"output":[["StartTag", "a", {"a":"("}]]}, -{"description":"<a a='-", -"input":"<a a='-", -"output":["ParseError", ["StartTag", "a", {"a":"-"}]]}, +{"description":"<a a='-'>", +"input":"<a a='-'>", +"output":[["StartTag", "a", {"a":"-"}]]}, -{"description":"<a a='/", -"input":"<a a='/", -"output":["ParseError", ["StartTag", "a", {"a":"/"}]]}, +{"description":"<a a='/'>", +"input":"<a a='/'>", +"output":[["StartTag", "a", {"a":"/"}]]}, -{"description":"<a a='0", -"input":"<a a='0", -"output":["ParseError", ["StartTag", "a", {"a":"0"}]]}, +{"description":"<a a='0'>", +"input":"<a a='0'>", +"output":[["StartTag", "a", {"a":"0"}]]}, -{"description":"<a a='1", -"input":"<a a='1", -"output":["ParseError", ["StartTag", "a", {"a":"1"}]]}, +{"description":"<a a='1'>", +"input":"<a a='1'>", +"output":[["StartTag", "a", {"a":"1"}]]}, -{"description":"<a a='9", -"input":"<a a='9", -"output":["ParseError", ["StartTag", "a", {"a":"9"}]]}, +{"description":"<a a='9'>", +"input":"<a a='9'>", +"output":[["StartTag", "a", {"a":"9"}]]}, -{"description":"<a a='<", -"input":"<a a='<", -"output":["ParseError", ["StartTag", "a", {"a":"<"}]]}, +{"description":"<a a='<'>", +"input":"<a a='<'>", +"output":[["StartTag", "a", {"a":"<"}]]}, -{"description":"<a a='=", -"input":"<a a='=", -"output":["ParseError", ["StartTag", "a", {"a":"="}]]}, +{"description":"<a a='='>", +"input":"<a a='='>", +"output":[["StartTag", "a", {"a":"="}]]}, -{"description":"<a a='>", -"input":"<a a='>", -"output":["ParseError", ["StartTag", "a", {"a":">"}]]}, +{"description":"<a a='>'>", +"input":"<a a='>'>", +"output":[["StartTag", "a", {"a":">"}]]}, -{"description":"<a a='?", -"input":"<a a='?", -"output":["ParseError", ["StartTag", "a", {"a":"?"}]]}, +{"description":"<a a='?'>", +"input":"<a a='?'>", +"output":[["StartTag", "a", {"a":"?"}]]}, -{"description":"<a a='@", -"input":"<a a='@", -"output":["ParseError", ["StartTag", "a", {"a":"@"}]]}, +{"description":"<a a='@'>", +"input":"<a a='@'>", +"output":[["StartTag", "a", {"a":"@"}]]}, -{"description":"<a a='A", -"input":"<a a='A", -"output":["ParseError", ["StartTag", "a", {"a":"A"}]]}, +{"description":"<a a='A'>", +"input":"<a a='A'>", +"output":[["StartTag", "a", {"a":"A"}]]}, -{"description":"<a a='B", -"input":"<a a='B", -"output":["ParseError", ["StartTag", "a", {"a":"B"}]]}, +{"description":"<a a='B'>", +"input":"<a a='B'>", +"output":[["StartTag", "a", {"a":"B"}]]}, -{"description":"<a a='Y", -"input":"<a a='Y", -"output":["ParseError", ["StartTag", "a", {"a":"Y"}]]}, +{"description":"<a a='Y'>", +"input":"<a a='Y'>", +"output":[["StartTag", "a", {"a":"Y"}]]}, -{"description":"<a a='Z", -"input":"<a a='Z", -"output":["ParseError", ["StartTag", "a", {"a":"Z"}]]}, +{"description":"<a a='Z'>", +"input":"<a a='Z'>", +"output":[["StartTag", "a", {"a":"Z"}]]}, -{"description":"<a a='`", -"input":"<a a='`", -"output":["ParseError", ["StartTag", "a", {"a":"`"}]]}, +{"description":"<a a='`'>", +"input":"<a a='`'>", +"output":[["StartTag", "a", {"a":"`"}]]}, -{"description":"<a a='a", -"input":"<a a='a", -"output":["ParseError", ["StartTag", "a", {"a":"a"}]]}, +{"description":"<a a='a'>", +"input":"<a a='a'>", +"output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a='b", -"input":"<a a='b", -"output":["ParseError", ["StartTag", "a", {"a":"b"}]]}, +{"description":"<a a='b'>", +"input":"<a a='b'>", +"output":[["StartTag", "a", {"a":"b"}]]}, -{"description":"<a a='y", -"input":"<a a='y", -"output":["ParseError", ["StartTag", "a", {"a":"y"}]]}, +{"description":"<a a='y'>", +"input":"<a a='y'>", +"output":[["StartTag", "a", {"a":"y"}]]}, -{"description":"<a a='z", -"input":"<a a='z", -"output":["ParseError", ["StartTag", "a", {"a":"z"}]]}, +{"description":"<a a='z'>", +"input":"<a a='z'>", +"output":[["StartTag", "a", {"a":"z"}]]}, -{"description":"<a a='{", -"input":"<a a='{", -"output":["ParseError", ["StartTag", "a", {"a":"{"}]]}, +{"description":"<a a='{'>", +"input":"<a a='{'>", +"output":[["StartTag", "a", {"a":"{"}]]}, -{"description":"<a a='\\uDBC0\\uDC00", -"input":"<a a='\uDBC0\uDC00", -"output":["ParseError", ["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, +{"description":"<a a='\\uDBC0\\uDC00'>", +"input":"<a a='\uDBC0\uDC00'>", +"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, -{"description":"<a a=(", -"input":"<a a=(", -"output":["ParseError", ["StartTag", "a", {"a":"("}]]}, +{"description":"<a a=(>", +"input":"<a a=(>", +"output":[["StartTag", "a", {"a":"("}]]}, -{"description":"<a a=-", -"input":"<a a=-", -"output":["ParseError", ["StartTag", "a", {"a":"-"}]]}, +{"description":"<a a=->", +"input":"<a a=->", +"output":[["StartTag", "a", {"a":"-"}]]}, -{"description":"<a a=/", -"input":"<a a=/", -"output":["ParseError", ["StartTag", "a", {"a":"/"}]]}, +{"description":"<a a=/>", +"input":"<a a=/>", +"output":[["StartTag", "a", {"a":"/"}]]}, -{"description":"<a a=0", -"input":"<a a=0", -"output":["ParseError", ["StartTag", "a", {"a":"0"}]]}, +{"description":"<a a=0>", +"input":"<a a=0>", +"output":[["StartTag", "a", {"a":"0"}]]}, -{"description":"<a a=1", -"input":"<a a=1", -"output":["ParseError", ["StartTag", "a", {"a":"1"}]]}, +{"description":"<a a=1>", +"input":"<a a=1>", +"output":[["StartTag", "a", {"a":"1"}]]}, -{"description":"<a a=9", -"input":"<a a=9", -"output":["ParseError", ["StartTag", "a", {"a":"9"}]]}, +{"description":"<a a=9>", +"input":"<a a=9>", +"output":[["StartTag", "a", {"a":"9"}]]}, -{"description":"<a a=<", -"input":"<a a=<", +{"description":"<a a=<>", +"input":"<a a=<>", "output":["ParseError", ["StartTag", "a", {"a":"<"}]]}, -{"description":"<a a==", -"input":"<a a==", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"="}]]}, +{"description":"<a a==>", +"input":"<a a==>", +"output":["ParseError", ["StartTag", "a", {"a":"="}]]}, {"description":"<a a=>", "input":"<a a=>", "output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a a=?", -"input":"<a a=?", -"output":["ParseError", ["StartTag", "a", {"a":"?"}]]}, +{"description":"<a a=?>", +"input":"<a a=?>", +"output":[["StartTag", "a", {"a":"?"}]]}, -{"description":"<a a=@", -"input":"<a a=@", -"output":["ParseError", ["StartTag", "a", {"a":"@"}]]}, +{"description":"<a a=@>", +"input":"<a a=@>", +"output":[["StartTag", "a", {"a":"@"}]]}, -{"description":"<a a=A", -"input":"<a a=A", -"output":["ParseError", ["StartTag", "a", {"a":"A"}]]}, +{"description":"<a a=A>", +"input":"<a a=A>", +"output":[["StartTag", "a", {"a":"A"}]]}, -{"description":"<a a=B", -"input":"<a a=B", -"output":["ParseError", ["StartTag", "a", {"a":"B"}]]}, +{"description":"<a a=B>", +"input":"<a a=B>", +"output":[["StartTag", "a", {"a":"B"}]]}, -{"description":"<a a=Y", -"input":"<a a=Y", -"output":["ParseError", ["StartTag", "a", {"a":"Y"}]]}, +{"description":"<a a=Y>", +"input":"<a a=Y>", +"output":[["StartTag", "a", {"a":"Y"}]]}, -{"description":"<a a=Z", -"input":"<a a=Z", -"output":["ParseError", ["StartTag", "a", {"a":"Z"}]]}, +{"description":"<a a=Z>", +"input":"<a a=Z>", +"output":[["StartTag", "a", {"a":"Z"}]]}, -{"description":"<a a=`", -"input":"<a a=`", +{"description":"<a a=`>", +"input":"<a a=`>", "output":["ParseError", ["StartTag", "a", {"a":"`"}]]}, -{"description":"<a a=a", -"input":"<a a=a", -"output":["ParseError", ["StartTag", "a", {"a":"a"}]]}, +{"description":"<a a=a>", +"input":"<a a=a>", +"output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a=a\\u0000", -"input":"<a a=a\u0000", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"a\uFFFD"}]]}, +{"description":"<a a=a\\u0000>", +"input":"<a a=a\u0000>", +"output":["ParseError", ["StartTag", "a", {"a":"a\uFFFD"}]]}, -{"description":"<a a=a\\u0008", -"input":"<a a=a\u0008", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"a\u0008"}]]}, +{"description":"<a a=a\\u0008>", +"input":"<a a=a\u0008>", +"output":["ParseError", ["StartTag", "a", {"a":"a\u0008"}]]}, -{"description":"<a a=a\\u0009", -"input":"<a a=a\u0009", -"output":["ParseError", ["StartTag", "a", {"a":"a"}]]}, +{"description":"<a a=a\\u0009>", +"input":"<a a=a\u0009>", +"output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a=a\\u000A", -"input":"<a a=a\u000A", -"output":["ParseError", ["StartTag", "a", {"a":"a"}]]}, +{"description":"<a a=a\\u000A>", +"input":"<a a=a\u000A>", +"output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a=a\\u000B", -"input":"<a a=a\u000B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"a\u000B"}]]}, +{"description":"<a a=a\\u000B>", +"input":"<a a=a\u000B>", +"output":["ParseError", ["StartTag", "a", {"a":"a\u000B"}]]}, -{"description":"<a a=a\\u000C", -"input":"<a a=a\u000C", -"output":["ParseError", ["StartTag", "a", {"a":"a"}]]}, +{"description":"<a a=a\\u000C>", +"input":"<a a=a\u000C>", +"output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a=a\\u000D", -"input":"<a a=a\u000D", -"output":["ParseError", ["StartTag", "a", {"a":"a"}]]}, +{"description":"<a a=a\\u000D>", +"input":"<a a=a\u000D>", +"output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a=a\\u001F", -"input":"<a a=a\u001F", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"a\u001F"}]]}, +{"description":"<a a=a\\u001F>", +"input":"<a a=a\u001F>", +"output":["ParseError", ["StartTag", "a", {"a":"a\u001F"}]]}, -{"description":"<a a=a ", -"input":"<a a=a ", -"output":["ParseError", ["StartTag", "a", {"a":"a"}]]}, +{"description":"<a a=a >", +"input":"<a a=a >", +"output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a=a!", -"input":"<a a=a!", -"output":["ParseError", ["StartTag", "a", {"a":"a!"}]]}, +{"description":"<a a=a!>", +"input":"<a a=a!>", +"output":[["StartTag", "a", {"a":"a!"}]]}, -{"description":"<a a=a\"", -"input":"<a a=a\"", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"a\""}]]}, +{"description":"<a a=a\">", +"input":"<a a=a\">", +"output":["ParseError", ["StartTag", "a", {"a":"a\""}]]}, -{"description":"<a a=a#", -"input":"<a a=a#", -"output":["ParseError", ["StartTag", "a", {"a":"a#"}]]}, +{"description":"<a a=a#>", +"input":"<a a=a#>", +"output":[["StartTag", "a", {"a":"a#"}]]}, -{"description":"<a a=a%", -"input":"<a a=a%", -"output":["ParseError", ["StartTag", "a", {"a":"a%"}]]}, +{"description":"<a a=a%>", +"input":"<a a=a%>", +"output":[["StartTag", "a", {"a":"a%"}]]}, -{"description":"<a a=a&", -"input":"<a a=a&", -"output":["ParseError", ["StartTag", "a", {"a":"a&"}]]}, +{"description":"<a a=a&>", +"input":"<a a=a&>", +"output":[["StartTag", "a", {"a":"a&"}]]}, -{"description":"<a a=a'", -"input":"<a a=a'", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"a'"}]]}, +{"description":"<a a=a'>", +"input":"<a a=a'>", +"output":["ParseError", ["StartTag", "a", {"a":"a'"}]]}, -{"description":"<a a=a(", -"input":"<a a=a(", -"output":["ParseError", ["StartTag", "a", {"a":"a("}]]}, +{"description":"<a a=a(>", +"input":"<a a=a(>", +"output":[["StartTag", "a", {"a":"a("}]]}, -{"description":"<a a=a-", -"input":"<a a=a-", -"output":["ParseError", ["StartTag", "a", {"a":"a-"}]]}, +{"description":"<a a=a->", +"input":"<a a=a->", +"output":[["StartTag", "a", {"a":"a-"}]]}, -{"description":"<a a=a/", -"input":"<a a=a/", -"output":["ParseError", ["StartTag", "a", {"a":"a/"}]]}, +{"description":"<a a=a/>", +"input":"<a a=a/>", +"output":[["StartTag", "a", {"a":"a/"}]]}, -{"description":"<a a=a0", -"input":"<a a=a0", -"output":["ParseError", ["StartTag", "a", {"a":"a0"}]]}, +{"description":"<a a=a0>", +"input":"<a a=a0>", +"output":[["StartTag", "a", {"a":"a0"}]]}, -{"description":"<a a=a1", -"input":"<a a=a1", -"output":["ParseError", ["StartTag", "a", {"a":"a1"}]]}, +{"description":"<a a=a1>", +"input":"<a a=a1>", +"output":[["StartTag", "a", {"a":"a1"}]]}, -{"description":"<a a=a9", -"input":"<a a=a9", -"output":["ParseError", ["StartTag", "a", {"a":"a9"}]]}, +{"description":"<a a=a9>", +"input":"<a a=a9>", +"output":[["StartTag", "a", {"a":"a9"}]]}, -{"description":"<a a=a<", -"input":"<a a=a<", +{"description":"<a a=a<>", +"input":"<a a=a<>", "output":["ParseError", ["StartTag", "a", {"a":"a<"}]]}, -{"description":"<a a=a=", -"input":"<a a=a=", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":"a="}]]}, +{"description":"<a a=a=>", +"input":"<a a=a=>", +"output":["ParseError", ["StartTag", "a", {"a":"a="}]]}, {"description":"<a a=a>", "input":"<a a=a>", "output":[["StartTag", "a", {"a":"a"}]]}, -{"description":"<a a=a?", -"input":"<a a=a?", -"output":["ParseError", ["StartTag", "a", {"a":"a?"}]]}, +{"description":"<a a=a?>", +"input":"<a a=a?>", +"output":[["StartTag", "a", {"a":"a?"}]]}, -{"description":"<a a=a@", -"input":"<a a=a@", -"output":["ParseError", ["StartTag", "a", {"a":"a@"}]]}, +{"description":"<a a=a@>", +"input":"<a a=a@>", +"output":[["StartTag", "a", {"a":"a@"}]]}, -{"description":"<a a=aA", -"input":"<a a=aA", -"output":["ParseError", ["StartTag", "a", {"a":"aA"}]]}, +{"description":"<a a=aA>", +"input":"<a a=aA>", +"output":[["StartTag", "a", {"a":"aA"}]]}, -{"description":"<a a=aB", -"input":"<a a=aB", -"output":["ParseError", ["StartTag", "a", {"a":"aB"}]]}, +{"description":"<a a=aB>", +"input":"<a a=aB>", +"output":[["StartTag", "a", {"a":"aB"}]]}, -{"description":"<a a=aY", -"input":"<a a=aY", -"output":["ParseError", ["StartTag", "a", {"a":"aY"}]]}, +{"description":"<a a=aY>", +"input":"<a a=aY>", +"output":[["StartTag", "a", {"a":"aY"}]]}, -{"description":"<a a=aZ", -"input":"<a a=aZ", -"output":["ParseError", ["StartTag", "a", {"a":"aZ"}]]}, +{"description":"<a a=aZ>", +"input":"<a a=aZ>", +"output":[["StartTag", "a", {"a":"aZ"}]]}, -{"description":"<a a=a`", -"input":"<a a=a`", +{"description":"<a a=a`>", +"input":"<a a=a`>", "output":["ParseError", ["StartTag", "a", {"a":"a`"}]]}, -{"description":"<a a=aa", -"input":"<a a=aa", -"output":["ParseError", ["StartTag", "a", {"a":"aa"}]]}, +{"description":"<a a=aa>", +"input":"<a a=aa>", +"output":[["StartTag", "a", {"a":"aa"}]]}, -{"description":"<a a=ab", -"input":"<a a=ab", -"output":["ParseError", ["StartTag", "a", {"a":"ab"}]]}, +{"description":"<a a=ab>", +"input":"<a a=ab>", +"output":[["StartTag", "a", {"a":"ab"}]]}, -{"description":"<a a=ay", -"input":"<a a=ay", -"output":["ParseError", ["StartTag", "a", {"a":"ay"}]]}, +{"description":"<a a=ay>", +"input":"<a a=ay>", +"output":[["StartTag", "a", {"a":"ay"}]]}, -{"description":"<a a=az", -"input":"<a a=az", -"output":["ParseError", ["StartTag", "a", {"a":"az"}]]}, +{"description":"<a a=az>", +"input":"<a a=az>", +"output":[["StartTag", "a", {"a":"az"}]]}, -{"description":"<a a=a{", -"input":"<a a=a{", -"output":["ParseError", ["StartTag", "a", {"a":"a{"}]]}, +{"description":"<a a=a{>", +"input":"<a a=a{>", +"output":[["StartTag", "a", {"a":"a{"}]]}, -{"description":"<a a=a\\uDBC0\\uDC00", -"input":"<a a=a\uDBC0\uDC00", -"output":["ParseError", ["StartTag", "a", {"a":"a\uDBC0\uDC00"}]]}, +{"description":"<a a=a\\uDBC0\\uDC00>", +"input":"<a a=a\uDBC0\uDC00>", +"output":[["StartTag", "a", {"a":"a\uDBC0\uDC00"}]]}, -{"description":"<a a=b", -"input":"<a a=b", -"output":["ParseError", ["StartTag", "a", {"a":"b"}]]}, +{"description":"<a a=b>", +"input":"<a a=b>", +"output":[["StartTag", "a", {"a":"b"}]]}, -{"description":"<a a=y", -"input":"<a a=y", -"output":["ParseError", ["StartTag", "a", {"a":"y"}]]}, +{"description":"<a a=y>", +"input":"<a a=y>", +"output":[["StartTag", "a", {"a":"y"}]]}, -{"description":"<a a=z", -"input":"<a a=z", -"output":["ParseError", ["StartTag", "a", {"a":"z"}]]}, +{"description":"<a a=z>", +"input":"<a a=z>", +"output":[["StartTag", "a", {"a":"z"}]]}, -{"description":"<a a={", -"input":"<a a={", -"output":["ParseError", ["StartTag", "a", {"a":"{"}]]}, +{"description":"<a a={>", +"input":"<a a={>", +"output":[["StartTag", "a", {"a":"{"}]]}, -{"description":"<a a=\\uDBC0\\uDC00", -"input":"<a a=\uDBC0\uDC00", -"output":["ParseError", ["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, +{"description":"<a a=\\uDBC0\\uDC00>", +"input":"<a a=\uDBC0\uDC00>", +"output":[["StartTag", "a", {"a":"\uDBC0\uDC00"}]]}, {"description":"<a a>", "input":"<a a>", "output":[["StartTag", "a", {"a":""}]]}, -{"description":"<a a?", -"input":"<a a?", -"output":["ParseError", ["StartTag", "a", {"a?":""}]]}, +{"description":"<a a?>", +"input":"<a a?>", +"output":[["StartTag", "a", {"a?":""}]]}, -{"description":"<a a@", -"input":"<a a@", -"output":["ParseError", ["StartTag", "a", {"a@":""}]]}, +{"description":"<a a@>", +"input":"<a a@>", +"output":[["StartTag", "a", {"a@":""}]]}, -{"description":"<a aA", -"input":"<a aA", -"output":["ParseError", ["StartTag", "a", {"aa":""}]]}, +{"description":"<a aA>", +"input":"<a aA>", +"output":[["StartTag", "a", {"aa":""}]]}, -{"description":"<a aB", -"input":"<a aB", -"output":["ParseError", ["StartTag", "a", {"ab":""}]]}, +{"description":"<a aB>", +"input":"<a aB>", +"output":[["StartTag", "a", {"ab":""}]]}, -{"description":"<a aY", -"input":"<a aY", -"output":["ParseError", ["StartTag", "a", {"ay":""}]]}, +{"description":"<a aY>", +"input":"<a aY>", +"output":[["StartTag", "a", {"ay":""}]]}, -{"description":"<a aZ", -"input":"<a aZ", -"output":["ParseError", ["StartTag", "a", {"az":""}]]}, +{"description":"<a aZ>", +"input":"<a aZ>", +"output":[["StartTag", "a", {"az":""}]]}, -{"description":"<a a[", -"input":"<a a[", -"output":["ParseError", ["StartTag", "a", {"a[":""}]]}, +{"description":"<a a[>", +"input":"<a a[>", +"output":[["StartTag", "a", {"a[":""}]]}, -{"description":"<a a`", -"input":"<a a`", -"output":["ParseError", ["StartTag", "a", {"a`":""}]]}, +{"description":"<a a`>", +"input":"<a a`>", +"output":[["StartTag", "a", {"a`":""}]]}, -{"description":"<a aa", -"input":"<a aa", -"output":["ParseError", ["StartTag", "a", {"aa":""}]]}, +{"description":"<a aa>", +"input":"<a aa>", +"output":[["StartTag", "a", {"aa":""}]]}, -{"description":"<a ab", -"input":"<a ab", -"output":["ParseError", ["StartTag", "a", {"ab":""}]]}, +{"description":"<a ab>", +"input":"<a ab>", +"output":[["StartTag", "a", {"ab":""}]]}, -{"description":"<a ay", -"input":"<a ay", -"output":["ParseError", ["StartTag", "a", {"ay":""}]]}, +{"description":"<a ay>", +"input":"<a ay>", +"output":[["StartTag", "a", {"ay":""}]]}, -{"description":"<a az", -"input":"<a az", -"output":["ParseError", ["StartTag", "a", {"az":""}]]}, +{"description":"<a az>", +"input":"<a az>", +"output":[["StartTag", "a", {"az":""}]]}, -{"description":"<a a{", -"input":"<a a{", -"output":["ParseError", ["StartTag", "a", {"a{":""}]]}, +{"description":"<a a{>", +"input":"<a a{>", +"output":[["StartTag", "a", {"a{":""}]]}, -{"description":"<a a\\uDBC0\\uDC00", -"input":"<a a\uDBC0\uDC00", -"output":["ParseError", ["StartTag", "a", {"a\uDBC0\uDC00":""}]]}, +{"description":"<a a\\uDBC0\\uDC00>", +"input":"<a a\uDBC0\uDC00>", +"output":[["StartTag", "a", {"a\uDBC0\uDC00":""}]]}, -{"description":"<a b", -"input":"<a b", -"output":["ParseError", ["StartTag", "a", {"b":""}]]}, +{"description":"<a b>", +"input":"<a b>", +"output":[["StartTag", "a", {"b":""}]]}, -{"description":"<a y", -"input":"<a y", -"output":["ParseError", ["StartTag", "a", {"y":""}]]}, +{"description":"<a y>", +"input":"<a y>", +"output":[["StartTag", "a", {"y":""}]]}, -{"description":"<a z", -"input":"<a z", -"output":["ParseError", ["StartTag", "a", {"z":""}]]}, +{"description":"<a z>", +"input":"<a z>", +"output":[["StartTag", "a", {"z":""}]]}, -{"description":"<a {", -"input":"<a {", -"output":["ParseError", ["StartTag", "a", {"{":""}]]}, +{"description":"<a {>", +"input":"<a {>", +"output":[["StartTag", "a", {"{":""}]]}, -{"description":"<a \\uDBC0\\uDC00", -"input":"<a \uDBC0\uDC00", -"output":["ParseError", ["StartTag", "a", {"\uDBC0\uDC00":""}]]}, +{"description":"<a \\uDBC0\\uDC00>", +"input":"<a \uDBC0\uDC00>", +"output":[["StartTag", "a", {"\uDBC0\uDC00":""}]]}, -{"description":"<a!", -"input":"<a!", -"output":["ParseError", ["StartTag", "a!", {}]]}, +{"description":"<a!>", +"input":"<a!>", +"output":[["StartTag", "a!", {}]]}, -{"description":"<a\"", -"input":"<a\"", -"output":["ParseError", ["StartTag", "a\"", {}]]}, +{"description":"<a\">", +"input":"<a\">", +"output":[["StartTag", "a\"", {}]]}, -{"description":"<a&", -"input":"<a&", -"output":["ParseError", ["StartTag", "a&", {}]]}, +{"description":"<a&>", +"input":"<a&>", +"output":[["StartTag", "a&", {}]]}, -{"description":"<a'", -"input":"<a'", -"output":["ParseError", ["StartTag", "a'", {}]]}, +{"description":"<a'>", +"input":"<a'>", +"output":[["StartTag", "a'", {}]]}, -{"description":"<a-", -"input":"<a-", -"output":["ParseError", ["StartTag", "a-", {}]]}, +{"description":"<a->", +"input":"<a->", +"output":[["StartTag", "a-", {}]]}, -{"description":"<a.", -"input":"<a.", -"output":["ParseError", ["StartTag", "a.", {}]]}, +{"description":"<a.>", +"input":"<a.>", +"output":[["StartTag", "a.", {}]]}, -{"description":"<a/", -"input":"<a/", -"output":["ParseError", ["StartTag", "a", {}]]}, +{"description":"<a/>", +"input":"<a/>", +"output":[["StartTag", "a", {}, true]]}, -{"description":"<a/\\u0000", -"input":"<a/\u0000", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"\uFFFD":""}]]}, +{"description":"<a/\\u0000>", +"input":"<a/\u0000>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"\uFFFD":""}]]}, -{"description":"<a/\\u0009", -"input":"<a/\u0009", -"output":["ParseError", "ParseError", ["StartTag", "a", {}]]}, +{"description":"<a/\\u0009>", +"input":"<a/\u0009>", +"output":["ParseError", ["StartTag", "a", {}]]}, -{"description":"<a/\\u000A", -"input":"<a/\u000A", -"output":["ParseError", "ParseError", ["StartTag", "a", {}]]}, +{"description":"<a/\\u000A>", +"input":"<a/\u000A>", +"output":["ParseError", ["StartTag", "a", {}]]}, -{"description":"<a/\\u000B", -"input":"<a/\u000B", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"\u000B":""}]]}, +{"description":"<a/\\u000B>", +"input":"<a/\u000B>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"\u000B":""}]]}, -{"description":"<a/\\u000C", -"input":"<a/\u000C", -"output":["ParseError", "ParseError", ["StartTag", "a", {}]]}, +{"description":"<a/\\u000C>", +"input":"<a/\u000C>", +"output":["ParseError", ["StartTag", "a", {}]]}, -{"description":"<a/ ", -"input":"<a/ ", -"output":["ParseError", "ParseError", ["StartTag", "a", {}]]}, +{"description":"<a/ >", +"input":"<a/ >", +"output":["ParseError", ["StartTag", "a", {}]]}, -{"description":"<a/!", -"input":"<a/!", -"output":["ParseError", "ParseError", ["StartTag", "a", {"!":""}]]}, +{"description":"<a/!>", +"input":"<a/!>", +"output":["ParseError", ["StartTag", "a", {"!":""}]]}, -{"description":"<a/\"", -"input":"<a/\"", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"\"":""}]]}, +{"description":"<a/\">", +"input":"<a/\">", +"output":["ParseError", "ParseError", ["StartTag", "a", {"\"":""}]]}, -{"description":"<a/&", -"input":"<a/&", -"output":["ParseError", "ParseError", ["StartTag", "a", {"&":""}]]}, +{"description":"<a/&>", +"input":"<a/&>", +"output":["ParseError", ["StartTag", "a", {"&":""}]]}, -{"description":"<a/'", -"input":"<a/'", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"'":""}]]}, +{"description":"<a/'>", +"input":"<a/'>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"'":""}]]}, -{"description":"<a/-", -"input":"<a/-", -"output":["ParseError", "ParseError", ["StartTag", "a", {"-":""}]]}, +{"description":"<a/->", +"input":"<a/->", +"output":["ParseError", ["StartTag", "a", {"-":""}]]}, -{"description":"<a//", -"input":"<a//", -"output":["ParseError", "ParseError", ["StartTag", "a", {}]]}, +{"description":"<a//>", +"input":"<a//>", +"output":["ParseError", ["StartTag", "a", {}, true]]}, -{"description":"<a/0", -"input":"<a/0", -"output":["ParseError", "ParseError", ["StartTag", "a", {"0":""}]]}, +{"description":"<a/0>", +"input":"<a/0>", +"output":["ParseError", ["StartTag", "a", {"0":""}]]}, -{"description":"<a/1", -"input":"<a/1", -"output":["ParseError", "ParseError", ["StartTag", "a", {"1":""}]]}, +{"description":"<a/1>", +"input":"<a/1>", +"output":["ParseError", ["StartTag", "a", {"1":""}]]}, -{"description":"<a/9", -"input":"<a/9", -"output":["ParseError", "ParseError", ["StartTag", "a", {"9":""}]]}, +{"description":"<a/9>", +"input":"<a/9>", +"output":["ParseError", ["StartTag", "a", {"9":""}]]}, -{"description":"<a/<", -"input":"<a/<", +{"description":"<a/<>", +"input":"<a/<>", "output":["ParseError", "ParseError", ["StartTag", "a", {"<":""}]]}, -{"description":"<a/=", -"input":"<a/=", -"output":["ParseError", "ParseError", "ParseError", ["StartTag", "a", {"=":""}]]}, +{"description":"<a/=>", +"input":"<a/=>", +"output":["ParseError", "ParseError", ["StartTag", "a", {"=":""}]]}, {"description":"<a/>", "input":"<a/>", "output":[["StartTag", "a", {}, true]]}, -{"description":"<a/?", -"input":"<a/?", -"output":["ParseError", "ParseError", ["StartTag", "a", {"?":""}]]}, +{"description":"<a/?>", +"input":"<a/?>", +"output":["ParseError", ["StartTag", "a", {"?":""}]]}, -{"description":"<a/@", -"input":"<a/@", -"output":["ParseError", "ParseError", ["StartTag", "a", {"@":""}]]}, +{"description":"<a/@>", +"input":"<a/@>", +"output":["ParseError", ["StartTag", "a", {"@":""}]]}, -{"description":"<a/A", -"input":"<a/A", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a/A>", +"input":"<a/A>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a/B", -"input":"<a/B", -"output":["ParseError", "ParseError", ["StartTag", "a", {"b":""}]]}, +{"description":"<a/B>", +"input":"<a/B>", +"output":["ParseError", ["StartTag", "a", {"b":""}]]}, -{"description":"<a/Y", -"input":"<a/Y", -"output":["ParseError", "ParseError", ["StartTag", "a", {"y":""}]]}, +{"description":"<a/Y>", +"input":"<a/Y>", +"output":["ParseError", ["StartTag", "a", {"y":""}]]}, -{"description":"<a/Z", -"input":"<a/Z", -"output":["ParseError", "ParseError", ["StartTag", "a", {"z":""}]]}, +{"description":"<a/Z>", +"input":"<a/Z>", +"output":["ParseError", ["StartTag", "a", {"z":""}]]}, -{"description":"<a/`", -"input":"<a/`", -"output":["ParseError", "ParseError", ["StartTag", "a", {"`":""}]]}, +{"description":"<a/`>", +"input":"<a/`>", +"output":["ParseError", ["StartTag", "a", {"`":""}]]}, -{"description":"<a/a", -"input":"<a/a", -"output":["ParseError", "ParseError", ["StartTag", "a", {"a":""}]]}, +{"description":"<a/a>", +"input":"<a/a>", +"output":["ParseError", ["StartTag", "a", {"a":""}]]}, -{"description":"<a/b", -"input":"<a/b", -"output":["ParseError", "ParseError", ["StartTag", "a", {"b":""}]]}, +{"description":"<a/b>", +"input":"<a/b>", +"output":["ParseError", ["StartTag", "a", {"b":""}]]}, -{"description":"<a/y", -"input":"<a/y", -"output":["ParseError", "ParseError", ["StartTag", "a", {"y":""}]]}, +{"description":"<a/y>", +"input":"<a/y>", +"output":["ParseError", ["StartTag", "a", {"y":""}]]}, -{"description":"<a/z", -"input":"<a/z", -"output":["ParseError", "ParseError", ["StartTag", "a", {"z":""}]]}, +{"description":"<a/z>", +"input":"<a/z>", +"output":["ParseError", ["StartTag", "a", {"z":""}]]}, -{"description":"<a/{", -"input":"<a/{", -"output":["ParseError", "ParseError", ["StartTag", "a", {"{":""}]]}, +{"description":"<a/{>", +"input":"<a/{>", +"output":["ParseError", ["StartTag", "a", {"{":""}]]}, -{"description":"<a/\\uDBC0\\uDC00", -"input":"<a/\uDBC0\uDC00", -"output":["ParseError", "ParseError", ["StartTag", "a", {"\uDBC0\uDC00":""}]]}, +{"description":"<a/\\uDBC0\\uDC00>", +"input":"<a/\uDBC0\uDC00>", +"output":["ParseError", ["StartTag", "a", {"\uDBC0\uDC00":""}]]}, -{"description":"<a0", -"input":"<a0", -"output":["ParseError", ["StartTag", "a0", {}]]}, +{"description":"<a0>", +"input":"<a0>", +"output":[["StartTag", "a0", {}]]}, -{"description":"<a1", -"input":"<a1", -"output":["ParseError", ["StartTag", "a1", {}]]}, +{"description":"<a1>", +"input":"<a1>", +"output":[["StartTag", "a1", {}]]}, -{"description":"<a9", -"input":"<a9", -"output":["ParseError", ["StartTag", "a9", {}]]}, +{"description":"<a9>", +"input":"<a9>", +"output":[["StartTag", "a9", {}]]}, -{"description":"<a<", -"input":"<a<", -"output":["ParseError", ["StartTag", "a<", {}]]}, +{"description":"<a<>", +"input":"<a<>", +"output":[["StartTag", "a<", {}]]}, -{"description":"<a=", -"input":"<a=", -"output":["ParseError", ["StartTag", "a=", {}]]}, +{"description":"<a=>", +"input":"<a=>", +"output":[["StartTag", "a=", {}]]}, {"description":"<a>", "input":"<a>", "output":[["StartTag", "a", {}]]}, -{"description":"<a?", -"input":"<a?", -"output":["ParseError", ["StartTag", "a?", {}]]}, +{"description":"<a?>", +"input":"<a?>", +"output":[["StartTag", "a?", {}]]}, -{"description":"<a@", -"input":"<a@", -"output":["ParseError", ["StartTag", "a@", {}]]}, +{"description":"<a@>", +"input":"<a@>", +"output":[["StartTag", "a@", {}]]}, -{"description":"<aA", -"input":"<aA", -"output":["ParseError", ["StartTag", "aa", {}]]}, +{"description":"<aA>", +"input":"<aA>", +"output":[["StartTag", "aa", {}]]}, -{"description":"<aB", -"input":"<aB", -"output":["ParseError", ["StartTag", "ab", {}]]}, +{"description":"<aB>", +"input":"<aB>", +"output":[["StartTag", "ab", {}]]}, -{"description":"<aY", -"input":"<aY", -"output":["ParseError", ["StartTag", "ay", {}]]}, +{"description":"<aY>", +"input":"<aY>", +"output":[["StartTag", "ay", {}]]}, -{"description":"<aZ", -"input":"<aZ", -"output":["ParseError", ["StartTag", "az", {}]]}, +{"description":"<aZ>", +"input":"<aZ>", +"output":[["StartTag", "az", {}]]}, -{"description":"<a[", -"input":"<a[", -"output":["ParseError", ["StartTag", "a[", {}]]}, +{"description":"<a[>", +"input":"<a[>", +"output":[["StartTag", "a[", {}]]}, -{"description":"<a`", -"input":"<a`", -"output":["ParseError", ["StartTag", "a`", {}]]}, +{"description":"<a`>", +"input":"<a`>", +"output":[["StartTag", "a`", {}]]}, -{"description":"<aa", -"input":"<aa", -"output":["ParseError", ["StartTag", "aa", {}]]}, +{"description":"<aa>", +"input":"<aa>", +"output":[["StartTag", "aa", {}]]}, -{"description":"<ab", -"input":"<ab", -"output":["ParseError", ["StartTag", "ab", {}]]}, +{"description":"<ab>", +"input":"<ab>", +"output":[["StartTag", "ab", {}]]}, -{"description":"<ay", -"input":"<ay", -"output":["ParseError", ["StartTag", "ay", {}]]}, +{"description":"<ay>", +"input":"<ay>", +"output":[["StartTag", "ay", {}]]}, -{"description":"<az", -"input":"<az", -"output":["ParseError", ["StartTag", "az", {}]]}, +{"description":"<az>", +"input":"<az>", +"output":[["StartTag", "az", {}]]}, -{"description":"<a{", -"input":"<a{", -"output":["ParseError", ["StartTag", "a{", {}]]}, +{"description":"<a{>", +"input":"<a{>", +"output":[["StartTag", "a{", {}]]}, -{"description":"<a\\uDBC0\\uDC00", -"input":"<a\uDBC0\uDC00", -"output":["ParseError", ["StartTag", "a\uDBC0\uDC00", {}]]}, +{"description":"<a\\uDBC0\\uDC00>", +"input":"<a\uDBC0\uDC00>", +"output":[["StartTag", "a\uDBC0\uDC00", {}]]}, -{"description":"<b", -"input":"<b", -"output":["ParseError", ["StartTag", "b", {}]]}, +{"description":"<b>", +"input":"<b>", +"output":[["StartTag", "b", {}]]}, -{"description":"<y", -"input":"<y", -"output":["ParseError", ["StartTag", "y", {}]]}, +{"description":"<y>", +"input":"<y>", +"output":[["StartTag", "y", {}]]}, -{"description":"<z", -"input":"<z", -"output":["ParseError", ["StartTag", "z", {}]]}, +{"description":"<z>", +"input":"<z>", +"output":[["StartTag", "z", {}]]}, {"description":"<{", "input":"<{", diff --git a/test/data/tokeniser2/test4.test b/test/data/tokeniser2/test4.test index ec8f72c..4be94b0 100644 --- a/test/data/tokeniser2/test4.test +++ b/test/data/tokeniser2/test4.test @@ -1,11 +1,11 @@ {"tests": [ {"description":"< in attribute name", -"input":"<z/0 <", +"input":"<z/0 <>", "output":["ParseError", "ParseError", ["StartTag", "z", {"0": "", "<": ""}]]}, {"description":"< in attribute value", -"input":"<z x=<", +"input":"<z x=<>", "output":["ParseError", ["StartTag", "z", {"x": "<"}]]}, {"description":"= in unquoted attribute value", @@ -28,25 +28,25 @@ "input":"<z ====>", "output":["ParseError", "ParseError", "ParseError", ["StartTag", "z", {"=": "=="}]]}, -{"description":"Allowed \" after ampersand in attribute value", +{"description":"\" after ampersand in double-quoted attribute value", "input":"<z z=\"&\">", "output":[["StartTag", "z", {"z": "&"}]]}, -{"description":"Non-allowed ' after ampersand in attribute value", +{"description":"' after ampersand in double-quoted attribute value", "input":"<z z=\"&'\">", -"output":["ParseError", ["StartTag", "z", {"z": "&'"}]]}, +"output":[["StartTag", "z", {"z": "&'"}]]}, -{"description":"Allowed ' after ampersand in attribute value", +{"description":"' after ampersand in single-quoted attribute value", "input":"<z z='&'>", "output":[["StartTag", "z", {"z": "&"}]]}, -{"description":"Non-allowed \" after ampersand in attribute value", +{"description":"\" after ampersand in single-quoted attribute value", "input":"<z z='&\"'>", -"output":["ParseError", ["StartTag", "z", {"z": "&\""}]]}, +"output":[["StartTag", "z", {"z": "&\""}]]}, {"description":"Text after bogus character reference", "input":"<z z='&xlink_xmlns;'>bar<z>", -"output":["ParseError",["StartTag","z",{"z":"&xlink_xmlns;"}],["Character","bar"],["StartTag","z",{}]]}, +"output":[["StartTag","z",{"z":"&xlink_xmlns;"}],["Character","bar"],["StartTag","z",{}]]}, {"description":"Text after hex character reference", "input":"<z z='  foo'>bar<z>", @@ -98,11 +98,11 @@ {"description":"CR EOF in tag name", "input":"<z\r", -"output":["ParseError", ["StartTag", "z", {}]]}, +"output":["ParseError"]}, {"description":"Slash EOF in tag name", "input":"<z/", -"output":["ParseError", ["StartTag", "z", {}]]}, +"output":["ParseError"]}, {"description":"Zero hex numeric entity", "input":"�", @@ -134,7 +134,7 @@ {"description":"Maximum non-BMP numeric entity", "input":"", -"output":["ParseError", ["Character", "\uFFFD"]]}, +"output":["ParseError", ["Character", "\uDBFF\uDFFF"]]}, {"description":"Above maximum numeric entity", "input":"�", @@ -222,12 +222,12 @@ {"description":"U+0000 in lookahead region after non-matching character", "input":"<!doc>\u0000", -"output":["ParseError", ["Comment", "doc"], "ParseError", ["Character", "\uFFFD"]], +"output":["ParseError", ["Comment", "doc"], "ParseError", ["Character", "\u0000"]], "ignoreErrorOrder":true}, {"description":"U+0000 in lookahead region", "input":"<!doc\u0000", -"output":["ParseError", "ParseError", ["Comment", "doc\uFFFD"]], +"output":["ParseError", ["Comment", "doc\uFFFD"]], "ignoreErrorOrder":true}, {"description":"U+0080 in lookahead region", @@ -245,11 +245,6 @@ "output":["ParseError", "ParseError", ["Comment", "doc\uD83F\uDFFF"]], "ignoreErrorOrder":true}, -{"description":"CR followed by U+0000", -"input":"\r\u0000", -"output":["ParseError", ["Character", "\n\uFFFD"]], -"ignoreErrorOrder":true}, - {"description":"CR followed by non-LF", "input":"\r?", "output":[["Character", "\n?"]]}, @@ -300,6 +295,50 @@ {"description":"Doctype html x>text", "input":"<!DOCTYPE html x>text", -"output":["ParseError", ["DOCTYPE", "html", null, null, false], ["Character", "text"]]} +"output":["ParseError", ["DOCTYPE", "html", null, null, false], ["Character", "text"]]}, + +{"description":"Grave accent in unquoted attribute", +"input":"<a a=aa`>", +"output":["ParseError", ["StartTag", "a", {"a":"aa`"}]]}, + +{"description":"EOF in tag name state ", +"input":"<a", +"output":["ParseError"]}, + +{"description":"EOF in tag name state", +"input":"<a", +"output":["ParseError"]}, + +{"description":"EOF in before attribute name state", +"input":"<a ", +"output":["ParseError"]}, + +{"description":"EOF in attribute name state", +"input":"<a a", +"output":["ParseError"]}, + +{"description":"EOF in after attribute name state", +"input":"<a a ", +"output":["ParseError"]}, + +{"description":"EOF in before attribute value state", +"input":"<a a =", +"output":["ParseError"]}, + +{"description":"EOF in attribute value (double quoted) state", +"input":"<a a =\"a", +"output":["ParseError"]}, + +{"description":"EOF in attribute value (single quoted) state", +"input":"<a a ='a", +"output":["ParseError"]}, + +{"description":"EOF in attribute value (unquoted) state", +"input":"<a a =a", +"output":["ParseError"]}, + +{"description":"EOF in after attribute value state", +"input":"<a a ='a'", +"output":["ParseError"]} ]} diff --git a/test/data/tokeniser2/unicodeChars.test b/test/data/tokeniser2/unicodeChars.test index 9b59015..c778668 100644 --- a/test/data/tokeniser2/unicodeChars.test +++ b/test/data/tokeniser2/unicodeChars.test @@ -112,14 +112,6 @@ "input": "\u007F", "output": ["ParseError", ["Character", "\u007F"]]}, -{"description": "Invalid Unicode character U+D800", -"input": "\uD800", -"output": ["ParseError", ["Character", "\uD800"]]}, - -{"description": "Invalid Unicode character U+DFFF", -"input": "\uDFFF", -"output": ["ParseError", ["Character", "\uDFFF"]]}, - {"description": "Invalid Unicode character U+FDD0", "input": "\uFDD0", "output": ["ParseError", ["Character", "\uFDD0"]]}, diff --git a/test/data/tokeniser2/unicodeCharsProblematic.test b/test/data/tokeniser2/unicodeCharsProblematic.test new file mode 100644 index 0000000..5987845 --- /dev/null +++ b/test/data/tokeniser2/unicodeCharsProblematic.test @@ -0,0 +1,27 @@ +{"tests" : [ +{"description": "Invalid Unicode character U+DFFF", +"doubleEscaped":true, +"input": "\\uDFFF", +"output":["ParseError", ["Character", "\\uFFFD"]]}, + +{"description": "Invalid Unicode character U+D800", +"doubleEscaped":true, +"input": "\\uD800", +"output":["ParseError", ["Character", "\\uFFFD"]]}, + +{"description": "Invalid Unicode character U+DFFF with valid preceding character", +"doubleEscaped":true, +"input": "a\\uDFFF", +"output":[["Character", "a"], "ParseError", ["Character", "\\uFFFD"]]}, + +{"description": "Invalid Unicode character U+D800 with valid following character", +"doubleEscaped":true, +"input": "\\uD800a", +"output":["ParseError", ["Character", "\\uFFFDa"]]}, + +{"description":"CR followed by U+0000", +"input":"\r\u0000", +"output":[["Character", "\n"], "ParseError", ["Character", "\u0000"]], +"ignoreErrorOrder":true} +] +}
\ No newline at end of file diff --git a/test/data/tokeniser2/xmlViolation.test b/test/data/tokeniser2/xmlViolation.test new file mode 100644 index 0000000..93c6351 --- /dev/null +++ b/test/data/tokeniser2/xmlViolation.test @@ -0,0 +1,22 @@ +{"tests": [ + +{"description":"Non-XML character", +"input":"a\uFFFFb", +"ignoreErrorOrder":true, +"output":["ParseError",["Character","a\uFFFDb"]]}, + +{"description":"Non-XML space", +"input":"a\u000Cb", +"ignoreErrorOrder":true, +"output":[["Character","a b"]]}, + +{"description":"Double hyphen in comment", +"input":"<!-- foo -- bar -->", +"output":["ParseError",["Comment"," foo - - bar "]]}, + +{"description":"FF between attributes", +"input":"<a b=''\u000Cc=''>", +"output":[["StartTag","a",{"b":"","c":""}]]} +]} + + diff --git a/test/data/tree-construction/INDEX b/test/data/tree-construction/INDEX index c994b5a..7e7e38b 100644 --- a/test/data/tree-construction/INDEX +++ b/test/data/tree-construction/INDEX @@ -2,19 +2,57 @@ # # Test Description -tests1.dat html5lib tests -tests2.dat html5lib tests -tests3.dat html5lib tests -tests4.dat html5lib tests -tests5.dat html5lib tests -tests6.dat html5lib tests -tests7.dat html5lib tests -tests8.dat html5lib tests -tests9.dat html5lib tests -tests10.dat html5lib tests -tests11.dat html5lib tests -tests12.dat html5lib tests -after-after-body.dat Tests "after after body" mode -after-after-frameset.dat Tests "after after frameset" mode -after-body.dat Tests "after body" mode -regression.dat Regression tests +#adoption01.dat NA +#adoption02.dat NA +#after-after-body.dat NA +#after-after-frameset.dat NA +#after-body.dat NA +#comments01.dat NA +#doctype01.dat NA +#domjs-unsafe.dat NA +#entities01.dat NA +#entities02.dat NA +#html5test-com.dat NA +#inbody01.dat NA +#isindex.dat NA +#main-element.dat NA +#pending-spec-changes.dat NA +#pending-spec-changes-plain-text-unsafe.dat NA +#plain-text-unsafe.dat NA +#README.md NA +#regression.dat NA +#scriptdata01.dat NA +#scripted/adoption01.dat NA +#scripted/ark.dat NA +#scripted/webkit01.dat NA +#tables01.dat NA +#template.dat NA +#tests10.dat NA +#tests11.dat NA +#tests12.dat NA +#tests14.dat NA +#tests15.dat NA +#tests16.dat NA +#tests17.dat NA +#tests18.dat NA +#tests19.dat NA +#tests1.dat NA +#tests20.dat NA +#tests21.dat NA +#tests22.dat NA +#tests23.dat NA +#tests24.dat NA +#tests25.dat NA +#tests26.dat NA +#tests2.dat NA +#tests3.dat NA +#tests4.dat NA +#tests5.dat NA +#tests6.dat NA +#tests7.dat NA +#tests8.dat NA +#tests9.dat NA +#tests_innerHTML_1.dat NA +#tricky01.dat NA +#webkit01.dat NA +#webkit02.dat NA diff --git a/test/data/tree-construction/README.md b/test/data/tree-construction/README.md new file mode 100644 index 0000000..bc740ad --- /dev/null +++ b/test/data/tree-construction/README.md @@ -0,0 +1,89 @@ +Tree Construction Tests +======================= + +Each file containing tree construction tests consists of any number of +tests separated by two newlines (LF) and a single newline before the end +of the file. For instance: + + [TEST]LF + LF + [TEST]LF + LF + [TEST]LF + +Where [TEST] is the following format: + +Each test must begin with a string "\#data" followed by a newline (LF). +All subsequent lines until a line that says "\#errors" are the test data +and must be passed to the system being tested unchanged, except with the +final newline (on the last line) removed. + +Then there must be a line that says "\#errors". It must be followed by +one line per parse error that a conformant checker would return. It +doesn't matter what those lines are, although they can't be +"\#document-fragment", "\#document", or empty, the only thing that +matters is that there be the right number of parse errors. + +Then there \*may\* be a line that says "\#document-fragment", which must +be followed by a newline (LF), followed by a string of characters that +indicates the context element, followed by a newline (LF). If this line +is present the "\#data" must be parsed using the HTML fragment parsing +algorithm with the context element as context. + +Then there must be a line that says "\#document", which must be followed +by a dump of the tree of the parsed DOM. Each node must be represented +by a single line. Each line must start with "| ", followed by two spaces +per parent node that the node has before the root document node. + +- Element nodes must be represented by a "`<`" then the *tag name + string* "`>`", and all the attributes must be given, sorted + lexicographically by UTF-16 code unit according to their *attribute + name string*, on subsequent lines, as if they were children of the + element node. +- Attribute nodes must have the *attribute name string*, then an "=" + sign, then the attribute value in double quotes ("). +- Text nodes must be the string, in double quotes. Newlines aren't + escaped. +- Comments must be "`<`" then "`!-- `" then the data then "` -->`". +- DOCTYPEs must be "`<!DOCTYPE `" then the name then if either of the + system id or public id is non-empty a space, public id in + double-quotes, another space an the system id in double-quotes, and + then in any case "`>`". +- Processing instructions must be "`<?`", then the target, then a + space, then the data and then "`>`". (The HTML parser cannot emit + processing instructions, but scripts can, and the WebVTT to DOM + rules can emit them.) + +The *tag name string* is the local name prefixed by a namespace +designator. For the HTML namespace, the namespace designator is the +empty string, i.e. there's no prefix. For the SVG namespace, the +namespace designator is "svg ". For the MathML namespace, the namespace +designator is "math ". + +The *attribute name string* is the local name prefixed by a namespace +designator. For no namespace, the namespace designator is the empty +string, i.e. there's no prefix. For the XLink namespace, the namespace +designator is "xlink ". For the XML namespace, the namespace designator +is "xml ". For the XMLNS namespace, the namespace designator is "xmlns +". Note the difference between "xlink:href" which is an attribute in no +namespace with the local name "xlink:href" and "xlink href" which is an +attribute in the xlink namespace with the local name "href". + +If there is also a "\#document-fragment" the bit following "\#document" +must be a representation of the HTML fragment serialization for the +context element given by "\#document-fragment". + +For example: + + #data + <p>One<p>Two + #errors + 3: Missing document type declaration + #document + | <html> + | <head> + | <body> + | <p> + | "One" + | <p> + | "Two" diff --git a/test/data/tree-construction/adoption01.dat b/test/data/tree-construction/adoption01.dat new file mode 100644 index 0000000..2e1127e --- /dev/null +++ b/test/data/tree-construction/adoption01.dat @@ -0,0 +1,337 @@ +#data +<a><p></a></p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,10): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| <p> +| <a> + +#data +<a>1<p>2</a>3</p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,12): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <p> +| <a> +| "2" +| "3" + +#data +<a>1<button>2</a>3</button> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,17): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <button> +| <a> +| "2" +| "3" + +#data +<a>1<b>2</a>3</b> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,12): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <b> +| "2" +| <b> +| "3" + +#data +<a>1<div>2<div>3</a>4</div>5</div> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,20): adoption-agency-1.3 +(1,20): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <div> +| <a> +| "2" +| <div> +| <a> +| "3" +| "4" +| "5" + +#data +<table><a>1<p>2</a>3</p> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-implies-table-voodoo +(1,11): unexpected-character-implies-table-voodoo +(1,14): unexpected-start-tag-implies-table-voodoo +(1,15): unexpected-character-implies-table-voodoo +(1,19): unexpected-end-tag-implies-table-voodoo +(1,19): adoption-agency-1.3 +(1,20): unexpected-character-implies-table-voodoo +(1,24): unexpected-end-tag-implies-table-voodoo +(1,24): eof-in-table +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <p> +| <a> +| "2" +| "3" +| <table> + +#data +<b><b><a><p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): adoption-agency-1.3 +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <b> +| <a> +| <p> +| <a> + +#data +<b><a><b><p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): adoption-agency-1.3 +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <a> +| <b> +| <b> +| <p> +| <a> + +#data +<a><b><b><p></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): adoption-agency-1.3 +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <b> +| <b> +| <b> +| <p> +| <a> + +#data +<p>1<s id="A">2<b id="B">3</p>4</s>5</b> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,30): unexpected-end-tag +(1,35): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <p> +| "1" +| <s> +| id="A" +| "2" +| <b> +| id="B" +| "3" +| <s> +| id="A" +| <b> +| id="B" +| "4" +| <b> +| id="B" +| "5" + +#data +<table><a>1<td>2</td>3</table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-implies-table-voodoo +(1,11): unexpected-character-implies-table-voodoo +(1,15): unexpected-cell-in-table-body +(1,30): unexpected-implied-end-tag-in-table-view +#document +| <html> +| <head> +| <body> +| <a> +| "1" +| <a> +| "3" +| <table> +| <tbody> +| <tr> +| <td> +| "2" + +#data +<table>A<td>B</td>C</table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,8): unexpected-character-implies-table-voodoo +(1,12): unexpected-cell-in-table-body +(1,22): unexpected-character-implies-table-voodoo +#document +| <html> +| <head> +| <body> +| "AC" +| <table> +| <tbody> +| <tr> +| <td> +| "B" + +#data +<a><svg><tr><input></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag +(1,23): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| <svg svg> +| <svg tr> +| <svg input> + +#data +<div><a><b><div><div><div><div><div><div><div><div><div><div></a> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): adoption-agency-1.3 +(1,65): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <a> +| <b> +| <b> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <a> +| <div> +| <div> + +#data +<div><a><b><u><i><code><div></a> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,32): adoption-agency-1.3 +(1,32): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <a> +| <b> +| <u> +| <i> +| <code> +| <u> +| <i> +| <code> +| <div> +| <a> + +#data +<b><b><b><b>x</b></b></b></b>y +#errors +(1,3): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <b> +| <b> +| <b> +| <b> +| "x" +| "y" + +#data +<p><b><b><b><b><p>x +#errors +(1,3): expected-doctype-but-got-start-tag +(1,18): unexpected-end-tag +(1,19): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| <b> +| <b> +| <b> +| <p> +| <b> +| <b> +| <b> +| "x" diff --git a/test/data/tree-construction/adoption02.dat b/test/data/tree-construction/adoption02.dat new file mode 100644 index 0000000..e54d803 --- /dev/null +++ b/test/data/tree-construction/adoption02.dat @@ -0,0 +1,39 @@ +#data +<b>1<i>2<p>3</b>4 +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): adoption-agency-1.3 +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| "1" +| <i> +| "2" +| <i> +| <p> +| <b> +| "3" +| "4" + +#data +<a><div><style></style><address><a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,35): unexpected-start-tag-implies-end-tag +(1,35): adoption-agency-1.3 +(1,35): adoption-agency-1.3 +(1,35): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <div> +| <a> +| <style> +| <address> +| <a> +| <a> diff --git a/test/data/tree-construction/comments01.dat b/test/data/tree-construction/comments01.dat new file mode 100644 index 0000000..35ec6cc --- /dev/null +++ b/test/data/tree-construction/comments01.dat @@ -0,0 +1,178 @@ +#data +FOO<!-- BAR -->BAZ +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR --> +| "BAZ" + +#data +FOO<!-- BAR --!>BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-bang-after-double-dash-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR --> +| "BAZ" + +#data +FOO<!-- BAR -- >BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-char-in-comment +(1,21): eof-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR -- >BAZ --> + +#data +FOO<!-- BAR -- <QUX> -- MUX -->BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-char-in-comment +(1,24): unexpected-char-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR -- <QUX> -- MUX --> +| "BAZ" + +#data +FOO<!-- BAR -- <QUX> -- MUX --!>BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-char-in-comment +(1,24): unexpected-char-in-comment +(1,31): unexpected-bang-after-double-dash-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR -- <QUX> -- MUX --> +| "BAZ" + +#data +FOO<!-- BAR -- <QUX> -- MUX -- >BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,15): unexpected-char-in-comment +(1,24): unexpected-char-in-comment +(1,31): unexpected-char-in-comment +(1,35): eof-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- BAR -- <QUX> -- MUX -- >BAZ --> + +#data +FOO<!---->BAZ +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- --> +| "BAZ" + +#data +FOO<!--->BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,9): incorrect-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- --> +| "BAZ" + +#data +FOO<!-->BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,8): incorrect-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- --> +| "BAZ" + +#data +<?xml version="1.0">Hi +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,22): expected-doctype-but-got-chars +#document +| <!-- ?xml version="1.0" --> +| <html> +| <head> +| <body> +| "Hi" + +#data +<?xml version="1.0"> +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,20): expected-doctype-but-got-eof +#document +| <!-- ?xml version="1.0" --> +| <html> +| <head> +| <body> + +#data +<?xml version +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,13): expected-doctype-but-got-eof +#document +| <!-- ?xml version --> +| <html> +| <head> +| <body> + +#data +FOO<!----->BAZ +#errors +(1,3): expected-doctype-but-got-chars +(1,10): unexpected-dash-after-double-dash-in-comment +#document +| <html> +| <head> +| <body> +| "FOO" +| <!-- - --> +| "BAZ" + +#data +<html><!-- comment --><title>Comment before head</title> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <!-- comment --> +| <head> +| <title> +| "Comment before head" +| <body> diff --git a/test/data/tree-construction/doctype01.dat b/test/data/tree-construction/doctype01.dat new file mode 100644 index 0000000..cec6638 --- /dev/null +++ b/test/data/tree-construction/doctype01.dat @@ -0,0 +1,424 @@ +#data +<!DOCTYPE html>Hello +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!dOctYpE HtMl>Hello +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPEhtml>Hello +#errors +(1,9): need-space-after-doctype +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE>Hello +#errors +(1,9): need-space-after-doctype +(1,10): expected-doctype-name-but-got-right-bracket +(1,10): unknown-doctype +#document +| <!DOCTYPE > +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE >Hello +#errors +(1,11): expected-doctype-name-but-got-right-bracket +(1,11): unknown-doctype +#document +| <!DOCTYPE > +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato>Hello +#errors +(1,17): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato >Hello +#errors +(1,18): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato taco>Hello +#errors +(1,17): expected-space-or-right-bracket-in-doctype +(1,22): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato taco "ddd>Hello +#errors +(1,17): expected-space-or-right-bracket-in-doctype +(1,27): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato sYstEM>Hello +#errors +(1,24): unexpected-char-in-doctype +(1,24): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato sYstEM >Hello +#errors +(1,28): unexpected-char-in-doctype +(1,28): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato sYstEM ggg>Hello +#errors +(1,34): unexpected-char-in-doctype +(1,37): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEM taco >Hello +#errors +(1,25): unexpected-char-in-doctype +(1,31): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEM 'taco"'>Hello +#errors +(1,32): unknown-doctype +#document +| <!DOCTYPE potato "" "taco""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEM "taco">Hello +#errors +(1,31): unknown-doctype +#document +| <!DOCTYPE potato "" "taco"> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEM "tai'co">Hello +#errors +(1,33): unknown-doctype +#document +| <!DOCTYPE potato "" "tai'co"> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato SYSTEMtaco "ddd">Hello +#errors +(1,24): unexpected-char-in-doctype +(1,34): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato grass SYSTEM taco>Hello +#errors +(1,17): expected-space-or-right-bracket-in-doctype +(1,35): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato pUbLIc>Hello +#errors +(1,24): unexpected-end-of-doctype +(1,24): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato pUbLIc >Hello +#errors +(1,25): unexpected-end-of-doctype +(1,25): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato pUbLIcgoof>Hello +#errors +(1,24): unexpected-char-in-doctype +(1,28): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC goof>Hello +#errors +(1,25): unexpected-char-in-doctype +(1,29): unknown-doctype +#document +| <!DOCTYPE potato> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC "go'of">Hello +#errors +(1,32): unknown-doctype +#document +| <!DOCTYPE potato "go'of" ""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC 'go'of'>Hello +#errors +(1,29): unexpected-char-in-doctype +(1,32): unknown-doctype +#document +| <!DOCTYPE potato "go" ""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC 'go:hh of' >Hello +#errors +(1,38): unknown-doctype +#document +| <!DOCTYPE potato "go:hh of" ""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE potato PUBLIC "W3C-//dfdf" SYSTEM ggg>Hello +#errors +(1,38): unexpected-char-in-doctype +(1,48): unknown-doctype +#document +| <!DOCTYPE potato "W3C-//dfdf" ""> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" + "http://www.w3.org/TR/html4/strict.dtd">Hello +#errors +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE ...>Hello +#errors +(1,14): unknown-doctype +#document +| <!DOCTYPE ...> +| <html> +| <head> +| <body> +| "Hello" + +#data +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +#errors +(2,58): unknown-doctype +#document +| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" +"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> +#errors +(2,54): unknown-doctype +#document +| <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE root-element [SYSTEM OR PUBLIC FPI] "uri" [ +<!-- internal declarations --> +]> +#errors +(1,23): expected-space-or-right-bracket-in-doctype +(2,30): unknown-doctype +#document +| <!DOCTYPE root-element> +| <html> +| <head> +| <body> +| "]>" + +#data +<!DOCTYPE html PUBLIC + "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" + "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> +#errors +(3,53): unknown-doctype +#document +| <!DOCTYPE html "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML SYSTEM "http://www.w3.org/DTD/HTML4-strict.dtd"><body><b>Mine!</b></body> +#errors +(1,63): unknown-doctype +#document +| <!DOCTYPE html "" "http://www.w3.org/DTD/HTML4-strict.dtd"> +| <html> +| <head> +| <body> +| <b> +| "Mine!" + +#data +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"> +#errors +(1,50): unexpected-char-in-doctype +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> +#errors +(1,50): unexpected-char-in-doctype +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01//EN"'http://www.w3.org/TR/html4/strict.dtd'> +#errors +(1,21): unexpected-char-in-doctype +(1,49): unexpected-char-in-doctype +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> + +#data +<!DOCTYPE HTML PUBLIC'-//W3C//DTD HTML 4.01//EN''http://www.w3.org/TR/html4/strict.dtd'> +#errors +(1,21): unexpected-char-in-doctype +(1,49): unexpected-char-in-doctype +#document +| <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> +| <html> +| <head> +| <body> diff --git a/test/data/tree-construction/domjs-unsafe.dat b/test/data/tree-construction/domjs-unsafe.dat Binary files differnew file mode 100644 index 0000000..34b4e62 --- /dev/null +++ b/test/data/tree-construction/domjs-unsafe.dat diff --git a/test/data/tree-construction/entities01.dat b/test/data/tree-construction/entities01.dat new file mode 100644 index 0000000..20d53a0 --- /dev/null +++ b/test/data/tree-construction/entities01.dat @@ -0,0 +1,723 @@ +#data +FOO>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO>BAR" + +#data +FOO>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,6): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOO>BAR" + +#data +FOO> BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,6): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOO> BAR" + +#data +FOO>;;BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO>;;BAR" + +#data +I'm ¬it; I tell you +#errors +(1,4): expected-doctype-but-got-chars +(1,9): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "I'm 竅it; I tell you" + +#data +I'm ∉ I tell you +#errors +(1,4): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "I'm I tell you" + +#data +FOO& BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO& BAR" + +#data +FOO&<BAR> +#errors +(1,3): expected-doctype-but-got-chars +(1,9): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO&" +| <bar> + +#data +FOO&&&>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO&&&>BAR" + +#data +FOO)BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO)BAR" + +#data +FOOABAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOABAR" + +#data +FOOABAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOABAR" + +#data +FOO&#BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,5): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO&#BAR" + +#data +FOO&#ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,5): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO&#ZOO" + +#data +FOOºR +#errors +(1,3): expected-doctype-but-got-chars +(1,7): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO繙R" + +#data +FOO&#xZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,6): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO&#xZOO" + +#data +FOO&#XZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,6): expected-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO&#XZOO" + +#data +FOO)BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,7): numeric-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOO)BAR" + +#data +FOO䆺R +#errors +(1,3): expected-doctype-but-got-chars +(1,10): numeric-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOO摧" + +#data +FOOAZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,8): numeric-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| "FOOAZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO嚙稿OO" + +#data +FOOxZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOxZOO" + +#data +FOOyZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOyZOO" + +#data +FOO€ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO柬OO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO‚ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOƒZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO„ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO…ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO后OO" + +#data +FOO†ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO‡ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO╴OO" + +#data +FOOˆZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO‰ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO豈OO" + +#data +FOOŠZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO‹ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO鈽OO" + +#data +FOOŒZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOŽZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO鬚ZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO‘ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO’ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO“ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO”ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO•ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO兛OO" + +#data +FOO–ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO—ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO˜ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO™ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO兛OO" + +#data +FOOšZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO禳ZOO" + +#data +FOO›ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO暢OO" + +#data +FOOœZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOžZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO鱉ZOO" + +#data +FOOŸZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO顫ZOO" + +#data +FOO ZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOO퟿ZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO璘OO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO嚙稿OO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO嚙稿OO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO嚙稿OO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,11): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO嚙稿OO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO蕪ZOO" + +#data +FOO􈟔ZOO +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOOZOO" + +#data +FOOZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO蕞ZOO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO嚙稿OO" + +#data +FOO�ZOO +#errors +(1,3): expected-doctype-but-got-chars +(1,13): illegal-codepoint-for-numeric-entity +#document +| <html> +| <head> +| <body> +| "FOO嚙稿OO" diff --git a/test/data/tree-construction/entities02.dat b/test/data/tree-construction/entities02.dat new file mode 100644 index 0000000..f117f06 --- /dev/null +++ b/test/data/tree-construction/entities02.dat @@ -0,0 +1,283 @@ +#data +<div bar="ZZ>YY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>YY" + +#data +<div bar="ZZ&"></div> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&" + +#data +<div bar='ZZ&'></div> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&" + +#data +<div bar=ZZ&></div> +#errors +(1,13): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&" + +#data +<div bar="ZZ>=YY"></div> +#errors +(1,15): named-entity-without-semicolon +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>=YY" + +#data +<div bar="ZZ>0YY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>0YY" + +#data +<div bar="ZZ>9YY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>9YY" + +#data +<div bar="ZZ>aYY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>aYY" + +#data +<div bar="ZZ>ZYY"></div> +#errors +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>ZYY" + +#data +<div bar="ZZ> YY"></div> +#errors +(1,15): named-entity-without-semicolon +(1,20): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ> YY" + +#data +<div bar="ZZ>"></div> +#errors +(1,15): named-entity-without-semicolon +(1,17): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>" + +#data +<div bar='ZZ>'></div> +#errors +(1,15): named-entity-without-semicolon +(1,17): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>" + +#data +<div bar=ZZ>></div> +#errors +(1,14): named-entity-without-semicolon +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ>" + +#data +<div bar="ZZ£_id=23"></div> +#errors +(1,18): named-entity-without-semicolon +(1,26): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ瞿_id=23" + +#data +<div bar="ZZ&prod_id=23"></div> +#errors +(1,25): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&prod_id=23" + +#data +<div bar="ZZ£_id=23"></div> +#errors +(1,27): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ瞿_id=23" + +#data +<div bar="ZZ∏_id=23"></div> +#errors +(1,26): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ_id=23" + +#data +<div bar="ZZ£=23"></div> +#errors +(1,18): named-entity-without-semicolon +(1,23): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ£=23" + +#data +<div bar="ZZ&prod=23"></div> +#errors +(1,22): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| bar="ZZ&prod=23" + +#data +<div>ZZ£_id=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,13): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ瞿_id=23" + +#data +<div>ZZ&prod_id=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ&prod_id=23" + +#data +<div>ZZ£_id=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ瞿_id=23" + +#data +<div>ZZ∏_id=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ_id=23" + +#data +<div>ZZ£=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,13): named-entity-without-semicolon +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ瞿=23" + +#data +<div>ZZ&prod=23</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "ZZ&prod=23" diff --git a/test/data/tree-construction/html5test-com.dat b/test/data/tree-construction/html5test-com.dat new file mode 100644 index 0000000..8c6ec40 --- /dev/null +++ b/test/data/tree-construction/html5test-com.dat @@ -0,0 +1,291 @@ +#data +<div<div> +#errors +(1,9): expected-doctype-but-got-start-tag +(1,9): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div<div> + +#data +<div foo<bar=''> +#errors +(1,9): invalid-character-in-attribute-name +(1,16): expected-doctype-but-got-start-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| foo<bar="" + +#data +<div foo=`bar`> +#errors +(1,10): equals-in-unquoted-attribute-value +(1,14): unexpected-character-in-unquoted-attribute-value +(1,15): expected-doctype-but-got-start-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| foo="`bar`" + +#data +<div \"foo=''> +#errors +(1,7): invalid-character-in-attribute-name +(1,14): expected-doctype-but-got-start-tag +(1,14): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| \"foo="" + +#data +<a href='\nbar'></a> +#errors +(1,16): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <a> +| href="\nbar" + +#data +<!DOCTYPE html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +⟨⟩ +#errors +(1,6): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "兩" + +#data +' +#errors +(1,6): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "'" + +#data +ⅈ +#errors +(1,12): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "" + +#data +𝕂 +#errors +(1,6): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "" + +#data +∉ +#errors +(1,9): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "" + +#data +<?import namespace="foo" implementation="#bar"> +#errors +(1,1): expected-tag-name-but-got-question-mark +(1,47): expected-doctype-but-got-eof +#document +| <!-- ?import namespace="foo" implementation="#bar" --> +| <html> +| <head> +| <body> + +#data +<!--foo--bar--> +#errors +(1,10): unexpected-char-in-comment +(1,15): expected-doctype-but-got-eof +#document +| <!-- foo--bar --> +| <html> +| <head> +| <body> + +#data +<![CDATA[x]]> +#errors +(1,2): expected-dashes-or-doctype +(1,13): expected-doctype-but-got-eof +#document +| <!-- [CDATA[x]] --> +| <html> +| <head> +| <body> + +#data +<textarea><!--</textarea>--></textarea> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,39): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "<!--" +| "-->" + +#data +<textarea><!--</textarea>--> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "<!--" +| "-->" + +#data +<style><!--</style>--></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,30): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "<!--" +| <body> +| "-->" + +#data +<style><!--</style>--> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--" +| <body> +| "-->" + +#data +<ul><li>A </li> <li>B</li></ul> +#errors +(1,4): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <ul> +| <li> +| "A " +| " " +| <li> +| "B" + +#data +<table><form><input type=hidden><input></form><div></div></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,13): unexpected-form-in-table +(1,32): unexpected-hidden-input-in-table +(1,39): unexpected-start-tag-implies-table-voodoo +(1,46): unexpected-end-tag-implies-table-voodoo +(1,46): unexpected-end-tag +(1,51): unexpected-start-tag-implies-table-voodoo +(1,57): unexpected-end-tag-implies-table-voodoo +#document +| <html> +| <head> +| <body> +| <input> +| <div> +| <table> +| <form> +| <input> +| type="hidden" + +#data +<i>A<b>B<p></i>C</b>D +#errors +(1,3): expected-doctype-but-got-start-tag +(1,15): adoption-agency-1.3 +(1,20): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <i> +| "A" +| <b> +| "B" +| <b> +| <p> +| <b> +| <i> +| "C" +| "D" + +#data +<div></div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> + +#data +<svg></svg> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <svg svg> + +#data +<math></math> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <math math> diff --git a/test/data/tree-construction/inbody01.dat b/test/data/tree-construction/inbody01.dat new file mode 100644 index 0000000..10f6520 --- /dev/null +++ b/test/data/tree-construction/inbody01.dat @@ -0,0 +1,54 @@ +#data +<button>1</foo> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,15): unexpected-end-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <button> +| "1" + +#data +<foo>1<p>2</foo> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,16): unexpected-end-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <foo> +| "1" +| <p> +| "2" + +#data +<dd>1</foo> +#errors +(1,4): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <dd> +| "1" + +#data +<foo>1<dd>2</foo> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): unexpected-end-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <foo> +| "1" +| <dd> +| "2" diff --git a/test/data/tree-construction/isindex.dat b/test/data/tree-construction/isindex.dat new file mode 100644 index 0000000..42ef997 --- /dev/null +++ b/test/data/tree-construction/isindex.dat @@ -0,0 +1,47 @@ +#data +<isindex> +#errors +(1,9): expected-doctype-but-got-start-tag +(1,9): deprecated-tag +#document +| <html> +| <head> +| <body> +| <form> +| <hr> +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| <hr> + +#data +<isindex name="A" action="B" prompt="C" foo="D"> +#errors +(1,48): expected-doctype-but-got-start-tag +(1,48): deprecated-tag +#document +| <html> +| <head> +| <body> +| <form> +| action="B" +| <hr> +| <label> +| "C" +| <input> +| foo="D" +| name="isindex" +| <hr> + +#data +<form><isindex> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,15): deprecated-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <form> diff --git a/test/data/tree-construction/main-element.dat b/test/data/tree-construction/main-element.dat new file mode 100644 index 0000000..0d2102e --- /dev/null +++ b/test/data/tree-construction/main-element.dat @@ -0,0 +1,44 @@ +#data +<!doctype html><p>foo<main>bar<p>baz +#errors +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "foo" +| <main> +| "bar" +| <p> +| "baz" + +#data +<!doctype html><main><p>foo</main>bar +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <main> +| <p> +| "foo" +| "bar" + +#data +<!DOCTYPE html>xxx<svg><x><g><a><main><b> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "xxx" +| <svg svg> +| <svg x> +| <svg g> +| <svg a> +| <svg main> +| <b> diff --git a/test/data/tree-construction/pending-spec-changes-plain-text-unsafe.dat b/test/data/tree-construction/pending-spec-changes-plain-text-unsafe.dat Binary files differnew file mode 100644 index 0000000..3ee8cec --- /dev/null +++ b/test/data/tree-construction/pending-spec-changes-plain-text-unsafe.dat diff --git a/test/data/tree-construction/pending-spec-changes.dat b/test/data/tree-construction/pending-spec-changes.dat new file mode 100644 index 0000000..1647d7f --- /dev/null +++ b/test/data/tree-construction/pending-spec-changes.dat @@ -0,0 +1,46 @@ +#data +<input type="hidden"><frameset> +#errors +(1,21): expected-doctype-but-got-start-tag +(1,31): unexpected-start-tag +(1,31): eof-in-frameset +#document +| <html> +| <head> +| <frameset> + +#data +<!DOCTYPE html><table><caption><svg>foo</table>bar +#errors +(1,47): unexpected-end-tag +(1,47): end-table-tag-in-caption +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <svg svg> +| "foo" +| "bar" + +#data +<table><tr><td><svg><desc><td></desc><circle> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,30): unexpected-cell-end-tag +(1,37): unexpected-end-tag +(1,45): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg desc> +| <td> +| <circle> diff --git a/test/data/tree-construction/plain-text-unsafe.dat b/test/data/tree-construction/plain-text-unsafe.dat Binary files differnew file mode 100644 index 0000000..f40dd57 --- /dev/null +++ b/test/data/tree-construction/plain-text-unsafe.dat diff --git a/test/data/tree-construction/scriptdata01.dat b/test/data/tree-construction/scriptdata01.dat new file mode 100644 index 0000000..710f541 --- /dev/null +++ b/test/data/tree-construction/scriptdata01.dat @@ -0,0 +1,352 @@ +#data +FOO<script>'Hello'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'Hello'" +| "BAR" + +#data +FOO<script></script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script></script >BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script></script/>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,21): self-closing-flag-on-end-tag +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script></script/ >BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,20): unexpected-character-after-solidus-in-tag +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script type="text/plain"></scriptx>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,42): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "</scriptx>BAR" + +#data +FOO<script></script foo=">" dd>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,31): attributes-in-end-tag +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "BAR" + +#data +FOO<script>'<'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<'" +| "BAR" + +#data +FOO<script>'<!'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!'" +| "BAR" + +#data +FOO<script>'<!-'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-'" +| "BAR" + +#data +FOO<script>'<!--'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!--'" +| "BAR" + +#data +FOO<script>'<!---'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!---'" +| "BAR" + +#data +FOO<script>'<!-->'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-->'" +| "BAR" + +#data +FOO<script>'<!-->'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-->'" +| "BAR" + +#data +FOO<script>'<!-- potato'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-- potato'" +| "BAR" + +#data +FOO<script>'<!-- <sCrIpt'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-- <sCrIpt'" +| "BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt>'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,56): expected-script-data-but-got-eof +(1,56): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt>'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt> -'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,58): expected-script-data-but-got-eof +(1,58): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt> -'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt> --'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,59): expected-script-data-but-got-eof +(1,59): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt> --'</script>BAR" + +#data +FOO<script>'<!-- <sCrIpt> -->'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| "'<!-- <sCrIpt> -->'" +| "BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt> --!>'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,61): expected-script-data-but-got-eof +(1,61): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt> --!>'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt> -- >'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,61): expected-script-data-but-got-eof +(1,61): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt> -- >'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt '</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,56): expected-script-data-but-got-eof +(1,56): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt '</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +(1,56): expected-script-data-but-got-eof +(1,56): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt/'</script>BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt\'</script>BAR +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt\'" +| "BAR" + +#data +FOO<script type="text/plain">'<!-- <sCrIpt/'</script>BAR</script>QUX +#errors +(1,3): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "FOO" +| <script> +| type="text/plain" +| "'<!-- <sCrIpt/'</script>BAR" +| "QUX" diff --git a/test/data/tree-construction/scripted/adoption01.dat b/test/data/tree-construction/scripted/adoption01.dat new file mode 100644 index 0000000..4e08d0e --- /dev/null +++ b/test/data/tree-construction/scripted/adoption01.dat @@ -0,0 +1,15 @@ +#data +<p><b id="A"><script>document.getElementById("A").id = "B"</script></p>TEXT</b> +#errors +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| id="B" +| <script> +| "document.getElementById("A").id = "B"" +| <b> +| id="A" +| "TEXT" diff --git a/test/data/tree-construction/scripted/ark.dat b/test/data/tree-construction/scripted/ark.dat new file mode 100644 index 0000000..acbac41 --- /dev/null +++ b/test/data/tree-construction/scripted/ark.dat @@ -0,0 +1,26 @@ +#data +<p><font size=4><font size=4><font size=4><script>document.getElementsByTagName("font")[2].setAttribute("size", "5");</script><font size=4><p>X +#errors +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="5" +| <script> +| "document.getElementsByTagName("font")[2].setAttribute("size", "5");" +| <font> +| size="4" +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| "X" diff --git a/test/data/tree-construction/scripted/webkit01.dat b/test/data/tree-construction/scripted/webkit01.dat new file mode 100644 index 0000000..ef4a41c --- /dev/null +++ b/test/data/tree-construction/scripted/webkit01.dat @@ -0,0 +1,28 @@ +#data +1<script>document.write("2")</script>3 +#errors +#document +| <html> +| <head> +| <body> +| "1" +| <script> +| "document.write("2")" +| "23" + +#data +1<script>document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")</script>4 +#errors +#document +| <html> +| <head> +| <body> +| "1" +| <script> +| "document.write("<script>document.write('2')</scr"+ "ipt><script>document.write('3')</scr" + "ipt>")" +| <script> +| "document.write('2')" +| "2" +| <script> +| "document.write('3')" +| "34" diff --git a/test/data/tree-construction/tables01.dat b/test/data/tree-construction/tables01.dat new file mode 100644 index 0000000..f0caaa3 --- /dev/null +++ b/test/data/tree-construction/tables01.dat @@ -0,0 +1,286 @@ +#data +<table><th> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,11): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <th> + +#data +<table><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,11): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><col foo='bar'> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,22): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <col> +| foo="bar" + +#data +<table><colgroup></html>foo +#errors +(1,7): expected-doctype-but-got-start-tag +(1,24): unexpected-end-tag +(1,27): foster-parenting-character-in-table +(1,27): foster-parenting-character-in-table +(1,27): foster-parenting-character-in-table +(1,27): eof-in-table +#document +| <html> +| <head> +| <body> +| "foo" +| <table> +| <colgroup> + +#data +<table></table><p>foo +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <table> +| <p> +| "foo" + +#data +<table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-end-tag +(1,24): unexpected-end-tag +(1,30): unexpected-end-tag +(1,41): unexpected-end-tag +(1,48): unexpected-end-tag +(1,56): unexpected-end-tag +(1,61): unexpected-end-tag +(1,69): unexpected-end-tag +(1,74): unexpected-end-tag +(1,82): unexpected-end-tag +(1,87): unexpected-end-tag +(1,91): unexpected-cell-in-table-body +(1,91): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><select><option>3</select></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-table-voodoo +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| "3" +| <table> + +#data +<table><select><table></table></select></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-table-voodoo +(1,22): unexpected-table-element-start-tag-in-select-in-table +(1,22): unexpected-start-tag-implies-end-tag +(1,39): unexpected-end-tag +(1,47): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <select> +| <table> +| <table> + +#data +<table><select></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-table-voodoo +(1,23): unexpected-table-element-end-tag-in-select-in-table +#document +| <html> +| <head> +| <body> +| <select> +| <table> + +#data +<table><select><option>A<tr><td>B</td></tr></table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-table-voodoo +(1,28): unexpected-table-element-start-tag-in-select-in-table +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| "A" +| <table> +| <tbody> +| <tr> +| <td> +| "B" + +#data +<table><td></body></caption></col></colgroup></html>foo +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,18): unexpected-end-tag +(1,28): unexpected-end-tag +(1,34): unexpected-end-tag +(1,45): unexpected-end-tag +(1,52): unexpected-end-tag +(1,55): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "foo" + +#data +<table><td>A</table>B +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "A" +| "B" + +#data +<table><tr><caption> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <caption> + +#data +<table><tr></body></caption></col></colgroup></html></td></th><td>foo +#errors +(1,7): expected-doctype-but-got-start-tag +(1,18): unexpected-end-tag-in-table-row +(1,28): unexpected-end-tag-in-table-row +(1,34): unexpected-end-tag-in-table-row +(1,45): unexpected-end-tag-in-table-row +(1,52): unexpected-end-tag-in-table-row +(1,57): unexpected-end-tag-in-table-row +(1,62): unexpected-end-tag-in-table-row +(1,69): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "foo" + +#data +<table><td><tr> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,15): eof-in-table +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <tr> + +#data +<table><td><button><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,23): unexpected-cell-end-tag +(1,23): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <button> +| <td> + +#data +<table><tr><td><svg><desc><td> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,30): unexpected-cell-end-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg desc> +| <td> diff --git a/test/data/tree-construction/template.dat b/test/data/tree-construction/template.dat new file mode 100644 index 0000000..3ae40c3 --- /dev/null +++ b/test/data/tree-construction/template.dat @@ -0,0 +1,1320 @@ +#data +<body><template>Hello</template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| "Hello" + +#data +<template>Hello</template> +#errors +#document +| <html> +| <head> +| <template> +| content +| "Hello" +| <body> + +#data +<template></template><div></div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <body> +| <div> + +#data +<html><template>Hello</template> +#errors +#document +| <html> +| <head> +| <template> +| content +| "Hello" +| <body> + +#data +<head><template><div></div></template></head> +#errors +#document +| <html> +| <head> +| <template> +| content +| <div> +| <body> + +#data +<div><template><div><span></template><b> +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <template> +| content +| <div> +| <span> +| <b> + +#data +<div><template></div>Hello +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <template> +| content +| "Hello" + +#data +<div></template></div> +#errors +#document +| <html> +| <head> +| <body> +| <div> + +#data +<table><template></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content + +#data +<table><template></template></div> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content + +#data +<table><div><template></template></div> +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <template> +| content +| <table> + +#data +<table><template></template><div></div> +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <table> +| <template> +| content + +#data +<table> <template></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| " " +| <template> +| content + +#data +<table><tbody><template></template></tbody> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <template> +| content + +#data +<table><tbody><template></tbody></template> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <template> +| content + +#data +<table><tbody><template></template></tbody></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <template> +| content + +#data +<table><thead><template></template></thead> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <thead> +| <template> +| content + +#data +<table><tfoot><template></template></tfoot> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tfoot> +| <template> +| content + +#data +<select><template></template></select> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <template> +| content + +#data +<select><template><option></option></template></select> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <template> +| content +| <option> + +#data +<template><option></option></select><option></option></template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <option> +| <option> +| <body> + +#data +<select><template></template><option></select> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <template> +| content +| <option> + +#data +<select><option><template></template></select> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| <template> +| content + +#data +<select><template> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <template> +| content + +#data +<select><option></option><template> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| <template> +| content + +#data +<select><option></option><template><option> +#errors +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| <template> +| content +| <option> + +#data +<table><thead><template><td></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <thead> +| <template> +| content +| <td> + +#data +<table><template><thead></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <thead> + +#data +<body><table><template><td></tr><div></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <td> +| <div> + +#data +<table><template><thead></template></thead></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <thead> + +#data +<table><thead><template><tr></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <thead> +| <template> +| content +| <tr> + +#data +<table><template><tr></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <tr> + +#data +<table><tr><template><td> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <template> +| content +| <td> + +#data +<table><template><tr><template><td></template></tr></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <tr> +| <template> +| content +| <td> + +#data +<table><template><tr><template><td></td></template></tr></template></table> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <tr> +| <template> +| content +| <td> + +#data +<table><template><td></template> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <template> +| content +| <td> + +#data +<body><template><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> + +#data +<body><template><template><tr></tr></template><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <template> +| content +| <tr> +| <td> + +#data +<table><colgroup><template><col> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <template> +| content +| <col> + +#data +<frameset><template><frame></frame></template></frameset> +#errors +#document +| <html> +| <head> +| <frameset> +| <frame> + +#data +<template><frame></frame></frameset><frame></frame></template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <body> + +#data +<template><div><frameset><span></span></div><span></span></template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <div> +| <span> +| <span> +| <body> + +#data +<body><template><div><frameset><span></span></div><span></span></template></body> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <div> +| <span> +| <span> + +#data +<body><template><script>var i = 1;</script><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <script> +| "var i = 1;" +| <td> + +#data +<body><template><tr><div></div></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <div> + +#data +<body><template><tr></tr><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <tr> +| <td> + +#data +<body><template><td></td></tr><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><td></td><tbody><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><td></td><caption></caption><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><td></td><colgroup></caption><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><td></td></table><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <td> +| <td> + +#data +<body><template><tr></tr><tbody><tr></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <tr> + +#data +<body><template><tr></tr><caption><tr></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <tr> + +#data +<body><template><tr></tr></table><tr></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <tr> + +#data +<body><template><thead></thead><caption></caption><tbody></tbody></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <thead> +| <caption> +| <tbody> + +#data +<body><template><thead></thead></table><tbody></tbody></template></body> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <thead> +| <tbody> + +#data +<body><template><div><tr></tr></div></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <div> + +#data +<body><template><em>Hello</em></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <em> +| "Hello" + +#data +<body><template><!--comment--></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <!-- comment --> + +#data +<body><template><style></style><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <style> +| <td> + +#data +<body><template><meta><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <meta> +| <td> + +#data +<body><template><link><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <link> +| <td> + +#data +<body><template><template><tr></tr></template><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <template> +| content +| <tr> +| <td> + +#data +<body><table><colgroup><template><col></col></template></colgroup></table></body> +#errors +#document +| <html> +| <head> +| <body> +| <table> +| <colgroup> +| <template> +| content +| <col> + +#data +<body a=b><template><div></div><body c=d><div></div></body></template></body> +#errors +#document +| <html> +| <head> +| <body> +| a="b" +| <template> +| content +| <div> +| <div> + +#data +<html a=b><template><div><html b=c><span></template> +#errors +#document +| <html> +| a="b" +| <head> +| <template> +| content +| <div> +| <span> +| <body> + +#data +<html a=b><template><col></col><html b=c><col></col></template> +#errors +#document +| <html> +| a="b" +| <head> +| <template> +| content +| <col> +| <col> +| <body> + +#data +<html a=b><template><frame></frame><html b=c><frame></frame></template> +#errors +#document +| <html> +| a="b" +| <head> +| <template> +| content +| <body> + +#data +<body><template><tr></tr><template></template><td></td></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <tr> +| <template> +| content +| <tr> +| <td> + +#data +<body><template><thead></thead><template><tr></tr></template><tr></tr><tfoot></tfoot></template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <thead> +| <template> +| content +| <tr> +| <tbody> +| <tr> +| <tfoot> + +#data +<body><template><template><b><template></template></template>text</template> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <template> +| content +| <b> +| <template> +| content +| "text" + +#data +<body><template><col><colgroup> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col></colgroup> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col><colgroup></template></body> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col><div> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col></div> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><col>Hello +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <col> + +#data +<body><template><i><menu>Foo</i> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <i> +| <menu> +| <i> +| "Foo" + +#data +<body><template></div><div>Foo</div><template></template><tr></tr> +#errors +#document +| <html> +| <head> +| <body> +| <template> +| content +| <div> +| "Foo" +| <template> +| content + +#data +<body><div><template></div><tr><td>Foo</td></tr></template> +#errors +#document +| <html> +| <head> +| <body> +| <div> +| <template> +| content +| <tr> +| <td> +| "Foo" + +#data +<template></figcaption><sub><table></table> +#errors +#document +| <html> +| <head> +| <template> +| content +| <sub> +| <table> +| <body> + +#data +<template><template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <body> + +#data +<template><div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <div> +| <body> + +#data +<template><template><div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <div> +| <body> + +#data +<template><template><table> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <table> +| <body> + +#data +<template><template><tbody> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <tbody> +| <body> + +#data +<template><template><tr> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <tr> +| <body> + +#data +<template><template><td> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <td> +| <body> + +#data +<template><template><caption> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <caption> +| <body> + +#data +<template><template><colgroup> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <colgroup> +| <body> + +#data +<template><template><col> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <col> +| <body> + +#data +<template><template><tbody><select> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <tbody> +| <select> +| <body> + +#data +<template><template><table>Foo +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| "Foo" +| <table> +| <body> + +#data +<template><template><frame> +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <body> + +#data +<template><template><script>var i +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <script> +| "var i" +| <body> + +#data +<template><template><style>var i +#errors +#document +| <html> +| <head> +| <template> +| content +| <template> +| content +| <style> +| "var i" +| <body> + +#data +<template><table></template><body><span>Foo +#errors +#document +| <html> +| <head> +| <template> +| content +| <table> +| <body> +| <span> +| "Foo" + +#data +<template><td></template><body><span>Foo +#errors +#document +| <html> +| <head> +| <template> +| content +| <td> +| <body> +| <span> +| "Foo" + +#data +<template><object></template><body><span>Foo +#errors +#document +| <html> +| <head> +| <template> +| content +| <object> +| <body> +| <span> +| "Foo" + +#data +<template><svg><template> +#errors +#document +| <html> +| <head> +| <template> +| content +| <svg svg> +| <svg template> +| <body> + +#data +<template><svg><foo><template><foreignObject><div></template><div> +#errors +#document +| <html> +| <head> +| <template> +| content +| <svg svg> +| <svg foo> +| <svg template> +| <svg foreignObject> +| <div> +| <body> +| <div> + +#data +<dummy><template><span></dummy> +#errors +#document +| <html> +| <head> +| <body> +| <dummy> +| <template> +| content +| <span> + +#data +<body><table><tr><td><select><template>Foo</template><caption>A</table> +#errors +(1,62): unexpected-caption-in-select-in-table +(1,71): unexpected-table-end-in-caption +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <select> +| <template> +| content +| "Foo" +| <caption> +| "A" + +#data +<body></body><template> +#errors +(1,23): template-after-body +(1,24): eof-in-template +#document +| <html> +| <head> +| <body> +| <template> +| content + +#data +<head></head><template> +#errors +(1,23): template-after-head +(1,24): eof-in-template +#document +| <html> +| <head> +| <template> +| content +| <body> + +#data +<head></head><template>Foo</template> +#errors +(1,23): template-after-head +#document +| <html> +| <head> +| <template> +| content +| "Foo" +| <body> diff --git a/test/data/tree-construction/tests1.dat b/test/data/tree-construction/tests1.dat index 70189ba..f12e871 100644 --- a/test/data/tree-construction/tests1.dat +++ b/test/data/tree-construction/tests1.dat @@ -1,7 +1,7 @@ #data Test #errors -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. +(1,0): expected-doctype-but-got-chars #document | <html> | <head> @@ -11,7 +11,7 @@ Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #data <p>One<p>Two #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. +(1,3): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -24,7 +24,7 @@ Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. #data Line1<br>Line2<br>Line3<br>Line4 #errors -Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE. +(1,0): expected-doctype-but-got-chars #document | <html> | <head> @@ -40,7 +40,7 @@ Line: 1 Col: 5 Unexpected non-space characters. Expected DOCTYPE. #data <html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -49,7 +49,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <head> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -58,7 +58,7 @@ Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. #data <body> #errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -67,7 +67,7 @@ Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. #data <html><head> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -76,7 +76,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head></head> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -85,7 +85,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head></head><body> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -94,7 +94,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head></head><body></body> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -103,7 +103,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head><body></body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -112,9 +112,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><head></body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end tag (body). -Line: 1 Col: 26 Unexpected end tag (html). +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -123,7 +121,7 @@ Line: 1 Col: 26 Unexpected end tag (html). #data <html><head><body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -132,7 +130,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <html><body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -141,7 +139,7 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <body></html> #errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -150,8 +148,7 @@ Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. #data <head></html> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html). Ignored. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -160,7 +157,7 @@ Line: 1 Col: 13 Unexpected end tag (html). Ignored. #data </head> #errors -Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE. +(1,7): expected-doctype-but-got-end-tag #document | <html> | <head> @@ -169,8 +166,7 @@ Line: 1 Col: 7 Unexpected end tag (head). Expected DOCTYPE. #data </body> #errors -Line: 1 Col: 7 Unexpected end tag (body). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element. +(1,7): expected-doctype-but-got-end-tag element. #document | <html> | <head> @@ -179,8 +175,7 @@ Line: 1 Col: 7 Unexpected end tag (body) after the (implied) root element. #data </html> #errors -Line: 1 Col: 7 Unexpected end tag (html). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element. +(1,7): expected-doctype-but-got-end-tag element. #document | <html> | <head> @@ -189,10 +184,10 @@ Line: 1 Col: 7 Unexpected end tag (html) after the (implied) root element. #data <b><table><td><i></table> #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,25): unexpected-cell-end-tag +(1,25): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -207,11 +202,11 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <b><table><td></b><i></table>X #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 30 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,18): unexpected-end-tag +(1,29): unexpected-cell-end-tag +(1,30): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -227,9 +222,9 @@ Line: 1 Col: 30 Expected closing tag. Unexpected end of file. #data <h1>Hello<h2>World #errors -4: Start tag seen without seeing a doctype first. Expected <!DOCTYPE html>. -13: Heading cannot be a child of another heading. -18: End of file seen and there were open elements. +(1,4): expected-doctype-but-got-start-tag +(1,13): unexpected-start-tag +(1,18): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -242,10 +237,10 @@ Line: 1 Col: 30 Expected closing tag. Unexpected end of file. #data <a><p>X<a>Y</a>Z</p></a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 10 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +(1,3): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-implies-end-tag +(1,10): adoption-agency-1.3 +(1,24): unexpected-end-tag #document | <html> | <head> @@ -259,26 +254,44 @@ Line: 1 Col: 24 End tag (a) violates step 1, paragraph 1 of the adoption agency | "Z" #data -<b><button></b></button></b> +<b><button>foo</b>bar #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +(1,3): expected-doctype-but-got-start-tag +(1,18): adoption-agency-1.3 +(1,21): expected-closing-tag-but-got-eof #document | <html> | <head> | <body> | <b> +| <button> +| <b> +| "foo" +| "bar" + +#data +<!DOCTYPE html><span><button>foo</span>bar +#errors +(1,39): unexpected-end-tag +(1,42): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <span> | <button> +| "foobar" #data <p><b><div><marquee></p></b></div>X #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -Line: 1 Col: 24 Unexpected end tag (p). Ignored. -Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +(1,24): unexpected-end-tag +(1,28): unexpected-end-tag +(1,34): end-tag-too-early +(1,35): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -294,8 +307,8 @@ Line: 1 Col: 35 Expected closing tag. Unexpected end of file. #data <script><div></script></div><title><p></title><p><p> #errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected end tag (div). Ignored. +(1,8): expected-doctype-but-got-start-tag +(1,28): unexpected-end-tag #document | <html> | <head> @@ -310,10 +323,10 @@ Line: 1 Col: 28 Unexpected end tag (div). Ignored. #data <!--><div>--<!--> #errors -Line: 1 Col: 5 Incorrect comment. -Line: 1 Col: 10 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 17 Incorrect comment. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. +(1,5): incorrect-comment +(1,10): expected-doctype-but-got-start-tag +(1,17): incorrect-comment +(1,17): expected-closing-tag-but-got-eof #document | <!-- --> | <html> @@ -326,8 +339,8 @@ Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #data <p><hr></p> #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag #document | <html> | <head> @@ -339,12 +352,12 @@ Line: 1 Col: 11 Unexpected end tag (p). Ignored. #data <select><b><option><select><option></b></select>X #errors -Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. -Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 48 Unexpected end tag (select). Ignored. -Line: 1 Col: 49 Expected closing tag. Unexpected end of file. +(1,8): expected-doctype-but-got-start-tag +(1,11): unexpected-start-tag-in-select +(1,27): unexpected-select-in-select +(1,39): unexpected-end-tag +(1,48): unexpected-end-tag +(1,49): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -357,16 +370,15 @@ Line: 1 Col: 49 Expected closing tag. Unexpected end of file. #data <a><table><td><a><table></table><a></tr><a></table><b>X</b>C<a>Y #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 63 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 64 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,35): unexpected-start-tag-implies-end-tag +(1,40): unexpected-cell-end-tag +(1,43): unexpected-start-tag-implies-table-voodoo +(1,43): unexpected-start-tag-implies-end-tag +(1,43): unexpected-end-tag +(1,63): unexpected-start-tag-implies-end-tag +(1,64): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -390,10 +402,10 @@ Line: 1 Col: 64 Expected closing tag. Unexpected end of file. #data <a X>0<b>1<a Y>2 #errors -Line: 1 Col: 5 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-implies-end-tag +(1,15): adoption-agency-1.3 +(1,16): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -411,14 +423,23 @@ Line: 1 Col: 16 Expected closing tag. Unexpected end of file. #data <!-----><font><div>hello<table>excite!<b>me!<th><i>please!</tr><!--X--> #errors -Line: 1 Col: 7 Unexpected '-' after '--' found in comment. -Line: 1 Col: 14 Unexpected start tag (font). Expected DOCTYPE. -Line: 1 Col: 38 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 41 Unexpected start tag (b) in table context caused voodoo mode. -Line: 1 Col: 48 Unexpected implied end tag (b) in the table phase. -Line: 1 Col: 48 Unexpected table cell start tag (th) in the table body phase. -Line: 1 Col: 63 Got table cell end tag (th) while required end tags are missing. -Line: 1 Col: 71 Unexpected end of file. Expected table content. +(1,7): unexpected-dash-after-double-dash-in-comment +(1,14): expected-doctype-but-got-start-tag +(1,41): unexpected-start-tag-implies-table-voodoo +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-start-tag-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): foster-parenting-character-in-table +(1,48): unexpected-cell-in-table-body +(1,63): unexpected-cell-end-tag +(1,71): eof-in-table #document | <!-- - --> | <html> @@ -440,7 +461,6 @@ Line: 1 Col: 71 Unexpected end of file. Expected table content. #data <!DOCTYPE html><li>hello<li>world<ul>how<li>do</ul>you</body><!--do--> #errors -Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body). #document | <!DOCTYPE html> | <html> @@ -460,8 +480,8 @@ Line: 1 Col: 61 Unexpected end tag (li). Missing end tag (body). #data <!DOCTYPE html>A<option>B<optgroup>C<select>D</option>E #errors -Line: 1 Col: 54 Unexpected end tag (option) in the select phase. Ignored. -Line: 1 Col: 55 Expected closing tag. Unexpected end of file. +(1,54): unexpected-end-tag-in-select +(1,55): eof-in-select #document | <!DOCTYPE html> | <html> @@ -478,8 +498,8 @@ Line: 1 Col: 55 Expected closing tag. Unexpected end of file. #data < #errors -Line: 1 Col: 1 Expected tag name. Got something else instead -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,1): expected-tag-name +(1,1): expected-doctype-but-got-chars #document | <html> | <head> @@ -489,8 +509,8 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data <# #errors -Line: 1 Col: 1 Expected tag name. Got something else instead -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,1): expected-tag-name +(1,1): expected-doctype-but-got-chars #document | <html> | <head> @@ -500,8 +520,8 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data </ #errors -Line: 1 Col: 2 Expected closing tag. Unexpected end of file. -Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE. +(1,2): expected-closing-tag-but-got-eof +(1,2): expected-doctype-but-got-chars #document | <html> | <head> @@ -511,8 +531,8 @@ Line: 1 Col: 2 Unexpected non-space characters. Expected DOCTYPE. #data </# #errors -Line: 1 Col: 2 Expected closing tag. Unexpected character '#' found. -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-closing-tag-but-got-char +(1,3): expected-doctype-but-got-eof #document | <!-- # --> | <html> @@ -522,8 +542,8 @@ Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #data <? #errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. +(1,1): expected-tag-name-but-got-question-mark +(1,2): expected-doctype-but-got-eof #document | <!-- ? --> | <html> @@ -533,8 +553,8 @@ Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. #data <?# #errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. +(1,1): expected-tag-name-but-got-question-mark +(1,3): expected-doctype-but-got-eof #document | <!-- ?# --> | <html> @@ -544,8 +564,8 @@ Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #data <! #errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-dashes-or-doctype +(1,2): expected-doctype-but-got-eof #document | <!-- --> | <html> @@ -555,8 +575,8 @@ Line: 1 Col: 2 Unexpected End of file. Expected DOCTYPE. #data <!# #errors -Line: 1 Col: 3 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-dashes-or-doctype +(1,3): expected-doctype-but-got-eof #document | <!-- # --> | <html> @@ -566,8 +586,8 @@ Line: 1 Col: 3 Unexpected End of file. Expected DOCTYPE. #data <?COMMENT?> #errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE. +(1,1): expected-tag-name-but-got-question-mark +(1,11): expected-doctype-but-got-eof #document | <!-- ?COMMENT? --> | <html> @@ -577,8 +597,8 @@ Line: 1 Col: 11 Unexpected End of file. Expected DOCTYPE. #data <!COMMENT> #errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-dashes-or-doctype +(1,10): expected-doctype-but-got-eof #document | <!-- COMMENT --> | <html> @@ -588,8 +608,8 @@ Line: 1 Col: 10 Unexpected End of file. Expected DOCTYPE. #data </ COMMENT > #errors -Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. -Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-closing-tag-but-got-char +(1,12): expected-doctype-but-got-eof #document | <!-- COMMENT --> | <html> @@ -599,8 +619,8 @@ Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. #data <?COM--MENT?> #errors -Line: 1 Col: 1 Expected tag name. Got '?' instead. (HTML doesn't support processing instructions.) -Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE. +(1,1): expected-tag-name-but-got-question-mark +(1,13): expected-doctype-but-got-eof #document | <!-- ?COM--MENT? --> | <html> @@ -610,8 +630,8 @@ Line: 1 Col: 13 Unexpected End of file. Expected DOCTYPE. #data <!COM--MENT> #errors -Line: 1 Col: 2 Expected '--' or 'DOCTYPE'. Not found. -Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-dashes-or-doctype +(1,12): expected-doctype-but-got-eof #document | <!-- COM--MENT --> | <html> @@ -621,8 +641,8 @@ Line: 1 Col: 12 Unexpected End of file. Expected DOCTYPE. #data </ COM--MENT > #errors -Line: 1 Col: 2 Expected closing tag. Unexpected character ' ' found. -Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE. +(1,2): expected-closing-tag-but-got-char +(1,14): expected-doctype-but-got-eof #document | <!-- COM--MENT --> | <html> @@ -632,7 +652,7 @@ Line: 1 Col: 14 Unexpected End of file. Expected DOCTYPE. #data <!DOCTYPE html><style> EOF #errors -Line: 1 Col: 26 Unexpected end of file. Expected end tag (style). +(1,26): expected-named-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -644,21 +664,22 @@ Line: 1 Col: 26 Unexpected end of file. Expected end tag (style). #data <!DOCTYPE html><script> <!-- </script> --> </script> EOF #errors +(1,52): unexpected-end-tag #document | <!DOCTYPE html> | <html> | <head> | <script> -| " <!-- </script> --> " +| " <!-- " | " " | <body> -| "EOF" +| "--> EOF" #data <b><p></b>TEST #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +(1,3): expected-doctype-but-got-start-tag +(1,10): adoption-agency-1.3 #document | <html> | <head> @@ -671,9 +692,9 @@ Line: 1 Col: 10 End tag (b) violates step 1, paragraph 3 of the adoption agency #data <p id=a><b><p id=b></b>TEST #errors -Line: 1 Col: 8 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end tag (p). Ignored. -Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. +(1,8): expected-doctype-but-got-start-tag +(1,19): unexpected-end-tag +(1,23): adoption-agency-1.2 #document | <html> | <head> @@ -688,10 +709,10 @@ Line: 1 Col: 23 End tag (b) violates step 1, paragraph 2 of the adoption agency #data <b id=a><p><b id=b></p></b>TEST #errors -Line: 1 Col: 8 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (p). Ignored. -Line: 1 Col: 27 End tag (b) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 31 Expected closing tag. Unexpected end of file. +(1,8): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag +(1,27): adoption-agency-1.2 +(1,31): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -706,7 +727,7 @@ Line: 1 Col: 31 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><title>U-test</title><body><div><p>Test<u></p></div></body> #errors -Line: 1 Col: 61 Unexpected end tag (p). Ignored. +(1,61): unexpected-end-tag #document | <!DOCTYPE html> | <html> @@ -722,8 +743,8 @@ Line: 1 Col: 61 Unexpected end tag (p). Ignored. #data <!DOCTYPE html><font><table></font></table></font> #errors -Line: 1 Col: 35 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. +(1,35): unexpected-end-tag-implies-table-voodoo +(1,35): unexpected-end-tag #document | <!DOCTYPE html> | <html> @@ -735,10 +756,10 @@ Line: 1 Col: 35 End tag (font) violates step 1, paragraph 1 of the adoption agen #data <font><p>hello<b>cruel</font>world #errors -Line: 1 Col: 6 Unexpected start tag (font). Expected DOCTYPE. -Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 29 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 34 Expected closing tag. Unexpected end of file. +(1,6): expected-doctype-but-got-start-tag +(1,29): adoption-agency-1.3 +(1,29): adoption-agency-1.3 +(1,34): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -755,9 +776,9 @@ Line: 1 Col: 34 Expected closing tag. Unexpected end of file. #data <b>Test</i>Test #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 11 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +(1,15): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -768,8 +789,8 @@ Line: 1 Col: 15 Expected closing tag. Unexpected end of file. #data <b>A<cite>B<div>C #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -784,9 +805,9 @@ Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #data <b>A<cite>B<div>C</cite>D #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end tag (cite). Ignored. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,24): unexpected-end-tag +(1,25): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -801,9 +822,9 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <b>A<cite>B<div>C</b>D #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 21 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 22 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,21): adoption-agency-1.3 +(1,22): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -818,35 +839,9 @@ Line: 1 Col: 22 Expected closing tag. Unexpected end of file. | "D" #data -<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST -#errors -Line: 1 Col: 6 Unexpected start tag (cite). Expected DOCTYPE. -Line: 1 Col: 46 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 50 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <cite> -| <b> -| <cite> -| <i> -| <cite> -| <i> -| <cite> -| <i> -| <i> -| <i> -| <i> -| <div> -| <b> -| "X" -| "TEST" - -#data #errors -Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE. +(1,0): expected-doctype-but-got-eof #document | <html> | <head> @@ -855,8 +850,8 @@ Line: 1 Col: 0 Unexpected End of file. Expected DOCTYPE. #data <DIV> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 5 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,5): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -866,8 +861,8 @@ Line: 1 Col: 5 Expected closing tag. Unexpected end of file. #data <DIV> abc #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 9 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,9): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -878,8 +873,8 @@ Line: 1 Col: 9 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 13 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,13): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -891,8 +886,8 @@ Line: 1 Col: 13 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 17 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -905,8 +900,8 @@ Line: 1 Col: 17 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 21 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -920,8 +915,8 @@ Line: 1 Col: 21 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,25): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -936,8 +931,8 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,29): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -953,8 +948,8 @@ Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 33 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,33): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -971,9 +966,9 @@ Line: 1 Col: 33 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,38): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -992,9 +987,9 @@ Line: 1 Col: 38 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 42 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,42): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1014,10 +1009,10 @@ Line: 1 Col: 42 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,47): adoption-agency-1.3 +(1,47): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1038,10 +1033,10 @@ Line: 1 Col: 47 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,47): adoption-agency-1.3 +(1,51): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1063,10 +1058,10 @@ Line: 1 Col: 51 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 56 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,47): adoption-agency-1.3 +(1,56): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1088,10 +1083,10 @@ Line: 1 Col: 56 Expected closing tag. Unexpected end of file. #data <DIV> abc <B> def <I> ghi <P> jkl </B> mno </I> pqr </P> stu #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 38 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 47 End tag (i) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 60 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,38): adoption-agency-1.3 +(1,47): adoption-agency-1.3 +(1,60): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1114,8 +1109,8 @@ Line: 1 Col: 60 Expected closing tag. Unexpected end of file. #data <test attribute----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------> #errors -Line: 1 Col: 1040 Unexpected start tag (test). Expected DOCTYPE. -Line: 1 Col: 1040 Expected closing tag. Unexpected end of file. +(1,1040): expected-doctype-but-got-start-tag +(1,1040): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1126,14 +1121,14 @@ Line: 1 Col: 1040 Expected closing tag. Unexpected end of file. #data <a href="blah">aba<table><a href="foo">br<tr><td></td></tr>x</table>aoe #errors -Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 39 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 39 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 39 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 45 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. - +(1,15): expected-doctype-but-got-start-tag +(1,39): unexpected-start-tag-implies-table-voodoo +(1,39): unexpected-start-tag-implies-end-tag +(1,39): unexpected-end-tag +(1,45): foster-parenting-character-in-table +(1,45): foster-parenting-character-in-table +(1,68): foster-parenting-character-in-table +(1,71): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1158,10 +1153,9 @@ Line: 1 Col: 71 Expected closing tag. Unexpected end of file. #data <a href="blah">aba<table><tr><td><a href="foo">br</td></tr>x</table>aoe #errors -Line: 1 Col: 15 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 60 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. +(1,15): expected-doctype-but-got-start-tag +(1,54): unexpected-cell-end-tag +(1,71): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1181,12 +1175,14 @@ Line: 1 Col: 71 Expected closing tag. Unexpected end of file. #data <table><a href="blah">aba<tr><td><a href="foo">br</td></tr>x</table>aoe #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 29 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 54 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 68 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 71 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,22): unexpected-start-tag-implies-table-voodoo +(1,29): foster-parenting-character-in-table +(1,29): foster-parenting-character-in-table +(1,29): foster-parenting-character-in-table +(1,54): unexpected-cell-end-tag +(1,68): foster-parenting-character-in-table +(1,71): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1211,9 +1207,9 @@ Line: 1 Col: 71 Expected closing tag. Unexpected end of file. #data <a href=a>aa<marquee>aa<a href=b>bb</marquee>aa #errors -Line: 1 Col: 10 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 45 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 47 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,45): end-tag-too-early +(1,47): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1231,9 +1227,10 @@ Line: 1 Col: 47 Expected closing tag. Unexpected end of file. #data <wbr><strike><code></strike><code><strike></code> #errors -Line: 1 Col: 5 Unexpected start tag (wbr). Expected DOCTYPE. -Line: 1 Col: 28 End tag (strike) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 49 Unexpected end tag (code). Ignored. +(1,5): expected-doctype-but-got-start-tag +(1,28): adoption-agency-1.3 +(1,49): adoption-agency-1.3 +(1,49): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1242,12 +1239,25 @@ Line: 1 Col: 49 Unexpected end tag (code). Ignored. | <strike> | <code> | <code> -| <strike> +| <code> +| <strike> + +#data +<!DOCTYPE html><spacer>foo +#errors +(1,26): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <spacer> +| "foo" #data <title><meta></title><link><title><meta></title> #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1261,20 +1271,22 @@ Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. #data <style><!--</style><meta><script>--><link></script> #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 51 Unexpected end of file. Expected end tag (style). +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <style> -| "<!--</style><meta><script>--><link></script>" +| "<!--" +| <meta> +| <script> +| "--><link>" | <body> #data <head><meta></head><link> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved. +(1,6): expected-doctype-but-got-start-tag +(1,25): unexpected-start-tag-out-of-my-head #document | <html> | <head> @@ -1285,9 +1297,9 @@ Line: 1 Col: 25 Unexpected start tag (link) that can be in head. Moved. #data <table><tr><tr><td><td><span><th><span>X</table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 33 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing. +(1,7): expected-doctype-but-got-start-tag +(1,33): unexpected-cell-end-tag +(1,48): unexpected-cell-end-tag #document | <html> | <head> @@ -1306,10 +1318,9 @@ Line: 1 Col: 48 Got table cell end tag (th) while required end tags are missing. #data <body><body><base><link><meta><title><p></title><body><p></body> #errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (body). -Line: 1 Col: 54 Unexpected start tag (body). -Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body). +(1,6): expected-doctype-but-got-start-tag +(1,12): unexpected-start-tag +(1,54): unexpected-start-tag #document | <html> | <head> @@ -1324,7 +1335,7 @@ Line: 1 Col: 64 Unexpected end tag (p). Missing end tag (body). #data <textarea><p></textarea> #errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. +(1,10): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1335,8 +1346,8 @@ Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. #data <p><image></p> #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected start tag (image). Treated as img. +(1,3): expected-doctype-but-got-start-tag +(1,10): unexpected-start-tag-treated-as #document | <html> | <head> @@ -1347,17 +1358,16 @@ Line: 1 Col: 10 Unexpected start tag (image). Treated as img. #data <a><table><a></table><p><a><div><a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 13 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 13 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 21 Unexpected end tag (table). Expected end tag (a). -Line: 1 Col: 27 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 27 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 32 Unexpected end tag (p). Ignored. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 35 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,13): unexpected-start-tag-implies-table-voodoo +(1,13): unexpected-start-tag-implies-end-tag +(1,13): adoption-agency-1.3 +(1,27): unexpected-start-tag-implies-end-tag +(1,27): adoption-agency-1.2 +(1,32): unexpected-end-tag +(1,35): unexpected-start-tag-implies-end-tag +(1,35): adoption-agency-1.2 +(1,35): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1373,8 +1383,8 @@ Line: 1 Col: 35 Expected closing tag. Unexpected end of file. #data <head></p><meta><p> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 10 Unexpected end tag (p). Ignored. +(1,6): expected-doctype-but-got-start-tag +(1,10): unexpected-end-tag #document | <html> | <head> @@ -1385,8 +1395,8 @@ Line: 1 Col: 10 Unexpected end tag (p). Ignored. #data <head></html><meta><p> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html). Ignored. +(1,6): expected-doctype-but-got-start-tag +(1,19): expected-eof-but-got-start-tag #document | <html> | <head> @@ -1397,10 +1407,10 @@ Line: 1 Col: 13 Unexpected end tag (html). Ignored. #data <b><table><td><i></table> #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 25 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,25): unexpected-cell-end-tag +(1,25): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1415,11 +1425,11 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <b><table><td></b><i></table> #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 18 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,18): unexpected-end-tag +(1,29): unexpected-cell-end-tag +(1,29): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1434,9 +1444,9 @@ Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #data <h1><h2> #errors -4: Start tag seen without seeing a doctype first. Expected <!DOCTYPE html>. -8: Heading cannot be a child of another heading. -8: End of file seen and there were open elements. +(1,4): expected-doctype-but-got-start-tag +(1,8): unexpected-start-tag +(1,8): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1447,10 +1457,10 @@ Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #data <a><p><a></a></p></a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 9 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. +(1,3): expected-doctype-but-got-start-tag +(1,9): unexpected-start-tag-implies-end-tag +(1,9): adoption-agency-1.3 +(1,21): unexpected-end-tag #document | <html> | <head> @@ -1463,24 +1473,26 @@ Line: 1 Col: 21 End tag (a) violates step 1, paragraph 1 of the adoption agency #data <b><button></b></button></b> #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 15 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. +(1,3): expected-doctype-but-got-start-tag +(1,15): adoption-agency-1.3 +(1,28): unexpected-end-tag #document | <html> | <head> | <body> | <b> -| <button> +| <button> +| <b> #data <p><b><div><marquee></p></b></div> #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. -Line: 1 Col: 24 Unexpected end tag (p). Ignored. -Line: 1 Col: 28 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 34 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 34 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag +(1,24): unexpected-end-tag +(1,28): unexpected-end-tag +(1,34): end-tag-too-early +(1,34): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1495,8 +1507,8 @@ Line: 1 Col: 34 Expected closing tag. Unexpected end of file. #data <script></script></div><title></title><p><p> #errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (div). Ignored. +(1,8): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag #document | <html> | <head> @@ -1509,8 +1521,8 @@ Line: 1 Col: 23 Unexpected end tag (div). Ignored. #data <p><hr></p> #errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end tag (p). Ignored. +(1,3): expected-doctype-but-got-start-tag +(1,11): unexpected-end-tag #document | <html> | <head> @@ -1522,12 +1534,12 @@ Line: 1 Col: 11 Unexpected end tag (p). Ignored. #data <select><b><option><select><option></b></select> #errors -Line: 1 Col: 8 Unexpected start tag (select). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected start tag token (b) in the select phase. Ignored. -Line: 1 Col: 27 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 39 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 48 Unexpected end tag (select). Ignored. -Line: 1 Col: 48 Expected closing tag. Unexpected end of file. +(1,8): expected-doctype-but-got-start-tag +(1,11): unexpected-start-tag-in-select +(1,27): unexpected-select-in-select +(1,39): unexpected-end-tag +(1,48): unexpected-end-tag +(1,48): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1539,7 +1551,7 @@ Line: 1 Col: 48 Expected closing tag. Unexpected end of file. #data <html><head><title></title><body></body></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1549,17 +1561,16 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <a><table><td><a><table></table><a></tr><a></table><a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 35 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 40 Got table cell end tag (td) while required end tags are missing. -Line: 1 Col: 43 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 43 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 43 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 51 Unexpected implied end tag (a) in the table phase. -Line: 1 Col: 54 Unexpected start tag (a) implies end tag (a). -Line: 1 Col: 54 End tag (a) violates step 1, paragraph 2 of the adoption agency algorithm. -Line: 1 Col: 54 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-cell-in-table-body +(1,35): unexpected-start-tag-implies-end-tag +(1,40): unexpected-cell-end-tag +(1,43): unexpected-start-tag-implies-table-voodoo +(1,43): unexpected-start-tag-implies-end-tag +(1,43): unexpected-end-tag +(1,54): unexpected-start-tag-implies-end-tag +(1,54): adoption-agency-1.2 +(1,54): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -1578,10 +1589,10 @@ Line: 1 Col: 54 Expected closing tag. Unexpected end of file. #data <ul><li></li><div><li></div><li><li><div><li><address><li><b><em></b><li></ul> #errors -Line: 1 Col: 4 Unexpected start tag (ul). Expected DOCTYPE. -Line: 1 Col: 45 Missing end tag (div, li). -Line: 1 Col: 58 Missing end tag (address, li). -Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. +(1,4): expected-doctype-but-got-start-tag +(1,45): end-tag-too-early +(1,58): end-tag-too-early +(1,69): adoption-agency-1.3 #document | <html> | <head> @@ -1601,31 +1612,24 @@ Line: 1 Col: 69 End tag (b) violates step 1, paragraph 3 of the adoption agency | <li> #data -<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> +<ul><li><ul></li><li>a</li></ul></li></ul> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +(1,4): expected-doctype-but-got-start-tag +(1,17): unexpected-end-tag #document | <html> | <head> -| <frameset> -| <frame> -| <frameset> -| <frame> -| <noframes> +| <body> +| <ul> +| <li> +| <ul> +| <li> +| "a" #data -<body><frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> +<frameset><frame><frameset><frame></frameset><noframes></noframes></frameset> #errors -Line: 1 Col: 6 Unexpected start tag (body). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected start tag frame. Ignored. -Line: 1 Col: 21 This element (frame) has no end tag. -Line: 1 Col: 29 This element (frame) has no end tag. -Line: 1 Col: 39 Unexpected start tag frameset. Ignored. -Line: 1 Col: 46 Unexpected start tag frame. Ignored. -Line: 1 Col: 56 Unexpected start tag frameset. Ignored. -Line: 1 Col: 63 Unexpected start tag frame. Ignored. -Line: 1 Col: 74 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 105 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1634,16 +1638,15 @@ Line: 1 Col: 105 Expected closing tag. Unexpected end of file. | <frameset> | <frame> | <noframes> -| "</frameset><noframes>" #data <h1><table><td><h3></table><h3></h1> #errors -4: Start tag seen without seeing a doctype first. Expected <!DOCTYPE html>. -15: td start tag in table body. -27: Unclosed elements. -31: Heading cannot be a child of another heading. -36: End tag h1 seen but there were unclosed elements. +(1,4): expected-doctype-but-got-start-tag +(1,15): unexpected-cell-in-table-body +(1,27): unexpected-cell-end-tag +(1,31): unexpected-start-tag +(1,36): end-tag-too-early #document | <html> | <head> @@ -1659,7 +1662,7 @@ Line: 1 Col: 105 Expected closing tag. Unexpected end of file. #data <table><colgroup><col><colgroup><col><col><col><colgroup><col><col><thead><tr><td></table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -1681,9 +1684,9 @@ Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. #data <table><col><tbody><col><tr><col><td><col></table><col> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 37 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 55 Unexpected start tag col. Ignored. +(1,7): expected-doctype-but-got-start-tag +(1,37): unexpected-cell-in-table-body +(1,55): unexpected-start-tag-ignored #document | <html> | <head> @@ -1707,9 +1710,9 @@ Line: 1 Col: 55 Unexpected start tag col. Ignored. #data <table><colgroup><tbody><colgroup><tr><colgroup><td><colgroup></table><colgroup> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 52 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 80 Unexpected start tag colgroup. Ignored. +(1,7): expected-doctype-but-got-start-tag +(1,52): unexpected-cell-in-table-body +(1,80): unexpected-start-tag-ignored #document | <html> | <head> @@ -1729,90 +1732,91 @@ Line: 1 Col: 80 Unexpected start tag colgroup. Ignored. #data </strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> #errors -Line: 1 Col: 9 Unexpected end tag (strong). Expected DOCTYPE. -Line: 1 Col: 9 Unexpected end tag (strong) after the (implied) root element. -Line: 1 Col: 13 Unexpected end tag (b) after the (implied) root element. -Line: 1 Col: 18 Unexpected end tag (em) after the (implied) root element. -Line: 1 Col: 22 Unexpected end tag (i) after the (implied) root element. -Line: 1 Col: 26 Unexpected end tag (u) after the (implied) root element. -Line: 1 Col: 35 Unexpected end tag (strike) after the (implied) root element. -Line: 1 Col: 39 Unexpected end tag (s) after the (implied) root element. -Line: 1 Col: 47 Unexpected end tag (blink) after the (implied) root element. -Line: 1 Col: 52 Unexpected end tag (tt) after the (implied) root element. -Line: 1 Col: 58 Unexpected end tag (pre) after the (implied) root element. -Line: 1 Col: 64 Unexpected end tag (big) after the (implied) root element. -Line: 1 Col: 72 Unexpected end tag (small) after the (implied) root element. -Line: 1 Col: 79 Unexpected end tag (font) after the (implied) root element. -Line: 1 Col: 88 Unexpected end tag (select) after the (implied) root element. -Line: 1 Col: 93 Unexpected end tag (h1) after the (implied) root element. -Line: 1 Col: 98 Unexpected end tag (h2) after the (implied) root element. -Line: 1 Col: 103 Unexpected end tag (h3) after the (implied) root element. -Line: 1 Col: 108 Unexpected end tag (h4) after the (implied) root element. -Line: 1 Col: 113 Unexpected end tag (h5) after the (implied) root element. -Line: 1 Col: 118 Unexpected end tag (h6) after the (implied) root element. -Line: 1 Col: 125 Unexpected end tag (body) after the (implied) root element. -Line: 1 Col: 130 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 134 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 140 This element (img) has no end tag. -Line: 1 Col: 148 Unexpected end tag (title). Ignored. -Line: 1 Col: 155 Unexpected end tag (span). Ignored. -Line: 1 Col: 163 Unexpected end tag (style). Ignored. -Line: 1 Col: 172 Unexpected end tag (script). Ignored. -Line: 1 Col: 180 Unexpected end tag (table). Ignored. -Line: 1 Col: 185 Unexpected end tag (th). Ignored. -Line: 1 Col: 190 Unexpected end tag (td). Ignored. -Line: 1 Col: 195 Unexpected end tag (tr). Ignored. -Line: 1 Col: 203 This element (frame) has no end tag. -Line: 1 Col: 210 This element (area) has no end tag. -Line: 1 Col: 217 Unexpected end tag (link). Ignored. -Line: 1 Col: 225 This element (param) has no end tag. -Line: 1 Col: 230 This element (hr) has no end tag. -Line: 1 Col: 238 This element (input) has no end tag. -Line: 1 Col: 244 Unexpected end tag (col). Ignored. -Line: 1 Col: 251 Unexpected end tag (base). Ignored. -Line: 1 Col: 258 Unexpected end tag (meta). Ignored. -Line: 1 Col: 269 This element (basefont) has no end tag. -Line: 1 Col: 279 This element (bgsound) has no end tag. -Line: 1 Col: 287 This element (embed) has no end tag. -Line: 1 Col: 296 This element (spacer) has no end tag. -Line: 1 Col: 300 Unexpected end tag (p). Ignored. -Line: 1 Col: 305 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 310 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 320 Unexpected end tag (caption). Ignored. -Line: 1 Col: 331 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 339 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 347 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 355 Unexpected end tag (thead). Ignored. -Line: 1 Col: 365 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 378 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 387 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 393 Unexpected end tag (dir). Ignored. -Line: 1 Col: 399 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 404 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 425 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 432 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 437 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 442 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 447 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 454 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 460 This element (wbr) has no end tag. -Line: 1 Col: 476 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 486 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 495 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 513 Unexpected end tag (). Ignored. -Line: 1 Col: 513 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 520 Unexpected end tag (head). Ignored. -Line: 1 Col: 529 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 537 This element (image) has no end tag. -Line: 1 Col: 547 This element (isindex) has no end tag. -Line: 1 Col: 557 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 568 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 579 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 590 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 599 Unexpected end tag (option). Ignored. -Line: 1 Col: 611 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 622 Unexpected end tag (textarea). Ignored. +(1,9): expected-doctype-but-got-end-tag +(1,9): unexpected-end-tag-before-html +(1,13): unexpected-end-tag-before-html +(1,18): unexpected-end-tag-before-html +(1,22): unexpected-end-tag-before-html +(1,26): unexpected-end-tag-before-html +(1,35): unexpected-end-tag-before-html +(1,39): unexpected-end-tag-before-html +(1,47): unexpected-end-tag-before-html +(1,52): unexpected-end-tag-before-html +(1,58): unexpected-end-tag-before-html +(1,64): unexpected-end-tag-before-html +(1,72): unexpected-end-tag-before-html +(1,79): unexpected-end-tag-before-html +(1,88): unexpected-end-tag-before-html +(1,93): unexpected-end-tag-before-html +(1,98): unexpected-end-tag-before-html +(1,103): unexpected-end-tag-before-html +(1,108): unexpected-end-tag-before-html +(1,113): unexpected-end-tag-before-html +(1,118): unexpected-end-tag-before-html +(1,130): unexpected-end-tag-after-body +(1,130): unexpected-end-tag-treated-as +(1,134): unexpected-end-tag +(1,140): unexpected-end-tag +(1,148): unexpected-end-tag +(1,155): unexpected-end-tag +(1,163): unexpected-end-tag +(1,172): unexpected-end-tag +(1,180): unexpected-end-tag +(1,185): unexpected-end-tag +(1,190): unexpected-end-tag +(1,195): unexpected-end-tag +(1,203): unexpected-end-tag +(1,210): unexpected-end-tag +(1,217): unexpected-end-tag +(1,225): unexpected-end-tag +(1,230): unexpected-end-tag +(1,238): unexpected-end-tag +(1,244): unexpected-end-tag +(1,251): unexpected-end-tag +(1,258): unexpected-end-tag +(1,269): unexpected-end-tag +(1,279): unexpected-end-tag +(1,287): unexpected-end-tag +(1,296): unexpected-end-tag +(1,300): unexpected-end-tag +(1,305): unexpected-end-tag +(1,310): unexpected-end-tag +(1,320): unexpected-end-tag +(1,331): unexpected-end-tag +(1,339): unexpected-end-tag +(1,347): unexpected-end-tag +(1,355): unexpected-end-tag +(1,365): end-tag-too-early +(1,378): end-tag-too-early +(1,387): end-tag-too-early +(1,393): end-tag-too-early +(1,399): end-tag-too-early +(1,404): end-tag-too-early +(1,415): end-tag-too-early +(1,425): end-tag-too-early +(1,432): end-tag-too-early +(1,437): end-tag-too-early +(1,442): end-tag-too-early +(1,447): unexpected-end-tag +(1,454): unexpected-end-tag +(1,460): unexpected-end-tag +(1,467): unexpected-end-tag +(1,476): end-tag-too-early +(1,486): end-tag-too-early +(1,495): end-tag-too-early +(1,513): expected-eof-but-got-end-tag +(1,513): unexpected-end-tag +(1,520): unexpected-end-tag +(1,529): unexpected-end-tag +(1,537): unexpected-end-tag +(1,547): unexpected-end-tag +(1,557): unexpected-end-tag +(1,568): unexpected-end-tag +(1,579): unexpected-end-tag +(1,590): unexpected-end-tag +(1,599): unexpected-end-tag +(1,611): unexpected-end-tag +(1,622): unexpected-end-tag #document | <html> | <head> @@ -1823,116 +1827,117 @@ Line: 1 Col: 622 Unexpected end tag (textarea). Ignored. #data <table><tr></strong></b></em></i></u></strike></s></blink></tt></pre></big></small></font></select></h1></h2></h3></h4></h5></h6></body></br></a></img></title></span></style></script></table></th></td></tr></frame></area></link></param></hr></input></col></base></meta></basefont></bgsound></embed></spacer></p></dd></dt></caption></colgroup></tbody></tfoot></thead></address></blockquote></center></dir></div></dl></fieldset></listing></menu></ol></ul></li></nobr></wbr></form></button></marquee></object></html></frameset></head></iframe></image></isindex></noembed></noframes></noscript></optgroup></option></plaintext></textarea> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (strong) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (strong) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 24 Unexpected end tag (b) in table context caused voodoo mode. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 29 Unexpected end tag (em) in table context caused voodoo mode. -Line: 1 Col: 29 End tag (em) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 33 Unexpected end tag (i) in table context caused voodoo mode. -Line: 1 Col: 33 End tag (i) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 37 Unexpected end tag (u) in table context caused voodoo mode. -Line: 1 Col: 37 End tag (u) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 46 Unexpected end tag (strike) in table context caused voodoo mode. -Line: 1 Col: 46 End tag (strike) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 50 Unexpected end tag (s) in table context caused voodoo mode. -Line: 1 Col: 50 End tag (s) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 58 Unexpected end tag (blink) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (blink). Ignored. -Line: 1 Col: 63 Unexpected end tag (tt) in table context caused voodoo mode. -Line: 1 Col: 63 End tag (tt) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 69 Unexpected end tag (pre) in table context caused voodoo mode. -Line: 1 Col: 69 End tag (pre) seen too early. Expected other end tag. -Line: 1 Col: 75 Unexpected end tag (big) in table context caused voodoo mode. -Line: 1 Col: 75 End tag (big) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 83 Unexpected end tag (small) in table context caused voodoo mode. -Line: 1 Col: 83 End tag (small) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 90 Unexpected end tag (font) in table context caused voodoo mode. -Line: 1 Col: 90 End tag (font) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 99 Unexpected end tag (select) in table context caused voodoo mode. -Line: 1 Col: 99 Unexpected end tag (select). Ignored. -Line: 1 Col: 104 Unexpected end tag (h1) in table context caused voodoo mode. -Line: 1 Col: 104 End tag (h1) seen too early. Expected other end tag. -Line: 1 Col: 109 Unexpected end tag (h2) in table context caused voodoo mode. -Line: 1 Col: 109 End tag (h2) seen too early. Expected other end tag. -Line: 1 Col: 114 Unexpected end tag (h3) in table context caused voodoo mode. -Line: 1 Col: 114 End tag (h3) seen too early. Expected other end tag. -Line: 1 Col: 119 Unexpected end tag (h4) in table context caused voodoo mode. -Line: 1 Col: 119 End tag (h4) seen too early. Expected other end tag. -Line: 1 Col: 124 Unexpected end tag (h5) in table context caused voodoo mode. -Line: 1 Col: 124 End tag (h5) seen too early. Expected other end tag. -Line: 1 Col: 129 Unexpected end tag (h6) in table context caused voodoo mode. -Line: 1 Col: 129 End tag (h6) seen too early. Expected other end tag. -Line: 1 Col: 136 Unexpected end tag (body) in the table row phase. Ignored. -Line: 1 Col: 141 Unexpected end tag (br) in table context caused voodoo mode. -Line: 1 Col: 141 Unexpected end tag (br). Treated as br element. -Line: 1 Col: 145 Unexpected end tag (a) in table context caused voodoo mode. -Line: 1 Col: 145 End tag (a) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 151 Unexpected end tag (img) in table context caused voodoo mode. -Line: 1 Col: 151 This element (img) has no end tag. -Line: 1 Col: 159 Unexpected end tag (title) in table context caused voodoo mode. -Line: 1 Col: 159 Unexpected end tag (title). Ignored. -Line: 1 Col: 166 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 166 Unexpected end tag (span). Ignored. -Line: 1 Col: 174 Unexpected end tag (style) in table context caused voodoo mode. -Line: 1 Col: 174 Unexpected end tag (style). Ignored. -Line: 1 Col: 183 Unexpected end tag (script) in table context caused voodoo mode. -Line: 1 Col: 183 Unexpected end tag (script). Ignored. -Line: 1 Col: 196 Unexpected end tag (th). Ignored. -Line: 1 Col: 201 Unexpected end tag (td). Ignored. -Line: 1 Col: 206 Unexpected end tag (tr). Ignored. -Line: 1 Col: 214 This element (frame) has no end tag. -Line: 1 Col: 221 This element (area) has no end tag. -Line: 1 Col: 228 Unexpected end tag (link). Ignored. -Line: 1 Col: 236 This element (param) has no end tag. -Line: 1 Col: 241 This element (hr) has no end tag. -Line: 1 Col: 249 This element (input) has no end tag. -Line: 1 Col: 255 Unexpected end tag (col). Ignored. -Line: 1 Col: 262 Unexpected end tag (base). Ignored. -Line: 1 Col: 269 Unexpected end tag (meta). Ignored. -Line: 1 Col: 280 This element (basefont) has no end tag. -Line: 1 Col: 290 This element (bgsound) has no end tag. -Line: 1 Col: 298 This element (embed) has no end tag. -Line: 1 Col: 307 This element (spacer) has no end tag. -Line: 1 Col: 311 Unexpected end tag (p). Ignored. -Line: 1 Col: 316 End tag (dd) seen too early. Expected other end tag. -Line: 1 Col: 321 End tag (dt) seen too early. Expected other end tag. -Line: 1 Col: 331 Unexpected end tag (caption). Ignored. -Line: 1 Col: 342 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 350 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 358 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 366 Unexpected end tag (thead). Ignored. -Line: 1 Col: 376 End tag (address) seen too early. Expected other end tag. -Line: 1 Col: 389 End tag (blockquote) seen too early. Expected other end tag. -Line: 1 Col: 398 End tag (center) seen too early. Expected other end tag. -Line: 1 Col: 404 Unexpected end tag (dir). Ignored. -Line: 1 Col: 410 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 415 End tag (dl) seen too early. Expected other end tag. -Line: 1 Col: 426 End tag (fieldset) seen too early. Expected other end tag. -Line: 1 Col: 436 End tag (listing) seen too early. Expected other end tag. -Line: 1 Col: 443 End tag (menu) seen too early. Expected other end tag. -Line: 1 Col: 448 End tag (ol) seen too early. Expected other end tag. -Line: 1 Col: 453 End tag (ul) seen too early. Expected other end tag. -Line: 1 Col: 458 End tag (li) seen too early. Expected other end tag. -Line: 1 Col: 465 End tag (nobr) violates step 1, paragraph 1 of the adoption agency algorithm. -Line: 1 Col: 471 This element (wbr) has no end tag. -Line: 1 Col: 487 End tag (button) seen too early. Expected other end tag. -Line: 1 Col: 497 End tag (marquee) seen too early. Expected other end tag. -Line: 1 Col: 506 End tag (object) seen too early. Expected other end tag. -Line: 1 Col: 524 Unexpected end tag (). Ignored. -Line: 1 Col: 524 Unexpected end tag (frameset). Ignored. -Line: 1 Col: 531 Unexpected end tag (head). Ignored. -Line: 1 Col: 540 Unexpected end tag (iframe). Ignored. -Line: 1 Col: 548 This element (image) has no end tag. -Line: 1 Col: 558 This element (isindex) has no end tag. -Line: 1 Col: 568 Unexpected end tag (noembed). Ignored. -Line: 1 Col: 579 Unexpected end tag (noframes). Ignored. -Line: 1 Col: 590 Unexpected end tag (noscript). Ignored. -Line: 1 Col: 601 Unexpected end tag (optgroup). Ignored. -Line: 1 Col: 610 Unexpected end tag (option). Ignored. -Line: 1 Col: 622 Unexpected end tag (plaintext). Ignored. -Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. +(1,7): expected-doctype-but-got-start-tag +(1,20): unexpected-end-tag-implies-table-voodoo +(1,20): unexpected-end-tag +(1,24): unexpected-end-tag-implies-table-voodoo +(1,24): unexpected-end-tag +(1,29): unexpected-end-tag-implies-table-voodoo +(1,29): unexpected-end-tag +(1,33): unexpected-end-tag-implies-table-voodoo +(1,33): unexpected-end-tag +(1,37): unexpected-end-tag-implies-table-voodoo +(1,37): unexpected-end-tag +(1,46): unexpected-end-tag-implies-table-voodoo +(1,46): unexpected-end-tag +(1,50): unexpected-end-tag-implies-table-voodoo +(1,50): unexpected-end-tag +(1,58): unexpected-end-tag-implies-table-voodoo +(1,58): unexpected-end-tag +(1,63): unexpected-end-tag-implies-table-voodoo +(1,63): unexpected-end-tag +(1,69): unexpected-end-tag-implies-table-voodoo +(1,69): end-tag-too-early +(1,75): unexpected-end-tag-implies-table-voodoo +(1,75): unexpected-end-tag +(1,83): unexpected-end-tag-implies-table-voodoo +(1,83): unexpected-end-tag +(1,90): unexpected-end-tag-implies-table-voodoo +(1,90): unexpected-end-tag +(1,99): unexpected-end-tag-implies-table-voodoo +(1,99): unexpected-end-tag +(1,104): unexpected-end-tag-implies-table-voodoo +(1,104): end-tag-too-early +(1,109): unexpected-end-tag-implies-table-voodoo +(1,109): end-tag-too-early +(1,114): unexpected-end-tag-implies-table-voodoo +(1,114): end-tag-too-early +(1,119): unexpected-end-tag-implies-table-voodoo +(1,119): end-tag-too-early +(1,124): unexpected-end-tag-implies-table-voodoo +(1,124): end-tag-too-early +(1,129): unexpected-end-tag-implies-table-voodoo +(1,129): end-tag-too-early +(1,136): unexpected-end-tag-in-table-row +(1,141): unexpected-end-tag-implies-table-voodoo +(1,141): unexpected-end-tag-treated-as +(1,145): unexpected-end-tag-implies-table-voodoo +(1,145): unexpected-end-tag +(1,151): unexpected-end-tag-implies-table-voodoo +(1,151): unexpected-end-tag +(1,159): unexpected-end-tag-implies-table-voodoo +(1,159): unexpected-end-tag +(1,166): unexpected-end-tag-implies-table-voodoo +(1,166): unexpected-end-tag +(1,174): unexpected-end-tag-implies-table-voodoo +(1,174): unexpected-end-tag +(1,183): unexpected-end-tag-implies-table-voodoo +(1,183): unexpected-end-tag +(1,196): unexpected-end-tag +(1,201): unexpected-end-tag +(1,206): unexpected-end-tag +(1,214): unexpected-end-tag +(1,221): unexpected-end-tag +(1,228): unexpected-end-tag +(1,236): unexpected-end-tag +(1,241): unexpected-end-tag +(1,249): unexpected-end-tag +(1,255): unexpected-end-tag +(1,262): unexpected-end-tag +(1,269): unexpected-end-tag +(1,280): unexpected-end-tag +(1,290): unexpected-end-tag +(1,298): unexpected-end-tag +(1,307): unexpected-end-tag +(1,311): unexpected-end-tag +(1,316): unexpected-end-tag +(1,321): unexpected-end-tag +(1,331): unexpected-end-tag +(1,342): unexpected-end-tag +(1,350): unexpected-end-tag +(1,358): unexpected-end-tag +(1,366): unexpected-end-tag +(1,376): end-tag-too-early +(1,389): end-tag-too-early +(1,398): end-tag-too-early +(1,404): end-tag-too-early +(1,410): end-tag-too-early +(1,415): end-tag-too-early +(1,426): end-tag-too-early +(1,436): end-tag-too-early +(1,443): end-tag-too-early +(1,448): end-tag-too-early +(1,453): end-tag-too-early +(1,458): unexpected-end-tag +(1,465): unexpected-end-tag +(1,471): unexpected-end-tag +(1,478): unexpected-end-tag +(1,487): end-tag-too-early +(1,497): end-tag-too-early +(1,506): end-tag-too-early +(1,524): expected-eof-but-got-end-tag +(1,524): unexpected-end-tag +(1,531): unexpected-end-tag +(1,540): unexpected-end-tag +(1,548): unexpected-end-tag +(1,558): unexpected-end-tag +(1,568): unexpected-end-tag +(1,579): unexpected-end-tag +(1,590): unexpected-end-tag +(1,601): unexpected-end-tag +(1,610): unexpected-end-tag +(1,622): unexpected-end-tag +(1,633): unexpected-end-tag #document | <html> | <head> @@ -1946,8 +1951,8 @@ Line: 1 Col: 633 Unexpected end tag (textarea). Ignored. #data <frameset> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 10 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,10): eof-in-frameset #document | <html> | <head> diff --git a/test/data/tree-construction/tests10.dat b/test/data/tree-construction/tests10.dat index 877c9a3..87d9478 100644 --- a/test/data/tree-construction/tests10.dat +++ b/test/data/tree-construction/tests10.dat @@ -9,6 +9,18 @@ | <svg svg> #data +<!DOCTYPE html><svg></svg><![CDATA[a]]> +#errors +(1,28) expected-dashes-or-doctype +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <!-- [CDATA[a]] --> + +#data <!DOCTYPE html><body><svg></svg> #errors #document @@ -21,8 +33,8 @@ #data <!DOCTYPE html><body><select><svg></svg></select> #errors -35: Stray svg start tag. -42: Stray end tag svg +(1,34) unexpected-start-tag-in-select +(1,40) unexpected-end-tag-in-select #document | <!DOCTYPE html> | <html> @@ -33,8 +45,8 @@ #data <!DOCTYPE html><body><select><option><svg></svg></option></select> #errors -43: Stray svg start tag. -50: Stray end tag svg +(1,42) unexpected-start-tag-in-select +(1,48) unexpected-end-tag-in-select #document | <!DOCTYPE html> | <html> @@ -46,8 +58,7 @@ #data <!DOCTYPE html><body><table><svg></svg></table> #errors -34: Start tag svg seen in table. -41: Stray end tag svg. +(1,33) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -59,9 +70,7 @@ #data <!DOCTYPE html><body><table><svg><g>foo</g></svg></table> #errors -34: Start tag svg seen in table. -46: Stray end tag g. -53: Stray end tag svg. +(1,33) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -75,10 +84,7 @@ #data <!DOCTYPE html><body><table><svg><g>foo</g><g>bar</g></svg></table> #errors -34: Start tag svg seen in table. -46: Stray end tag g. -58: Stray end tag g. -65: Stray end tag svg. +(1,33) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -94,10 +100,7 @@ #data <!DOCTYPE html><body><table><tbody><svg><g>foo</g><g>bar</g></svg></tbody></table> #errors -41: Start tag svg seen in table. -53: Stray end tag g. -65: Stray end tag g. -72: Stray end tag svg. +(1,40) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -114,10 +117,7 @@ #data <!DOCTYPE html><body><table><tbody><tr><svg><g>foo</g><g>bar</g></svg></tr></tbody></table> #errors -45: Start tag svg seen in table. -57: Stray end tag g. -69: Stray end tag g. -76: Stray end tag svg. +(1,44) foster-parenting-start-tag #document | <!DOCTYPE html> | <html> @@ -191,8 +191,8 @@ #data <!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g><p>baz</table><p>quux #errors -70: HTML start tag p in a foreign namespace context. -81: table closed but caption was still open. +(1,65) unexpected-html-element-in-foreign-content +(1,76) XXX-undefined-error #document | <!DOCTYPE html> | <html> @@ -213,8 +213,8 @@ #data <!DOCTYPE html><body><table><caption><svg><g>foo</g><g>bar</g>baz</table><p>quux #errors -78: table closed but caption was still open. -78: Unclosed elements on stack. +(1,73) unexpected-end-tag +(1,73) expected-one-end-tag-but-got-another #document | <!DOCTYPE html> | <html> @@ -234,11 +234,11 @@ #data <!DOCTYPE html><body><table><colgroup><svg><g>foo</g><g>bar</g><p>baz</table><p>quux #errors -44: Start tag svg seen in table. -56: Stray end tag g. -68: Stray end tag g. -71: HTML start tag p in a foreign namespace context. -71: Start tag p seen in table. +(1,43) foster-parenting-start-tag +(1,66) foster-parenting-start-tag +(1,67) foster-parenting-character +(1,68) foster-parenting-character +(1,69) foster-parenting-character #document | <!DOCTYPE html> | <html> @@ -259,13 +259,13 @@ #data <!DOCTYPE html><body><table><tr><td><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux #errors -50: Stray svg start tag. -54: Stray g start tag. -62: Stray end tag g -66: Stray g start tag. -74: Stray end tag g -77: Stray p start tag. -88: table end tag with select open. +(1,49) unexpected-start-tag-in-select +(1,52) unexpected-start-tag-in-select +(1,59) unexpected-end-tag-in-select +(1,62) unexpected-start-tag-in-select +(1,69) unexpected-end-tag-in-select +(1,72) unexpected-start-tag-in-select +(1,83) unexpected-table-element-end-tag-in-select-in-table #document | <!DOCTYPE html> | <html> @@ -283,14 +283,14 @@ #data <!DOCTYPE html><body><table><select><svg><g>foo</g><g>bar</g><p>baz</table><p>quux #errors -36: Start tag select seen in table. -42: Stray svg start tag. -46: Stray g start tag. -54: Stray end tag g -58: Stray g start tag. -66: Stray end tag g -69: Stray p start tag. -80: table end tag with select open. +(1,36) unexpected-start-tag-implies-table-voodoo +(1,41) unexpected-start-tag-in-select +(1,44) unexpected-start-tag-in-select +(1,51) unexpected-end-tag-in-select +(1,54) unexpected-start-tag-in-select +(1,61) unexpected-end-tag-in-select +(1,64) unexpected-start-tag-in-select +(1,75) unexpected-table-element-end-tag-in-select-in-table #document | <!DOCTYPE html> | <html> @@ -305,8 +305,8 @@ #data <!DOCTYPE html><body></body></html><svg><g>foo</g><g>bar</g><p>baz #errors -41: Stray svg start tag. -68: HTML start tag p in a foreign namespace context. +(1,40) expected-eof-but-got-start-tag +(1,63) unexpected-html-element-in-foreign-content #document | <!DOCTYPE html> | <html> @@ -323,8 +323,8 @@ #data <!DOCTYPE html><body></body><svg><g>foo</g><g>bar</g><p>baz #errors -34: Stray svg start tag. -61: HTML start tag p in a foreign namespace context. +(1,33) unexpected-start-tag-after-body +(1,56) unexpected-html-element-in-foreign-content #document | <!DOCTYPE html> | <html> @@ -341,14 +341,14 @@ #data <!DOCTYPE html><frameset><svg><g></g><g></g><p><span> #errors -31: Stray svg start tag. -35: Stray g start tag. -40: Stray end tag g -44: Stray g start tag. -49: Stray end tag g -52: Stray p start tag. -58: Stray span start tag. -58: End of file seen and there were open elements. +(1,30) unexpected-start-tag-in-frameset +(1,33) unexpected-start-tag-in-frameset +(1,37) unexpected-end-tag-in-frameset +(1,40) unexpected-start-tag-in-frameset +(1,44) unexpected-end-tag-in-frameset +(1,47) unexpected-start-tag-in-frameset +(1,53) unexpected-start-tag-in-frameset +(1,53) eof-in-frameset #document | <!DOCTYPE html> | <html> @@ -358,13 +358,13 @@ #data <!DOCTYPE html><frameset></frameset><svg><g></g><g></g><p><span> #errors -42: Stray svg start tag. -46: Stray g start tag. -51: Stray end tag g -55: Stray g start tag. -60: Stray end tag g -63: Stray p start tag. -69: Stray span start tag. +(1,41) unexpected-start-tag-after-frameset +(1,44) unexpected-start-tag-after-frameset +(1,48) unexpected-end-tag-after-frameset +(1,51) unexpected-start-tag-after-frameset +(1,55) unexpected-end-tag-after-frameset +(1,58) unexpected-start-tag-after-frameset +(1,64) unexpected-start-tag-after-frameset #document | <!DOCTYPE html> | <html> @@ -428,3 +428,420 @@ | xlink href="foo" | xml lang="en" | "bar" + +#data +<svg></path> +#errors +(1,5) expected-doctype-but-got-start-tag +(1,12) unexpected-end-tag +(1,12) unexpected-end-tag +(1,12) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> + +#data +<div><svg></div>a +#errors +(1,5) expected-doctype-but-got-start-tag +(1,16) unexpected-end-tag +(1,16) end-tag-too-early +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| "a" + +#data +<div><svg><path></div>a +#errors +(1,5) expected-doctype-but-got-start-tag +(1,22) unexpected-end-tag +(1,22) end-tag-too-early +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| "a" + +#data +<div><svg><path></svg><path> +#errors +(1,5) expected-doctype-but-got-start-tag +(1,22) unexpected-end-tag +(1,28) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| <path> + +#data +<div><svg><path><foreignObject><math></div>a +#errors +(1,5) expected-doctype-but-got-start-tag +(1,43) unexpected-end-tag +(1,43) end-tag-too-early +(1,44) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| <svg foreignObject> +| <math math> +| "a" + +#data +<div><svg><path><foreignObject><p></div>a +#errors +(1,5) expected-doctype-but-got-start-tag +(1,40) end-tag-too-early +(1,41) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| <svg foreignObject> +| <p> +| "a" + +#data +<!DOCTYPE html><svg><desc><div><svg><ul>a +#errors +(1,40) unexpected-html-element-in-foreign-content +(1,41) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg desc> +| <div> +| <svg svg> +| <ul> +| "a" + +#data +<!DOCTYPE html><svg><desc><svg><ul>a +#errors +(1,35) unexpected-html-element-in-foreign-content +(1,36) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg desc> +| <svg svg> +| <ul> +| "a" + +#data +<!DOCTYPE html><p><svg><desc><p> +#errors +(1,32) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <svg svg> +| <svg desc> +| <p> + +#data +<!DOCTYPE html><p><svg><title><p> +#errors +(1,33) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <svg svg> +| <svg title> +| <p> + +#data +<div><svg><path><foreignObject><p></foreignObject><p> +#errors +(1,5) expected-doctype-but-got-start-tag +(1,50) unexpected-end-tag +(1,53) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <svg svg> +| <svg path> +| <svg foreignObject> +| <p> +| <p> + +#data +<math><mi><div><object><div><span></span></div></object></div></mi><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,71) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| <div> +| <object> +| <div> +| <span> +| <math mi> + +#data +<math><mi><svg><foreignObject><div><div></div></div></foreignObject></svg></mi><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,83) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| <svg svg> +| <svg foreignObject> +| <div> +| <div> +| <math mi> + +#data +<svg><script></script><path> +#errors +(1,5) expected-doctype-but-got-start-tag +(1,28) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg script> +| <svg path> + +#data +<table><svg></svg><tr> +#errors +(1,7) expected-doctype-but-got-start-tag +(1,12) unexpected-start-tag-implies-table-voodoo +(1,22) eof-in-table +#document +| <html> +| <head> +| <body> +| <svg svg> +| <table> +| <tbody> +| <tr> + +#data +<math><mi><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,18) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| <math mglyph> + +#data +<math><mi><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,22) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mi> +| <math malignmark> + +#data +<math><mo><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,18) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mo> +| <math mglyph> + +#data +<math><mo><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,22) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mo> +| <math malignmark> + +#data +<math><mn><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,18) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mn> +| <math mglyph> + +#data +<math><mn><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,22) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mn> +| <math malignmark> + +#data +<math><ms><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,18) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math ms> +| <math mglyph> + +#data +<math><ms><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,22) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math ms> +| <math malignmark> + +#data +<math><mtext><mglyph> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,21) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mtext> +| <math mglyph> + +#data +<math><mtext><malignmark> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,25) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math mtext> +| <math malignmark> + +#data +<math><annotation-xml><svg></svg></annotation-xml><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,54) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <svg svg> +| <math mi> + +#data +<math><annotation-xml><svg><foreignObject><div><math><mi></mi></math><span></span></div></foreignObject><path></path></svg></annotation-xml><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,144) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <svg svg> +| <svg foreignObject> +| <div> +| <math math> +| <math mi> +| <span> +| <svg path> +| <math mi> + +#data +<math><annotation-xml><svg><foreignObject><math><mi><svg></svg></mi><mo></mo></math><span></span></foreignObject><path></path></svg></annotation-xml><mi> +#errors +(1,6) expected-doctype-but-got-start-tag +(1,153) expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <svg svg> +| <svg foreignObject> +| <math math> +| <math mi> +| <svg svg> +| <math mo> +| <span> +| <svg path> +| <math mi> diff --git a/test/data/tree-construction/tests14.dat b/test/data/tree-construction/tests14.dat new file mode 100644 index 0000000..a08b764 --- /dev/null +++ b/test/data/tree-construction/tests14.dat @@ -0,0 +1,75 @@ +#data +<!DOCTYPE html><html><body><xyz:abc></xyz:abc> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xyz:abc> + +#data +<!DOCTYPE html><html><body><xyz:abc></xyz:abc><span></span> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xyz:abc> +| <span> + +#data +<!DOCTYPE html><html><html abc:def=gh><xyz:abc></xyz:abc> +#errors +(1,38): non-html-root +#document +| <!DOCTYPE html> +| <html> +| abc:def="gh" +| <head> +| <body> +| <xyz:abc> + +#data +<!DOCTYPE html><html xml:lang=bar><html xml:lang=foo> +#errors +(1,53): non-html-root +#document +| <!DOCTYPE html> +| <html> +| xml:lang="bar" +| <head> +| <body> + +#data +<!DOCTYPE html><html 123=456> +#errors +#document +| <!DOCTYPE html> +| <html> +| 123="456" +| <head> +| <body> + +#data +<!DOCTYPE html><html 123=456><html 789=012> +#errors +(1,43): non-html-root +#document +| <!DOCTYPE html> +| <html> +| 123="456" +| 789="012" +| <head> +| <body> + +#data +<!DOCTYPE html><html><body 789=012> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| 789="012" diff --git a/test/data/tree-construction/tests15.dat b/test/data/tree-construction/tests15.dat new file mode 100644 index 0000000..93d06a8 --- /dev/null +++ b/test/data/tree-construction/tests15.dat @@ -0,0 +1,216 @@ +#data +<!DOCTYPE html><p><b><i><u></p> <p>X +#errors +(1,31): unexpected-end-tag +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <b> +| <i> +| <u> +| <b> +| <i> +| <u> +| " " +| <p> +| "X" + +#data +<p><b><i><u></p> +<p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,16): unexpected-end-tag +(2,4): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| <i> +| <u> +| <b> +| <i> +| <u> +| " +" +| <p> +| "X" + +#data +<!doctype html></html> <head> +#errors +(1,29): expected-eof-but-got-start-tag +(1,29): unexpected-start-tag-ignored +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " " + +#data +<!doctype html></body><meta> +#errors +(1,28): unexpected-start-tag-after-body +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <meta> + +#data +<html></html><!-- foo --> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <!-- foo --> + +#data +<!doctype html></body><title>X</title> +#errors +(1,29): unexpected-start-tag-after-body +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <title> +| "X" + +#data +<!doctype html><table> X<meta></table> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,30): foster-parenting-start-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " X" +| <meta> +| <table> + +#data +<!doctype html><table> x</table> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " x" +| <table> + +#data +<!doctype html><table> x </table> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,25): foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " x " +| <table> + +#data +<!doctype html><table><tr> x</table> +#errors +(1,27): foster-parenting-character +(1,28): foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " x" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><table>X<style> <tr>x </style> </table> +#errors +(1,23): foster-parenting-character +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "X" +| <table> +| <style> +| " <tr>x " +| " " + +#data +<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> +#errors +(1,30): foster-parenting-start-tag +(1,31): foster-parenting-character +(1,32): foster-parenting-character +(1,33): foster-parenting-character +(1,37): foster-parenting-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <a> +| "foo" +| <table> +| " " +| <tbody> +| <tr> +| <td> +| "bar" +| " " + +#data +<frame></frame></frame><frameset><frame><frameset><frame></frameset><noframes></frameset><noframes> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,7): unexpected-start-tag-ignored +(1,15): unexpected-end-tag +(1,23): unexpected-end-tag +(1,33): unexpected-start-tag +(1,99): expected-named-closing-tag-but-got-eof +(1,99): eof-in-frameset +#document +| <html> +| <head> +| <frameset> +| <frame> +| <frameset> +| <frame> +| <noframes> +| "</frameset><noframes>" + +#data +<!DOCTYPE html><object></html> +#errors +(1,30): expected-body-in-scope +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <object> diff --git a/test/data/tree-construction/tests16.dat b/test/data/tree-construction/tests16.dat new file mode 100644 index 0000000..c8f6d43 --- /dev/null +++ b/test/data/tree-construction/tests16.dat @@ -0,0 +1,2374 @@ +#data +<!doctype html><script> +#errors +(1,23): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| <body> + +#data +<!doctype html><script>a +#errors +(1,24): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "a" +| <body> + +#data +<!doctype html><script>< +#errors +(1,24): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<" +| <body> + +#data +<!doctype html><script></ +#errors +(1,25): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</" +| <body> + +#data +<!doctype html><script></S +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</S" +| <body> + +#data +<!doctype html><script></SC +#errors +(1,27): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SC" +| <body> + +#data +<!doctype html><script></SCR +#errors +(1,28): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SCR" +| <body> + +#data +<!doctype html><script></SCRI +#errors +(1,29): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SCRI" +| <body> + +#data +<!doctype html><script></SCRIP +#errors +(1,30): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SCRIP" +| <body> + +#data +<!doctype html><script></SCRIPT +#errors +(1,31): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</SCRIPT" +| <body> + +#data +<!doctype html><script></SCRIPT +#errors +(1,32): expected-attribute-name-but-got-eof +(1,32): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| <body> + +#data +<!doctype html><script></s +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</s" +| <body> + +#data +<!doctype html><script></sc +#errors +(1,27): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</sc" +| <body> + +#data +<!doctype html><script></scr +#errors +(1,28): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</scr" +| <body> + +#data +<!doctype html><script></scri +#errors +(1,29): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</scri" +| <body> + +#data +<!doctype html><script></scrip +#errors +(1,30): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</scrip" +| <body> + +#data +<!doctype html><script></script +#errors +(1,31): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "</script" +| <body> + +#data +<!doctype html><script></script +#errors +(1,32): expected-attribute-name-but-got-eof +(1,32): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| <body> + +#data +<!doctype html><script><! +#errors +(1,25): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!" +| <body> + +#data +<!doctype html><script><!a +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!a" +| <body> + +#data +<!doctype html><script><!- +#errors +(1,26): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!-" +| <body> + +#data +<!doctype html><script><!-a +#errors +(1,27): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!-a" +| <body> + +#data +<!doctype html><script><!-- +#errors +(1,27): expected-named-closing-tag-but-got-eof +(1,27): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--" +| <body> + +#data +<!doctype html><script><!--a +#errors +(1,28): expected-named-closing-tag-but-got-eof +(1,28): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--a" +| <body> + +#data +<!doctype html><script><!--< +#errors +(1,28): expected-named-closing-tag-but-got-eof +(1,28): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<" +| <body> + +#data +<!doctype html><script><!--<a +#errors +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<a" +| <body> + +#data +<!doctype html><script><!--</ +#errors +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--</" +| <body> + +#data +<!doctype html><script><!--</script +#errors +(1,35): expected-named-closing-tag-but-got-eof +(1,35): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--</script" +| <body> + +#data +<!doctype html><script><!--</script +#errors +(1,36): expected-attribute-name-but-got-eof +(1,36): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--" +| <body> + +#data +<!doctype html><script><!--<s +#errors +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<s" +| <body> + +#data +<!doctype html><script><!--<script +#errors +(1,34): expected-named-closing-tag-but-got-eof +(1,34): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script" +| <body> + +#data +<!doctype html><script><!--<script +#errors +(1,35): eof-in-script-in-script +(1,35): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script " +| <body> + +#data +<!doctype html><script><!--<script < +#errors +(1,36): eof-in-script-in-script +(1,36): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script <" +| <body> + +#data +<!doctype html><script><!--<script <a +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script <a" +| <body> + +#data +<!doctype html><script><!--<script </ +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </" +| <body> + +#data +<!doctype html><script><!--<script </s +#errors +(1,38): eof-in-script-in-script +(1,38): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </s" +| <body> + +#data +<!doctype html><script><!--<script </script +#errors +(1,43): eof-in-script-in-script +(1,43): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script" +| <body> + +#data +<!doctype html><script><!--<script </scripta +#errors +(1,44): eof-in-script-in-script +(1,44): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </scripta" +| <body> + +#data +<!doctype html><script><!--<script </script +#errors +(1,44): expected-named-closing-tag-but-got-eof +(1,44): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<!doctype html><script><!--<script </script> +#errors +(1,44): expected-named-closing-tag-but-got-eof +(1,44): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script>" +| <body> + +#data +<!doctype html><script><!--<script </script/ +#errors +(1,44): expected-named-closing-tag-but-got-eof +(1,44): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script/" +| <body> + +#data +<!doctype html><script><!--<script </script < +#errors +(1,45): expected-named-closing-tag-but-got-eof +(1,45): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script <" +| <body> + +#data +<!doctype html><script><!--<script </script <a +#errors +(1,46): expected-named-closing-tag-but-got-eof +(1,46): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script <a" +| <body> + +#data +<!doctype html><script><!--<script </script </ +#errors +(1,46): expected-named-closing-tag-but-got-eof +(1,46): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script </" +| <body> + +#data +<!doctype html><script><!--<script </script </script +#errors +(1,52): expected-named-closing-tag-but-got-eof +(1,52): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script </script" +| <body> + +#data +<!doctype html><script><!--<script </script </script +#errors +(1,53): expected-attribute-name-but-got-eof +(1,53): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<!doctype html><script><!--<script </script </script/ +#errors +(1,53): unexpected-EOF-after-solidus-in-tag +(1,53): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<!doctype html><script><!--<script </script </script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<!doctype html><script><!--<script - +#errors +(1,36): eof-in-script-in-script +(1,36): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -" +| <body> + +#data +<!doctype html><script><!--<script -a +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -a" +| <body> + +#data +<!doctype html><script><!--<script -< +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -<" +| <body> + +#data +<!doctype html><script><!--<script -- +#errors +(1,37): eof-in-script-in-script +(1,37): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --" +| <body> + +#data +<!doctype html><script><!--<script --a +#errors +(1,38): eof-in-script-in-script +(1,38): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --a" +| <body> + +#data +<!doctype html><script><!--<script --< +#errors +(1,38): eof-in-script-in-script +(1,38): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --<" +| <body> + +#data +<!doctype html><script><!--<script --> +#errors +(1,38): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<!doctype html><script><!--<script -->< +#errors +(1,39): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --><" +| <body> + +#data +<!doctype html><script><!--<script --></ +#errors +(1,40): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --></" +| <body> + +#data +<!doctype html><script><!--<script --></script +#errors +(1,46): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script --></script" +| <body> + +#data +<!doctype html><script><!--<script --></script +#errors +(1,47): expected-attribute-name-but-got-eof +(1,47): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<!doctype html><script><!--<script --></script/ +#errors +(1,47): unexpected-EOF-after-solidus-in-tag +(1,47): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<!doctype html><script><!--<script --></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<!doctype html><script><!--<script><\/script>--></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script><\/script>-->" +| <body> + +#data +<!doctype html><script><!--<script></scr'+'ipt>--></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></scr'+'ipt>-->" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>--><!--</script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>--><!--" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>-- ></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>-- >" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>- -></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>- ->" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>- - ></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>- - >" +| <body> + +#data +<!doctype html><script><!--<script></script><script></script>-></script> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>->" +| <body> + +#data +<!doctype html><script><!--<script>--!></script>X +#errors +(1,49): expected-named-closing-tag-but-got-eof +(1,49): unexpected-EOF-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script>--!></script>X" +| <body> + +#data +<!doctype html><script><!--<scr'+'ipt></script>--></script> +#errors +(1,59): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<scr'+'ipt>" +| <body> +| "-->" + +#data +<!doctype html><script><!--<script></scr'+'ipt></script>X +#errors +(1,57): expected-named-closing-tag-but-got-eof +(1,57): unexpected-eof-in-text-mode +#document +| <!DOCTYPE html> +| <html> +| <head> +| <script> +| "<!--<script></scr'+'ipt></script>X" +| <body> + +#data +<!doctype html><style><!--<style></style>--></style> +#errors +(1,52): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--<style>" +| <body> +| "-->" + +#data +<!doctype html><style><!--</style>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--" +| <body> +| "X" + +#data +<!doctype html><style><!--...</style>...--></style> +#errors +(1,51): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--..." +| <body> +| "...-->" + +#data +<!doctype html><style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" +| <body> +| "X" + +#data +<!doctype html><style><!--...<style><!--...--!></style>--></style> +#errors +(1,66): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--...<style><!--...--!>" +| <body> +| "-->" + +#data +<!doctype html><style><!--...</style><!-- --><style>@import ...</style> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "<!--..." +| <!-- --> +| <style> +| "@import ..." +| <body> + +#data +<!doctype html><style>...<style><!--...</style><!-- --></style> +#errors +(1,63): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "...<style><!--..." +| <!-- --> +| <body> + +#data +<!doctype html><style>...<!--[if IE]><style>...</style>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <style> +| "...<!--[if IE]><style>..." +| <body> +| "X" + +#data +<!doctype html><title><!--<title></title>--></title> +#errors +(1,52): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "<!--<title>" +| <body> +| "-->" + +#data +<!doctype html><title></title></title> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "</title>" +| <body> + +#data +<!doctype html><title>foo/title><link></head><body>X +#errors +(1,52): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <title> +| "foo/title><link></head><body>X" +| <body> + +#data +<!doctype html><noscript><!--<noscript></noscript>--></noscript> +#errors +(1,64): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noscript> +| "<!--<noscript>" +| <body> +| "-->" + +#data +<!doctype html><noscript><!--</noscript>X<noscript>--></noscript> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noscript> +| "<!--" +| <body> +| "X" +| <noscript> +| "-->" + +#data +<!doctype html><noscript><iframe></noscript>X +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noscript> +| "<iframe>" +| <body> +| "X" + +#data +<!doctype html><noframes><!--<noframes></noframes>--></noframes> +#errors +(1,64): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noframes> +| "<!--<noframes>" +| <body> +| "-->" + +#data +<!doctype html><noframes><body><script><!--...</script></body></noframes></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <noframes> +| "<body><script><!--...</script></body>" +| <body> + +#data +<!doctype html><textarea><!--<textarea></textarea>--></textarea> +#errors +(1,64): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "<!--<textarea>" +| "-->" + +#data +<!doctype html><textarea></textarea></textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "</textarea>" + +#data +<!doctype html><textarea><</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "<" + +#data +<!doctype html><textarea>a<b</textarea> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> +| "a<b" + +#data +<!doctype html><iframe><!--<iframe></iframe>--></iframe> +#errors +(1,56): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <iframe> +| "<!--<iframe>" +| "-->" + +#data +<!doctype html><iframe>...<!--X->...<!--/X->...</iframe> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <iframe> +| "...<!--X->...<!--/X->..." + +#data +<!doctype html><xmp><!--<xmp></xmp>--></xmp> +#errors +(1,44): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xmp> +| "<!--<xmp>" +| "-->" + +#data +<!doctype html><noembed><!--<noembed></noembed>--></noembed> +#errors +(1,60): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <noembed> +| "<!--<noembed>" +| "-->" + +#data +<script> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,8): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| <body> + +#data +<script>a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,9): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "a" +| <body> + +#data +<script>< +#errors +(1,8): expected-doctype-but-got-start-tag +(1,9): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<" +| <body> + +#data +<script></ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,10): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</" +| <body> + +#data +<script></S +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</S" +| <body> + +#data +<script></SC +#errors +(1,8): expected-doctype-but-got-start-tag +(1,12): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SC" +| <body> + +#data +<script></SCR +#errors +(1,8): expected-doctype-but-got-start-tag +(1,13): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SCR" +| <body> + +#data +<script></SCRI +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SCRI" +| <body> + +#data +<script></SCRIP +#errors +(1,8): expected-doctype-but-got-start-tag +(1,15): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SCRIP" +| <body> + +#data +<script></SCRIPT +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</SCRIPT" +| <body> + +#data +<script></SCRIPT +#errors +(1,8): expected-doctype-but-got-start-tag +(1,17): expected-attribute-name-but-got-eof +(1,17): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| <body> + +#data +<script></s +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</s" +| <body> + +#data +<script></sc +#errors +(1,8): expected-doctype-but-got-start-tag +(1,12): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</sc" +| <body> + +#data +<script></scr +#errors +(1,8): expected-doctype-but-got-start-tag +(1,13): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</scr" +| <body> + +#data +<script></scri +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</scri" +| <body> + +#data +<script></scrip +#errors +(1,8): expected-doctype-but-got-start-tag +(1,15): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</scrip" +| <body> + +#data +<script></script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "</script" +| <body> + +#data +<script></script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,17): expected-attribute-name-but-got-eof +(1,17): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| <body> + +#data +<script><! +#errors +(1,8): expected-doctype-but-got-start-tag +(1,10): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!" +| <body> + +#data +<script><!a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!a" +| <body> + +#data +<script><!- +#errors +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!-" +| <body> + +#data +<script><!-a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,12): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!-a" +| <body> + +#data +<script><!-- +#errors +(1,8): expected-doctype-but-got-start-tag +(1,12): expected-named-closing-tag-but-got-eof +(1,12): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--" +| <body> + +#data +<script><!--a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,13): expected-named-closing-tag-but-got-eof +(1,13): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--a" +| <body> + +#data +<script><!--< +#errors +(1,8): expected-doctype-but-got-start-tag +(1,13): expected-named-closing-tag-but-got-eof +(1,13): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<" +| <body> + +#data +<script><!--<a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +(1,14): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<a" +| <body> + +#data +<script><!--</ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +(1,14): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--</" +| <body> + +#data +<script><!--</script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,20): expected-named-closing-tag-but-got-eof +(1,20): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--</script" +| <body> + +#data +<script><!--</script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,21): expected-attribute-name-but-got-eof +(1,21): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--" +| <body> + +#data +<script><!--<s +#errors +(1,8): expected-doctype-but-got-start-tag +(1,14): expected-named-closing-tag-but-got-eof +(1,14): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<s" +| <body> + +#data +<script><!--<script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,19): expected-named-closing-tag-but-got-eof +(1,19): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script" +| <body> + +#data +<script><!--<script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,20): eof-in-script-in-script +(1,20): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script " +| <body> + +#data +<script><!--<script < +#errors +(1,8): expected-doctype-but-got-start-tag +(1,21): eof-in-script-in-script +(1,21): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script <" +| <body> + +#data +<script><!--<script <a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): eof-in-script-in-script +(1,22): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script <a" +| <body> + +#data +<script><!--<script </ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): eof-in-script-in-script +(1,22): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </" +| <body> + +#data +<script><!--<script </s +#errors +(1,8): expected-doctype-but-got-start-tag +(1,23): eof-in-script-in-script +(1,23): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </s" +| <body> + +#data +<script><!--<script </script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,28): eof-in-script-in-script +(1,28): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </script" +| <body> + +#data +<script><!--<script </scripta +#errors +(1,8): expected-doctype-but-got-start-tag +(1,29): eof-in-script-in-script +(1,29): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </scripta" +| <body> + +#data +<script><!--<script </script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<script><!--<script </script> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script>" +| <body> + +#data +<script><!--<script </script/ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,29): expected-named-closing-tag-but-got-eof +(1,29): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script/" +| <body> + +#data +<script><!--<script </script < +#errors +(1,8): expected-doctype-but-got-start-tag +(1,30): expected-named-closing-tag-but-got-eof +(1,30): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script <" +| <body> + +#data +<script><!--<script </script <a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,31): expected-named-closing-tag-but-got-eof +(1,31): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script <a" +| <body> + +#data +<script><!--<script </script </ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,31): expected-named-closing-tag-but-got-eof +(1,31): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script </" +| <body> + +#data +<script><!--<script </script </script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,37): expected-named-closing-tag-but-got-eof +(1,37): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script </script </script" +| <body> + +#data +<script><!--<script </script </script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,38): expected-attribute-name-but-got-eof +(1,38): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<script><!--<script </script </script/ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,38): unexpected-EOF-after-solidus-in-tag +(1,38): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<script><!--<script </script </script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script </script " +| <body> + +#data +<script><!--<script - +#errors +(1,8): expected-doctype-but-got-start-tag +(1,21): eof-in-script-in-script +(1,21): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -" +| <body> + +#data +<script><!--<script -a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): eof-in-script-in-script +(1,22): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -a" +| <body> + +#data +<script><!--<script -- +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): eof-in-script-in-script +(1,22): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --" +| <body> + +#data +<script><!--<script --a +#errors +(1,8): expected-doctype-but-got-start-tag +(1,23): eof-in-script-in-script +(1,23): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --a" +| <body> + +#data +<script><!--<script --> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,23): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<script><!--<script -->< +#errors +(1,8): expected-doctype-but-got-start-tag +(1,24): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --><" +| <body> + +#data +<script><!--<script --></ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,25): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --></" +| <body> + +#data +<script><!--<script --></script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,31): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script --></script" +| <body> + +#data +<script><!--<script --></script +#errors +(1,8): expected-doctype-but-got-start-tag +(1,32): expected-attribute-name-but-got-eof +(1,32): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<script><!--<script --></script/ +#errors +(1,8): expected-doctype-but-got-start-tag +(1,32): unexpected-EOF-after-solidus-in-tag +(1,32): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<script><!--<script --></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script -->" +| <body> + +#data +<script><!--<script><\/script>--></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script><\/script>-->" +| <body> + +#data +<script><!--<script></scr'+'ipt>--></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></scr'+'ipt>-->" +| <body> + +#data +<script><!--<script></script><script></script></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>" +| <body> + +#data +<script><!--<script></script><script></script>--><!--</script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>--><!--" +| <body> + +#data +<script><!--<script></script><script></script>-- ></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>-- >" +| <body> + +#data +<script><!--<script></script><script></script>- -></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>- ->" +| <body> + +#data +<script><!--<script></script><script></script>- - ></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>- - >" +| <body> + +#data +<script><!--<script></script><script></script>-></script> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <script> +| "<!--<script></script><script></script>->" +| <body> + +#data +<script><!--<script>--!></script>X +#errors +(1,8): expected-doctype-but-got-start-tag +(1,34): expected-named-closing-tag-but-got-eof +(1,34): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script>--!></script>X" +| <body> + +#data +<script><!--<scr'+'ipt></script>--></script> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,44): unexpected-end-tag +#document +| <html> +| <head> +| <script> +| "<!--<scr'+'ipt>" +| <body> +| "-->" + +#data +<script><!--<script></scr'+'ipt></script>X +#errors +(1,8): expected-doctype-but-got-start-tag +(1,42): expected-named-closing-tag-but-got-eof +(1,42): unexpected-eof-in-text-mode +#document +| <html> +| <head> +| <script> +| "<!--<script></scr'+'ipt></script>X" +| <body> + +#data +<style><!--<style></style>--></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,37): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "<!--<style>" +| <body> +| "-->" + +#data +<style><!--</style>X +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--" +| <body> +| "X" + +#data +<style><!--...</style>...--></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,36): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "<!--..." +| <body> +| "...-->" + +#data +<style><!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style></style>X +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--<br><html xmlns:v="urn:schemas-microsoft-com:vml"><!--[if !mso]><style>" +| <body> +| "X" + +#data +<style><!--...<style><!--...--!></style>--></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,51): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "<!--...<style><!--...--!>" +| <body> +| "-->" + +#data +<style><!--...</style><!-- --><style>@import ...</style> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "<!--..." +| <!-- --> +| <style> +| "@import ..." +| <body> + +#data +<style>...<style><!--...</style><!-- --></style> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,48): unexpected-end-tag +#document +| <html> +| <head> +| <style> +| "...<style><!--..." +| <!-- --> +| <body> + +#data +<style>...<!--[if IE]><style>...</style>X +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <style> +| "...<!--[if IE]><style>..." +| <body> +| "X" + +#data +<title><!--<title></title>--></title> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,37): unexpected-end-tag +#document +| <html> +| <head> +| <title> +| "<!--<title>" +| <body> +| "-->" + +#data +<title></title></title> +#errors +(1,7): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <title> +| "</title>" +| <body> + +#data +<title>foo/title><link></head><body>X +#errors +(1,7): expected-doctype-but-got-start-tag +(1,37): expected-named-closing-tag-but-got-eof +#document +| <html> +| <head> +| <title> +| "foo/title><link></head><body>X" +| <body> + +#data +<noscript><!--<noscript></noscript>--></noscript> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,49): unexpected-end-tag +#document +| <html> +| <head> +| <noscript> +| "<!--<noscript>" +| <body> +| "-->" + +#data +<noscript><!--</noscript>X<noscript>--></noscript> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <noscript> +| "<!--" +| <body> +| "X" +| <noscript> +| "-->" + +#data +<noscript><iframe></noscript>X +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <noscript> +| "<iframe>" +| <body> +| "X" + +#data +<noframes><!--<noframes></noframes>--></noframes> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,49): unexpected-end-tag +#document +| <html> +| <head> +| <noframes> +| "<!--<noframes>" +| <body> +| "-->" + +#data +<noframes><body><script><!--...</script></body></noframes></html> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <noframes> +| "<body><script><!--...</script></body>" +| <body> + +#data +<textarea><!--<textarea></textarea>--></textarea> +#errors +(1,10): expected-doctype-but-got-start-tag +(1,49): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "<!--<textarea>" +| "-->" + +#data +<textarea></textarea></textarea> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <textarea> +| "</textarea>" + +#data +<iframe><!--<iframe></iframe>--></iframe> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,41): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <iframe> +| "<!--<iframe>" +| "-->" + +#data +<iframe>...<!--X->...<!--/X->...</iframe> +#errors +(1,8): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <iframe> +| "...<!--X->...<!--/X->..." + +#data +<xmp><!--<xmp></xmp>--></xmp> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,29): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <xmp> +| "<!--<xmp>" +| "-->" + +#data +<noembed><!--<noembed></noembed>--></noembed> +#errors +(1,9): expected-doctype-but-got-start-tag +(1,45): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <noembed> +| "<!--<noembed>" +| "-->" + +#data +<!doctype html><table> + +#errors +(2,0): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| " +" + +#data +<!doctype html><table><td><span><font></span><span> +#errors +(1,26): unexpected-cell-in-table-body +(1,45): unexpected-end-tag +(1,51): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <span> +| <font> +| <font> +| <span> + +#data +<!doctype html><form><table></form><form></table></form> +#errors +(1,35): unexpected-end-tag-implies-table-voodoo +(1,35): unexpected-end-tag +(1,41): unexpected-form-in-table +(1,56): unexpected-end-tag +(1,56): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <table> +| <form> diff --git a/test/data/tree-construction/tests17.dat b/test/data/tree-construction/tests17.dat new file mode 100644 index 0000000..37a7be4 --- /dev/null +++ b/test/data/tree-construction/tests17.dat @@ -0,0 +1,180 @@ +#data +<!doctype html><table><tbody><select><tr> +#errors +(1,37): unexpected-start-tag-implies-table-voodoo +(1,41): unexpected-table-element-start-tag-in-select-in-table +(1,41): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><table><tr><select><td> +#errors +(1,34): unexpected-start-tag-implies-table-voodoo +(1,38): unexpected-table-element-start-tag-in-select-in-table +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <table> +| <tbody> +| <tr> +| <td> + +#data +<!doctype html><table><tr><td><select><td> +#errors +(1,42): unexpected-table-element-start-tag-in-select-in-table +(1,42): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <select> +| <td> + +#data +<!doctype html><table><tr><th><select><td> +#errors +(1,42): unexpected-table-element-start-tag-in-select-in-table +(1,42): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <th> +| <select> +| <td> + +#data +<!doctype html><table><caption><select><tr> +#errors +(1,43): unexpected-table-element-start-tag-in-select-in-table +(1,43): XXX-undefined-error +(1,43): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <select> +| <tbody> +| <tr> + +#data +<!doctype html><select><tr> +#errors +(1,27): unexpected-start-tag-in-select +(1,27): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><td> +#errors +(1,27): unexpected-start-tag-in-select +(1,27): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><th> +#errors +(1,27): unexpected-start-tag-in-select +(1,27): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><tbody> +#errors +(1,30): unexpected-start-tag-in-select +(1,30): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><thead> +#errors +(1,30): unexpected-start-tag-in-select +(1,30): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><tfoot> +#errors +(1,30): unexpected-start-tag-in-select +(1,30): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><select><caption> +#errors +(1,32): unexpected-start-tag-in-select +(1,32): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><table><tr></table>a +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| "a" diff --git a/test/data/tree-construction/tests18.dat b/test/data/tree-construction/tests18.dat new file mode 100644 index 0000000..926bccb --- /dev/null +++ b/test/data/tree-construction/tests18.dat @@ -0,0 +1,322 @@ +#data +<!doctype html><plaintext></plaintext> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" + +#data +<!doctype html><table><plaintext></plaintext> +#errors +(1,33): foster-parenting-start-tag +(1,34): foster-parenting-character +(1,35): foster-parenting-character +(1,36): foster-parenting-character +(1,37): foster-parenting-character +(1,38): foster-parenting-character +(1,39): foster-parenting-character +(1,40): foster-parenting-character +(1,41): foster-parenting-character +(1,42): foster-parenting-character +(1,43): foster-parenting-character +(1,44): foster-parenting-character +(1,45): foster-parenting-character +(1,45): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" +| <table> + +#data +<!doctype html><table><tbody><plaintext></plaintext> +#errors +(1,40): foster-parenting-start-tag +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,41): foster-parenting-character +(1,52): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" +| <table> +| <tbody> + +#data +<!doctype html><table><tbody><tr><plaintext></plaintext> +#errors +(1,44): foster-parenting-start-tag +(1,45): foster-parenting-character +(1,46): foster-parenting-character +(1,47): foster-parenting-character +(1,48): foster-parenting-character +(1,49): foster-parenting-character +(1,50): foster-parenting-character +(1,51): foster-parenting-character +(1,52): foster-parenting-character +(1,53): foster-parenting-character +(1,54): foster-parenting-character +(1,55): foster-parenting-character +(1,56): foster-parenting-character +(1,56): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <plaintext> +| "</plaintext>" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><table><td><plaintext></plaintext> +#errors +(1,26): unexpected-cell-in-table-body +(1,49): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <plaintext> +| "</plaintext>" + +#data +<!doctype html><table><caption><plaintext></plaintext> +#errors +(1,54): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <plaintext> +| "</plaintext>" + +#data +<!doctype html><table><tr><style></script></style>abc +#errors +(1,51): foster-parenting-character +(1,52): foster-parenting-character +(1,53): foster-parenting-character +(1,53): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "abc" +| <table> +| <tbody> +| <tr> +| <style> +| "</script>" + +#data +<!doctype html><table><tr><script></style></script>abc +#errors +(1,52): foster-parenting-character +(1,53): foster-parenting-character +(1,54): foster-parenting-character +(1,54): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "abc" +| <table> +| <tbody> +| <tr> +| <script> +| "</style>" + +#data +<!doctype html><table><caption><style></script></style>abc +#errors +(1,58): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <caption> +| <style> +| "</script>" +| "abc" + +#data +<!doctype html><table><td><style></script></style>abc +#errors +(1,26): unexpected-cell-in-table-body +(1,53): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <style> +| "</script>" +| "abc" + +#data +<!doctype html><select><script></style></script>abc +#errors +(1,51): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <script> +| "</style>" +| "abc" + +#data +<!doctype html><table><select><script></style></script>abc +#errors +(1,30): unexpected-start-tag-implies-table-voodoo +(1,58): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <script> +| "</style>" +| "abc" +| <table> + +#data +<!doctype html><table><tr><select><script></style></script>abc +#errors +(1,34): unexpected-start-tag-implies-table-voodoo +(1,62): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <script> +| "</style>" +| "abc" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><frameset></frameset><noframes>abc +#errors +(1,49): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <noframes> +| "abc" + +#data +<!doctype html><frameset></frameset><noframes>abc</noframes><!--abc--> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <noframes> +| "abc" +| <!-- abc --> + +#data +<!doctype html><frameset></frameset></html><noframes>abc +#errors +(1,56): expected-named-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <noframes> +| "abc" + +#data +<!doctype html><frameset></frameset></html><noframes>abc</noframes><!--abc--> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <noframes> +| "abc" +| <!-- abc --> + +#data +<!doctype html><table><tr></tbody><tfoot> +#errors +(1,41): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <tfoot> + +#data +<!doctype html><table><td><svg></svg>abc<td> +#errors +(1,26): unexpected-cell-in-table-body +(1,44): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| "abc" +| <td> diff --git a/test/data/tree-construction/tests19.dat b/test/data/tree-construction/tests19.dat new file mode 100644 index 0000000..9e7e03f --- /dev/null +++ b/test/data/tree-construction/tests19.dat @@ -0,0 +1,1464 @@ +#data +<!doctype html><math><mn DefinitionUrl="foo"> +#errors +(1,45): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mn> +| definitionURL="foo" + +#data +<!doctype html><html></p><!--foo--> +#errors +(1,25): end-tag-after-implied-root +#document +| <!DOCTYPE html> +| <html> +| <!-- foo --> +| <head> +| <body> + +#data +<!doctype html><head></head></p><!--foo--> +#errors +(1,32): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <!-- foo --> +| <body> + +#data +<!doctype html><body><p><pre> +#errors +(1,29): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <pre> + +#data +<!doctype html><body><p><listing> +#errors +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <listing> + +#data +<!doctype html><p><plaintext> +#errors +(1,29): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <plaintext> + +#data +<!doctype html><p><h1> +#errors +(1,22): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <h1> + +#data +<!doctype html><form><isindex> +#errors +(1,30): deprecated-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> + +#data +<!doctype html><isindex action="POST"> +#errors +(1,38): deprecated-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| action="POST" +| <hr> +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| <hr> + +#data +<!doctype html><isindex prompt="this is isindex"> +#errors +(1,49): deprecated-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <hr> +| <label> +| "this is isindex" +| <input> +| name="isindex" +| <hr> + +#data +<!doctype html><isindex type="hidden"> +#errors +(1,38): deprecated-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <hr> +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| type="hidden" +| <hr> + +#data +<!doctype html><isindex name="foo"> +#errors +(1,35): deprecated-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <hr> +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| <hr> + +#data +<!doctype html><ruby><p><rp> +#errors +(1,28): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <p> +| <rp> + +#data +<!doctype html><ruby><div><span><rp> +#errors +(1,36): XXX-undefined-error +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <span> +| <rp> + +#data +<!doctype html><ruby><div><p><rp> +#errors +(1,33): XXX-undefined-error +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <p> +| <rp> + +#data +<!doctype html><ruby><p><rt> +#errors +(1,28): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <p> +| <rt> + +#data +<!doctype html><ruby><div><span><rt> +#errors +(1,36): XXX-undefined-error +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <span> +| <rt> + +#data +<!doctype html><ruby><div><p><rt> +#errors +(1,33): XXX-undefined-error +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <p> +| <rt> + +#data +<!doctype html><math/><foo> +#errors +(1,27): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <foo> + +#data +<!doctype html><svg/><foo> +#errors +(1,26): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <foo> + +#data +<!doctype html><div></body><!--foo--> +#errors +(1,27): expected-one-end-tag-but-got-another +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <!-- foo --> + +#data +<!doctype html><h1><div><h3><span></h1>foo +#errors +(1,39): end-tag-too-early +(1,42): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <h1> +| <div> +| <h3> +| <span> +| "foo" + +#data +<!doctype html><p></h3>foo +#errors +(1,23): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "foo" + +#data +<!doctype html><h3><li>abc</h2>foo +#errors +(1,31): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <h3> +| <li> +| "abc" +| "foo" + +#data +<!doctype html><table>abc<!--foo--> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,25): foster-parenting-character +(1,35): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "abc" +| <table> +| <!-- foo --> + +#data +<!doctype html><table> <!--foo--> +#errors +(1,34): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| " " +| <!-- foo --> + +#data +<!doctype html><table> b <!--foo--> +#errors +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,25): foster-parenting-character +(1,35): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| " b " +| <table> +| <!-- foo --> + +#data +<!doctype html><select><option><option> +#errors +(1,39): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> +| <option> + +#data +<!doctype html><select><option></optgroup> +#errors +(1,42): unexpected-end-tag-in-select +(1,42): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> + +#data +<!doctype html><select><option></optgroup> +#errors +(1,42): unexpected-end-tag-in-select +(1,42): eof-in-select +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> +| <option> + +#data +<!doctype html><dd><optgroup><dd> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <dd> +| <optgroup> +| <dd> + +#data +<!doctype html><p><math><mi><p><h1> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mi> +| <p> +| <h1> + +#data +<!doctype html><p><math><mo><p><h1> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mo> +| <p> +| <h1> + +#data +<!doctype html><p><math><mn><p><h1> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mn> +| <p> +| <h1> + +#data +<!doctype html><p><math><ms><p><h1> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math ms> +| <p> +| <h1> + +#data +<!doctype html><p><math><mtext><p><h1> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mtext> +| <p> +| <h1> + +#data +<!doctype html><frameset></noframes> +#errors +(1,36): unexpected-end-tag-in-frameset +(1,36): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><html c=d><body></html><html a=b> +#errors +(1,48): non-html-root +#document +| <!DOCTYPE html> +| <html> +| a="b" +| c="d" +| <head> +| <body> + +#data +<!doctype html><html c=d><frameset></frameset></html><html a=b> +#errors +(1,63): non-html-root +#document +| <!DOCTYPE html> +| <html> +| a="b" +| c="d" +| <head> +| <frameset> + +#data +<!doctype html><html><frameset></frameset></html><!--foo--> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <!-- foo --> + +#data +<!doctype html><html><frameset></frameset></html> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| " " + +#data +<!doctype html><html><frameset></frameset></html>abc +#errors +(1,50): expected-eof-but-got-char +(1,51): expected-eof-but-got-char +(1,52): expected-eof-but-got-char +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><html><frameset></frameset></html><p> +#errors +(1,52): expected-eof-but-got-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><html><frameset></frameset></html></p> +#errors +(1,53): expected-eof-but-got-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<html><frameset></frameset></html><!doctype html> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,49): unexpected-doctype +#document +| <html> +| <head> +| <frameset> + +#data +<!doctype html><body><frameset> +#errors +(1,31): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> + +#data +<!doctype html><p><frameset><frame> +#errors +(1,28): unexpected-start-tag +(1,35): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><p>a<frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| "a" + +#data +<!doctype html><p> <frameset><frame> +#errors +(1,29): unexpected-start-tag +(1,36): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><pre><frameset> +#errors +(1,30): unexpected-start-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> + +#data +<!doctype html><listing><frameset> +#errors +(1,34): unexpected-start-tag +(1,34): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <listing> + +#data +<!doctype html><li><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <li> + +#data +<!doctype html><dd><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <dd> + +#data +<!doctype html><dt><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <dt> + +#data +<!doctype html><button><frameset> +#errors +(1,33): unexpected-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <button> + +#data +<!doctype html><applet><frameset> +#errors +(1,33): unexpected-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <applet> + +#data +<!doctype html><marquee><frameset> +#errors +(1,34): unexpected-start-tag +(1,34): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <marquee> + +#data +<!doctype html><object><frameset> +#errors +(1,33): unexpected-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <object> + +#data +<!doctype html><table><frameset> +#errors +(1,32): unexpected-start-tag-implies-table-voodoo +(1,32): unexpected-start-tag +(1,32): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> + +#data +<!doctype html><area><frameset> +#errors +(1,31): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <area> + +#data +<!doctype html><basefont><frameset> +#errors +(1,35): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <basefont> +| <frameset> + +#data +<!doctype html><bgsound><frameset> +#errors +(1,34): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <bgsound> +| <frameset> + +#data +<!doctype html><br><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <br> + +#data +<!doctype html><embed><frameset> +#errors +(1,32): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <embed> + +#data +<!doctype html><img><frameset> +#errors +(1,30): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <img> + +#data +<!doctype html><input><frameset> +#errors +(1,32): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <input> + +#data +<!doctype html><keygen><frameset> +#errors +(1,33): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <keygen> + +#data +<!doctype html><wbr><frameset> +#errors +(1,30): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <wbr> + +#data +<!doctype html><hr><frameset> +#errors +(1,29): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <hr> + +#data +<!doctype html><textarea></textarea><frameset> +#errors +(1,46): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <textarea> + +#data +<!doctype html><xmp></xmp><frameset> +#errors +(1,36): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <xmp> + +#data +<!doctype html><iframe></iframe><frameset> +#errors +(1,42): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <iframe> + +#data +<!doctype html><select></select><frameset> +#errors +(1,42): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <select> + +#data +<!doctype html><svg></svg><frameset><frame> +#errors +(1,36): unexpected-start-tag +(1,43): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><math></math><frameset><frame> +#errors +(1,38): unexpected-start-tag +(1,45): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><svg><foreignObject><div> <frameset><frame> +#errors +(1,51): unexpected-start-tag +(1,58): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<!doctype html><svg>a</svg><frameset><frame> +#errors +(1,37): unexpected-start-tag +(1,44): unexpected-start-tag-ignored +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| "a" + +#data +<!doctype html><svg> </svg><frameset><frame> +#errors +(1,37): unexpected-start-tag +(1,44): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> +| <frame> + +#data +<html>aaa<frameset></frameset> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,19): unexpected-start-tag +(1,30): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| "aaa" + +#data +<html> a <frameset></frameset> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,19): unexpected-start-tag +(1,30): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| "a " + +#data +<!doctype html><div><frameset> +#errors +(1,30): unexpected-start-tag +(1,30): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><div><body><frameset> +#errors +(1,26): unexpected-start-tag +(1,36): unexpected-start-tag +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> + +#data +<!doctype html><p><math></p>a +#errors +(1,28): unexpected-end-tag +(1,28): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| "a" + +#data +<!doctype html><p><math><mn><span></p>a +#errors +(1,38): unexpected-end-tag +(1,39): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <math math> +| <math mn> +| <span> +| <p> +| "a" + +#data +<!doctype html><math></html> +#errors +(1,28): unexpected-end-tag +(1,28): expected-one-end-tag-but-got-another +(1,28): unexpected-end-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> + +#data +<!doctype html><meta charset="ascii"> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <meta> +| charset="ascii" +| <body> + +#data +<!doctype html><meta http-equiv="content-type" content="text/html;charset=ascii"> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <meta> +| content="text/html;charset=ascii" +| http-equiv="content-type" +| <body> + +#data +<!doctype html><head><!--aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa--><meta charset="utf8"> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --> +| <meta> +| charset="utf8" +| <body> + +#data +<!doctype html><html a=b><head></head><html c=d> +#errors +(1,48): non-html-root +#document +| <!DOCTYPE html> +| <html> +| a="b" +| c="d" +| <head> +| <body> + +#data +<!doctype html><image/> +#errors +(1,23): image-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <img> + +#data +<!doctype html>a<i>b<table>c<b>d</i>e</b>f +#errors +(1,28): foster-parenting-character +(1,31): foster-parenting-start-tag +(1,32): foster-parenting-character +(1,36): foster-parenting-end-tag +(1,36): adoption-agency-1.3 +(1,37): foster-parenting-character +(1,41): foster-parenting-end-tag +(1,42): foster-parenting-character +(1,42): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "a" +| <i> +| "bc" +| <b> +| "de" +| "f" +| <table> + +#data +<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f +#errors +(1,25): foster-parenting-start-tag +(1,26): foster-parenting-character +(1,29): foster-parenting-start-tag +(1,30): foster-parenting-character +(1,35): foster-parenting-start-tag +(1,36): foster-parenting-character +(1,39): foster-parenting-start-tag +(1,40): foster-parenting-character +(1,44): foster-parenting-end-tag +(1,44): adoption-agency-1.3 +(1,44): adoption-agency-1.3 +(1,45): foster-parenting-character +(1,49): foster-parenting-end-tag +(1,49): adoption-agency-1.3 +(1,49): adoption-agency-1.3 +(1,50): foster-parenting-character +(1,50): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <b> +| "b" +| <b> +| <div> +| <b> +| <i> +| "c" +| <a> +| "d" +| <a> +| "e" +| <a> +| "f" +| <table> + +#data +<!doctype html><i>a<b>b<div>c<a>d</i>e</b>f +#errors +(1,37): adoption-agency-1.3 +(1,37): adoption-agency-1.3 +(1,42): adoption-agency-1.3 +(1,42): adoption-agency-1.3 +(1,43): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <b> +| "b" +| <b> +| <div> +| <b> +| <i> +| "c" +| <a> +| "d" +| <a> +| "e" +| <a> +| "f" + +#data +<!doctype html><table><i>a<b>b<div>c</i> +#errors +(1,25): foster-parenting-start-tag +(1,26): foster-parenting-character +(1,29): foster-parenting-start-tag +(1,30): foster-parenting-character +(1,35): foster-parenting-start-tag +(1,36): foster-parenting-character +(1,40): foster-parenting-end-tag +(1,40): adoption-agency-1.3 +(1,40): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <b> +| "b" +| <b> +| <div> +| <i> +| "c" +| <table> + +#data +<!doctype html><table><i>a<b>b<div>c<a>d</i>e</b>f +#errors +(1,25): foster-parenting-start-tag +(1,26): foster-parenting-character +(1,29): foster-parenting-start-tag +(1,30): foster-parenting-character +(1,35): foster-parenting-start-tag +(1,36): foster-parenting-character +(1,39): foster-parenting-start-tag +(1,40): foster-parenting-character +(1,44): foster-parenting-end-tag +(1,44): adoption-agency-1.3 +(1,44): adoption-agency-1.3 +(1,45): foster-parenting-character +(1,49): foster-parenting-end-tag +(1,44): adoption-agency-1.3 +(1,44): adoption-agency-1.3 +(1,50): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <b> +| "b" +| <b> +| <div> +| <b> +| <i> +| "c" +| <a> +| "d" +| <a> +| "e" +| <a> +| "f" +| <table> + +#data +<!doctype html><table><i>a<div>b<tr>c<b>d</i>e +#errors +(1,25): foster-parenting-start-tag +(1,26): foster-parenting-character +(1,31): foster-parenting-start-tag +(1,32): foster-parenting-character +(1,37): foster-parenting-character +(1,40): foster-parenting-start-tag +(1,41): foster-parenting-character +(1,45): foster-parenting-end-tag +(1,45): adoption-agency-1.3 +(1,46): foster-parenting-character +(1,46): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <i> +| "a" +| <div> +| "b" +| <i> +| "c" +| <b> +| "d" +| <b> +| "e" +| <table> +| <tbody> +| <tr> + +#data +<!doctype html><table><td><table><i>a<div>b<b>c</i>d +#errors +(1,26): unexpected-cell-in-table-body +(1,36): foster-parenting-start-tag +(1,37): foster-parenting-character +(1,42): foster-parenting-start-tag +(1,43): foster-parenting-character +(1,46): foster-parenting-start-tag +(1,47): foster-parenting-character +(1,51): foster-parenting-end-tag +(1,51): adoption-agency-1.3 +(1,51): adoption-agency-1.3 +(1,52): foster-parenting-character +(1,52): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <i> +| "a" +| <div> +| <i> +| "b" +| <b> +| "c" +| <b> +| "d" +| <table> + +#data +<!doctype html><body><bgsound> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <bgsound> + +#data +<!doctype html><body><basefont> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <basefont> + +#data +<!doctype html><a><b></a><basefont> +#errors +(1,25): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <a> +| <b> +| <basefont> + +#data +<!doctype html><a><b></a><bgsound> +#errors +(1,25): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <a> +| <b> +| <bgsound> + +#data +<!doctype html><figcaption><article></figcaption>a +#errors +(1,49): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <figcaption> +| <article> +| "a" + +#data +<!doctype html><summary><article></summary>a +#errors +(1,43): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <summary> +| <article> +| "a" + +#data +<!doctype html><p><a><plaintext>b +#errors +(1,32): unexpected-end-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <a> +| <plaintext> +| <a> +| "b" + +#data +<!DOCTYPE html><div>a<a></div>b<p>c</p>d +#errors +(1,30): end-tag-too-early +(1,40): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| "a" +| <a> +| <a> +| "b" +| <p> +| "c" +| "d" diff --git a/test/data/tree-construction/tests2.dat b/test/data/tree-construction/tests2.dat index eb9b444..0ad7708 100644 --- a/test/data/tree-construction/tests2.dat +++ b/test/data/tree-construction/tests2.dat @@ -11,8 +11,8 @@ #data <textarea>test</div>test #errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 24 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,24): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -23,9 +23,9 @@ Line: 1 Col: 24 Expected closing tag. Unexpected end of file. #data <table><td> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 11 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,11): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -38,8 +38,8 @@ Line: 1 Col: 11 Expected closing tag. Unexpected end of file. #data <table><td>test</tbody></table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body #document | <html> | <head> @@ -53,8 +53,8 @@ Line: 1 Col: 11 Unexpected table cell start tag (td) in the table body phase. #data <frame>test #errors -Line: 1 Col: 7 Unexpected start tag (frame). Expected DOCTYPE. -Line: 1 Col: 7 Unexpected start tag frame. Ignored. +(1,7): expected-doctype-but-got-start-tag +(1,7): unexpected-start-tag-ignored #document | <html> | <head> @@ -64,8 +64,11 @@ Line: 1 Col: 7 Unexpected start tag frame. Ignored. #data <!DOCTYPE html><frameset>test #errors -Line: 1 Col: 29 Unepxected characters in the frameset phase. Characters ignored. -Line: 1 Col: 29 Expected closing tag. Unexpected end of file. +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): unexpected-char-in-frameset +(1,29): eof-in-frameset #document | <!DOCTYPE html> | <html> @@ -75,8 +78,8 @@ Line: 1 Col: 29 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><frameset><!DOCTYPE html> #errors -Line: 1 Col: 40 Unexpected DOCTYPE. Ignored. -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. +(1,40): unexpected-doctype +(1,40): eof-in-frameset #document | <!DOCTYPE html> | <html> @@ -86,8 +89,8 @@ Line: 1 Col: 40 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><font><p><b>test</font> #errors -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agency algorithm. +(1,38): adoption-agency-1.3 +(1,38): adoption-agency-1.3 #document | <!DOCTYPE html> | <html> @@ -102,7 +105,7 @@ Line: 1 Col: 38 End tag (font) violates step 1, paragraph 3 of the adoption agen #data <!DOCTYPE html><dt><div><dd> #errors -Line: 1 Col: 28 Missing end tag (div, dt). +(1,28): end-tag-too-early #document | <!DOCTYPE html> | <html> @@ -115,8 +118,8 @@ Line: 1 Col: 28 Missing end tag (div, dt). #data <script></x #errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. -Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). +(1,8): expected-doctype-but-got-start-tag +(1,11): expected-named-closing-tag-but-got-eof #document | <html> | <head> @@ -127,9 +130,13 @@ Line: 1 Col: 11 Unexpected end of file. Expected end tag (script). #data <table><plaintext><td> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 18 Unexpected start tag (plaintext) in table context caused voodoo mode. -Line: 1 Col: 22 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,18): unexpected-start-tag-implies-table-voodoo +(1,22): foster-parenting-character-in-table +(1,22): foster-parenting-character-in-table +(1,22): foster-parenting-character-in-table +(1,22): foster-parenting-character-in-table +(1,22): eof-in-table #document | <html> | <head> @@ -141,8 +148,8 @@ Line: 1 Col: 22 Unexpected end of file. Expected table content. #data <plaintext></plaintext> #errors -Line: 1 Col: 11 Unexpected start tag (plaintext). Expected DOCTYPE. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. +(1,11): expected-doctype-but-got-start-tag +(1,23): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -153,8 +160,11 @@ Line: 1 Col: 23 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><table><tr>TEST #errors -Line: 1 Col: 30 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected end of file. Expected table content. +(1,30): foster-parenting-character-in-table +(1,30): foster-parenting-character-in-table +(1,30): foster-parenting-character-in-table +(1,30): foster-parenting-character-in-table +(1,30): eof-in-table #document | <!DOCTYPE html> | <html> @@ -168,8 +178,8 @@ Line: 1 Col: 30 Unexpected end of file. Expected table content. #data <!DOCTYPE html><body t1=1><body t2=2><body t3=3 t4=4> #errors -Line: 1 Col: 37 Unexpected start tag (body). -Line: 1 Col: 53 Unexpected start tag (body). +(1,37): unexpected-start-tag +(1,53): unexpected-start-tag #document | <!DOCTYPE html> | <html> @@ -183,10 +193,8 @@ Line: 1 Col: 53 Unexpected start tag (body). #data </b test #errors -Line: 1 Col: 8 Unexpected end of file in attribute name. -Line: 1 Col: 8 End tag contains unexpected attributes. -Line: 1 Col: 8 Unexpected end tag (b). Expected DOCTYPE. -Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. +(1,8): eof-in-attribute-name +(1,8): expected-doctype-but-got-eof #document | <html> | <head> @@ -195,9 +203,10 @@ Line: 1 Col: 8 Unexpected end tag (b) after the (implied) root element. #data <!DOCTYPE html></b test<b &=&>X #errors -Line: 1 Col: 32 Named entity didn't end with ';'. -Line: 1 Col: 33 End tag contains unexpected attributes. -Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. +(1,24): invalid-character-in-attribute-name +(1,32): named-entity-without-semicolon +(1,33): attributes-in-end-tag +(1,33): unexpected-end-tag-before-html #document | <!DOCTYPE html> | <html> @@ -208,21 +217,21 @@ Line: 1 Col: 33 Unexpected end tag (b) after the (implied) root element. #data <!doctypehtml><scrIPt type=text/x-foobar;baz>X</SCRipt #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 54 Unexpected end of file in the tag name. +(1,9): need-space-after-doctype +(1,54): expected-named-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> | <head> | <script> | type="text/x-foobar;baz" -| "X" +| "X</SCRipt" | <body> #data & #errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,1): expected-doctype-but-got-chars #document | <html> | <head> @@ -232,8 +241,8 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data &# #errors -Line: 1 Col: 1 Numeric entity expected. Got end of file instead. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,2): expected-numeric-entity +(1,2): expected-doctype-but-got-chars #document | <html> | <head> @@ -243,8 +252,8 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data &#X #errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. +(1,3): expected-numeric-entity +(1,3): expected-doctype-but-got-chars #document | <html> | <head> @@ -254,8 +263,8 @@ Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. #data &#x #errors -Line: 1 Col: 3 Numeric entity expected but none found. -Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. +(1,3): expected-numeric-entity +(1,3): expected-doctype-but-got-chars #document | <html> | <head> @@ -265,8 +274,8 @@ Line: 1 Col: 3 Unexpected non-space characters. Expected DOCTYPE. #data - #errors -Line: 1 Col: 4 Numeric entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. +(1,4): numeric-entity-without-semicolon +(1,4): expected-doctype-but-got-chars #document | <html> | <head> @@ -276,8 +285,7 @@ Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #data &x-test #errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,2): expected-doctype-but-got-chars #document | <html> | <head> @@ -287,7 +295,7 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data <!doctypehtml><p><li> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +(1,9): need-space-after-doctype #document | <!DOCTYPE html> | <html> @@ -299,7 +307,7 @@ Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #data <!doctypehtml><p><dt> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +(1,9): need-space-after-doctype #document | <!DOCTYPE html> | <html> @@ -311,7 +319,7 @@ Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #data <!doctypehtml><p><dd> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. +(1,9): need-space-after-doctype #document | <!DOCTYPE html> | <html> @@ -323,8 +331,8 @@ Line: 1 Col: 9 No space after literal string 'DOCTYPE'. #data <!doctypehtml><p><form> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. +(1,9): need-space-after-doctype +(1,23): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -334,27 +342,6 @@ Line: 1 Col: 23 Expected closing tag. Unexpected end of file. | <form> #data -<!DOCTYPE html><p><b><i><u></p> <p>X -#errors -Line: 1 Col: 31 Unexpected end tag (p). Ignored. -Line: 1 Col: 36 Expected closing tag. Unexpected end of file. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " " -| <p> -| "X" - -#data <!DOCTYPE html><p></P>X #errors #document @@ -368,8 +355,8 @@ Line: 1 Col: 36 Expected closing tag. Unexpected end of file. #data & #errors -Line: 1 Col: 4 Named entity didn't end with ';'. -Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. +(1,4): named-entity-without-semicolon +(1,4): expected-doctype-but-got-chars #document | <html> | <head> @@ -379,8 +366,8 @@ Line: 1 Col: 4 Unexpected non-space characters. Expected DOCTYPE. #data &AMp; #errors -Line: 1 Col: 1 Named entity expected. Got none. -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. +(1,3): expected-named-entity +(1,3): expected-doctype-but-got-chars #document | <html> | <head> @@ -390,7 +377,7 @@ Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. #data <!DOCTYPE html><html><head></head><body><thisISasillyTESTelementNameToMakeSureCrazyTagNamesArePARSEDcorrectLY> #errors -Line: 1 Col: 110 Expected closing tag. Unexpected end of file. +(1,110): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -401,7 +388,7 @@ Line: 1 Col: 110 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html>X</body>X #errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. +(1,24): unexpected-char-after-body #document | <!DOCTYPE html> | <html> @@ -412,7 +399,7 @@ Line: 1 Col: 24 Unexpected non-space characters in the after body phase. #data <!DOCTYPE html><!-- X #errors -Line: 1 Col: 21 Unexpected end of file in comment. +(1,21): eof-in-comment #document | <!DOCTYPE html> | <!-- X --> @@ -423,8 +410,8 @@ Line: 1 Col: 21 Unexpected end of file in comment. #data <!DOCTYPE html><table><caption>test TEST</caption><td>test #errors -Line: 1 Col: 54 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. +(1,54): unexpected-cell-in-table-body +(1,58): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -441,7 +428,7 @@ Line: 1 Col: 58 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><select><option><optgroup> #errors -Line: 1 Col: 41 Expected closing tag. Unexpected end of file. +(1,41): eof-in-select #document | <!DOCTYPE html> | <html> @@ -454,8 +441,8 @@ Line: 1 Col: 41 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><select><optgroup><option></optgroup><option><select><option> #errors -Line: 1 Col: 68 Unexpected select start tag in the select phase treated as select end tag. -Line: 1 Col: 76 Expected closing tag. Unexpected end of file. +(1,68): unexpected-select-in-select +(1,76): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -470,7 +457,7 @@ Line: 1 Col: 76 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><select><optgroup><option><optgroup> #errors -Line: 1 Col: 51 Expected closing tag. Unexpected end of file. +(1,51): eof-in-select #document | <!DOCTYPE html> | <html> @@ -482,6 +469,19 @@ Line: 1 Col: 51 Expected closing tag. Unexpected end of file. | <optgroup> #data +<!DOCTYPE html><datalist><option>foo</datalist>bar +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <datalist> +| <option> +| "foo" +| "bar" + +#data <!DOCTYPE html><font><input><input></font> #errors #document @@ -506,7 +506,7 @@ Line: 1 Col: 51 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><!-- XXX - XXX #errors -Line: 1 Col: 29 Unexpected end of file in comment (-) +(1,29): eof-in-comment #document | <!DOCTYPE html> | <!-- XXX - XXX --> @@ -527,27 +527,26 @@ Line: 1 Col: 29 Unexpected end of file in comment (-) #data <isindex test=x name=x> #errors -Line: 1 Col: 23 Unexpected start tag (isindex). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected start tag isindex. Don't use it! +(1,23): expected-doctype-but-got-start-tag +(1,23): deprecated-tag #document | <html> | <head> | <body> | <form> | <hr> -| <p> -| <label> -| "This is a searchable index. Insert your search keywords here: " -| <input> -| name="isindex" -| test="x" +| <label> +| "This is a searchable index. Enter search keywords: " +| <input> +| name="isindex" +| test="x" | <hr> #data test test #errors -Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. +(2,4): expected-doctype-but-got-chars #document | <html> | <head> @@ -556,29 +555,6 @@ Line: 2 Col: 4 Unexpected non-space characters. Expected DOCTYPE. test" #data -<p><b><i><u></p> -<p>X -#errors -Line: 1 Col: 3 Unexpected start tag (p). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag (p). Ignored. -Line: 2 Col: 4 Expected closing tag. Unexpected end of file. -#document -| <html> -| <head> -| <body> -| <p> -| <b> -| <i> -| <u> -| <b> -| <i> -| <u> -| " -" -| <p> -| "X" - -#data <!DOCTYPE html><body><title>test</body></title> #errors #document @@ -623,7 +599,7 @@ x { content:"</style" } " #errors -Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. +(2,1): expected-doctype-but-got-eof #document | <html> | <head> @@ -658,7 +634,7 @@ Line: 2 Col: 1 Unexpected End of file. Expected DOCTYPE. #data <!DOCTYPE html><html><body><html id=x> #errors -Line: 1 Col: 38 html needs to be the first start tag. +(1,38): non-html-root #document | <!DOCTYPE html> | <html> @@ -669,8 +645,7 @@ Line: 1 Col: 38 html needs to be the first start tag. #data <!DOCTYPE html>X</body><html id="x"> #errors -Line: 1 Col: 36 Unexpected start tag token (html) in the after body phase. -Line: 1 Col: 36 html needs to be the first start tag. +(1,36): non-html-root #document | <!DOCTYPE html> | <html> @@ -682,7 +657,7 @@ Line: 1 Col: 36 html needs to be the first start tag. #data <!DOCTYPE html><head><html id=x> #errors -Line: 1 Col: 32 html needs to be the first start tag. +(1,32): non-html-root #document | <!DOCTYPE html> | <html> @@ -693,7 +668,7 @@ Line: 1 Col: 32 html needs to be the first start tag. #data <!DOCTYPE html>X</html>X #errors -Line: 1 Col: 24 Unexpected non-space characters in the after body phase. +(1,24): expected-eof-but-got-char #document | <!DOCTYPE html> | <html> @@ -714,7 +689,7 @@ Line: 1 Col: 24 Unexpected non-space characters in the after body phase. #data <!DOCTYPE html>X</html><p>X #errors -Line: 1 Col: 26 Unexpected start tag (). +(1,26): expected-eof-but-got-start-tag #document | <!DOCTYPE html> | <html> @@ -727,9 +702,9 @@ Line: 1 Col: 26 Unexpected start tag (). #data <!DOCTYPE html>X<p/x/y/z> #errors -Line: 1 Col: 19 Expected a > after the /. -Line: 1 Col: 21 Solidus (/) incorrectly placed in tag. -Line: 1 Col: 23 Solidus (/) incorrectly placed in tag. +(1,19): unexpected-character-after-solidus-in-tag +(1,21): unexpected-character-after-solidus-in-tag +(1,23): unexpected-character-after-solidus-in-tag #document | <!DOCTYPE html> | <html> @@ -744,7 +719,7 @@ Line: 1 Col: 23 Solidus (/) incorrectly placed in tag. #data <!DOCTYPE html><!--x-- #errors -Line: 1 Col: 22 Unexpected end of file in comment (--). +(1,22): eof-in-comment-double-dash #document | <!DOCTYPE html> | <!-- x --> @@ -755,7 +730,7 @@ Line: 1 Col: 22 Unexpected end of file in comment (--). #data <!DOCTYPE html><table><tr><td></p></table> #errors -Line: 1 Col: 34 Unexpected end tag (p). Ignored. +(1,34): unexpected-end-tag #document | <!DOCTYPE html> | <html> @@ -770,9 +745,9 @@ Line: 1 Col: 34 Unexpected end tag (p). Ignored. #data <!DOCTYPE <!DOCTYPE HTML>><!--<!--x-->--> #errors -Line: 1 Col: 20 Expected space or '>'. Got '' -Line: 1 Col: 25 Erroneous DOCTYPE. -Line: 1 Col: 35 Unexpected character in comment found. +(1,20): expected-space-or-right-bracket-in-doctype +(1,25): unknown-doctype +(1,35): unexpected-char-in-comment #document | <!DOCTYPE <!doctype> | <html> @@ -781,3 +756,15 @@ Line: 1 Col: 35 Unexpected character in comment found. | ">" | <!-- <!--x --> | "-->" + +#data +<!doctype html><div><form></form><div></div></div> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <form> +| <div> diff --git a/test/data/tree-construction/tests20.dat b/test/data/tree-construction/tests20.dat new file mode 100644 index 0000000..52c5acd --- /dev/null +++ b/test/data/tree-construction/tests20.dat @@ -0,0 +1,516 @@ +#data +<!doctype html><p><button><button> +#errors +(1,34): unexpected-start-tag-implies-end-tag +(1,34): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <button> + +#data +<!doctype html><p><button><address> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <address> + +#data +<!doctype html><p><button><blockquote> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <blockquote> + +#data +<!doctype html><p><button><menu> +#errors +(1,32): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <menu> + +#data +<!doctype html><p><button><p> +#errors +(1,29): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <p> + +#data +<!doctype html><p><button><ul> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <ul> + +#data +<!doctype html><p><button><h1> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <h1> + +#data +<!doctype html><p><button><h6> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <h6> + +#data +<!doctype html><p><button><listing> +#errors +(1,35): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <listing> + +#data +<!doctype html><p><button><pre> +#errors +(1,31): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <pre> + +#data +<!doctype html><p><button><form> +#errors +(1,32): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <form> + +#data +<!doctype html><p><button><li> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <li> + +#data +<!doctype html><p><button><dd> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <dd> + +#data +<!doctype html><p><button><dt> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <dt> + +#data +<!doctype html><p><button><plaintext> +#errors +(1,37): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <plaintext> + +#data +<!doctype html><p><button><table> +#errors +(1,33): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <table> + +#data +<!doctype html><p><button><hr> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <hr> + +#data +<!doctype html><p><button><xmp> +#errors +(1,31): expected-named-closing-tag-but-got-eof +(1,31): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <xmp> + +#data +<!doctype html><p><button></p> +#errors +(1,30): unexpected-end-tag +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <button> +| <p> + +#data +<!doctype html><address><button></address>a +#errors +(1,42): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <address> +| <button> +| "a" + +#data +<!doctype html><address><button></address>a +#errors +(1,42): end-tag-too-early +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <address> +| <button> +| "a" + +#data +<p><table></p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,14): unexpected-end-tag-implies-table-voodoo +(1,14): unexpected-end-tag +(1,14): eof-in-table +#document +| <html> +| <head> +| <body> +| <p> +| <p> +| <table> + +#data +<!doctype html><svg> +#errors +(1,20): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> + +#data +<!doctype html><p><figcaption> +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <figcaption> + +#data +<!doctype html><p><summary> +#errors +(1,27): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <summary> + +#data +<!doctype html><form><table><form> +#errors +(1,34): unexpected-form-in-table +(1,34): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <form> +| <table> + +#data +<!doctype html><table><form><form> +#errors +(1,28): unexpected-form-in-table +(1,34): unexpected-form-in-table +(1,34): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <form> + +#data +<!doctype html><table><form></table><form> +#errors +(1,28): unexpected-form-in-table +(1,42): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <form> + +#data +<!doctype html><svg><foreignObject><p> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg foreignObject> +| <p> + +#data +<!doctype html><svg><title>abc +#errors +(1,30): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg title> +| "abc" + +#data +<option><span><option> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,22): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <option> +| <span> +| <option> + +#data +<option><option> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <option> +| <option> + +#data +<math><annotation-xml><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): unexpected-html-element-in-foreign-content +(1,27): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <div> + +#data +<math><annotation-xml encoding="application/svg+xml"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,58): unexpected-html-element-in-foreign-content +(1,58): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="application/svg+xml" +| <div> + +#data +<math><annotation-xml encoding="application/xhtml+xml"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,60): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="application/xhtml+xml" +| <div> + +#data +<math><annotation-xml encoding="aPPlication/xhtmL+xMl"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,60): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="aPPlication/xhtmL+xMl" +| <div> + +#data +<math><annotation-xml encoding="text/html"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,48): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="text/html" +| <div> + +#data +<math><annotation-xml encoding="Text/htmL"><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,48): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding="Text/htmL" +| <div> + +#data +<math><annotation-xml encoding=" text/html "><div> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,50): unexpected-html-element-in-foreign-content +(1,50): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| encoding=" text/html " +| <div> diff --git a/test/data/tree-construction/tests21.dat b/test/data/tree-construction/tests21.dat new file mode 100644 index 0000000..d384a55 --- /dev/null +++ b/test/data/tree-construction/tests21.dat @@ -0,0 +1,305 @@ +#data +<svg><![CDATA[foo]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "foo" + +#data +<math><![CDATA[foo]]> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <math math> +| "foo" + +#data +<div><![CDATA[foo]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,7): expected-dashes-or-doctype +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <!-- [CDATA[foo]] --> + +#data +<svg><![CDATA[foo +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "foo" + +#data +<svg><![CDATA[foo +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "foo" + +#data +<svg><![CDATA[ +#errors +(1,5): expected-doctype-but-got-start-tag +(1,14): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> + +#data +<svg><![CDATA[]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> + +#data +<svg><![CDATA[]] >]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]] >" + +#data +<svg><![CDATA[]] >]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]] >" + +#data +<svg><![CDATA[]] +#errors +(1,5): expected-doctype-but-got-start-tag +(1,16): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]]" + +#data +<svg><![CDATA[] +#errors +(1,5): expected-doctype-but-got-start-tag +(1,15): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]" + +#data +<svg><![CDATA[]>a +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "]>a" + +#data +<!DOCTYPE html><svg><![CDATA[foo]]]> +#errors +(1,36): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| "foo]" + +#data +<!DOCTYPE html><svg><![CDATA[foo]]]]> +#errors +(1,37): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| "foo]]" + +#data +<!DOCTYPE html><svg><![CDATA[foo]]]]]> +#errors +(1,38): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| "foo]]]" + +#data +<svg><foreignObject><div><![CDATA[foo]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,27): expected-dashes-or-doctype +(1,40): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg foreignObject> +| <div> +| <!-- [CDATA[foo]] --> + +#data +<svg><![CDATA[<svg>]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,22): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>" + +#data +<svg><![CDATA[</svg>a]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,24): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "</svg>a" + +#data +<svg><![CDATA[<svg>a +#errors +(1,5): expected-doctype-but-got-start-tag +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>a" + +#data +<svg><![CDATA[</svg>a +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "</svg>a" + +#data +<svg><![CDATA[<svg>]]><path> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,28): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>" +| <svg path> + +#data +<svg><![CDATA[<svg>]]></path> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,29): unexpected-end-tag +(1,29): unexpected-end-tag +(1,29): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>" + +#data +<svg><![CDATA[<svg>]]><!--path--> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,33): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>" +| <!-- path --> + +#data +<svg><![CDATA[<svg>]]>path +#errors +(1,5): expected-doctype-but-got-start-tag +(1,26): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<svg>path" + +#data +<svg><![CDATA[<!--svg-->]]> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,27): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| "<!--svg-->" diff --git a/test/data/tree-construction/tests22.dat b/test/data/tree-construction/tests22.dat new file mode 100644 index 0000000..31e6d9e --- /dev/null +++ b/test/data/tree-construction/tests22.dat @@ -0,0 +1,190 @@ +#data +<a><b><big><em><strong><div>X</a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,33): adoption-agency-1.3 +(1,33): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <big> +| <em> +| <strong> +| <big> +| <em> +| <strong> +| <div> +| <a> +| "X" + +#data +<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8>A</a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): adoption-agency-1.3 +(1,91): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <b> +| <div> +| id="1" +| <a> +| <div> +| id="2" +| <a> +| <div> +| id="3" +| <a> +| <div> +| id="4" +| <a> +| <div> +| id="5" +| <a> +| <div> +| id="6" +| <a> +| <div> +| id="7" +| <a> +| <div> +| id="8" +| <a> +| "A" + +#data +<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9>A</a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): adoption-agency-1.3 +(1,101): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <b> +| <div> +| id="1" +| <a> +| <div> +| id="2" +| <a> +| <div> +| id="3" +| <a> +| <div> +| id="4" +| <a> +| <div> +| id="5" +| <a> +| <div> +| id="6" +| <a> +| <div> +| id="7" +| <a> +| <div> +| id="8" +| <a> +| <div> +| id="9" +| "A" + +#data +<a><b><div id=1><div id=2><div id=3><div id=4><div id=5><div id=6><div id=7><div id=8><div id=9><div id=10>A</a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): adoption-agency-1.3 +(1,112): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <b> +| <b> +| <div> +| id="1" +| <a> +| <div> +| id="2" +| <a> +| <div> +| id="3" +| <a> +| <div> +| id="4" +| <a> +| <div> +| id="5" +| <a> +| <div> +| id="6" +| <a> +| <div> +| id="7" +| <a> +| <div> +| id="8" +| <a> +| <div> +| id="9" +| <div> +| id="10" +| "A" + +#data +<cite><b><cite><i><cite><i><cite><i><div>X</b>TEST +#errors +(1,6): expected-doctype-but-got-start-tag +(1,46): adoption-agency-1.3 +(1,50): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <cite> +| <b> +| <cite> +| <i> +| <cite> +| <i> +| <cite> +| <i> +| <i> +| <i> +| <div> +| <b> +| "X" +| "TEST" diff --git a/test/data/tree-construction/tests23.dat b/test/data/tree-construction/tests23.dat new file mode 100644 index 0000000..49e4a4a --- /dev/null +++ b/test/data/tree-construction/tests23.dat @@ -0,0 +1,168 @@ +#data +<p><font size=4><font color=red><font size=4><font size=4><font size=4><font size=4><font size=4><font color=red><p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,116): unexpected-end-tag +(1,117): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| size="4" +| <font> +| color="red" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| color="red" +| <p> +| <font> +| color="red" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| color="red" +| "X" + +#data +<p><font size=4><font size=4><font size=4><font size=4><p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,58): unexpected-end-tag +(1,59): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| "X" + +#data +<p><font size=4><font size=4><font size=4><font size="5"><font size=4><p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,73): unexpected-end-tag +(1,74): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="5" +| <font> +| size="4" +| <p> +| <font> +| size="4" +| <font> +| size="4" +| <font> +| size="5" +| <font> +| size="4" +| "X" + +#data +<p><font size=4 id=a><font size=4 id=b><font size=4><font size=4><p>X +#errors +(1,3): expected-doctype-but-got-start-tag +(1,68): unexpected-end-tag +(1,69): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <font> +| id="a" +| size="4" +| <font> +| id="b" +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| <p> +| <font> +| id="a" +| size="4" +| <font> +| id="b" +| size="4" +| <font> +| size="4" +| <font> +| size="4" +| "X" + +#data +<p><b id=a><b id=a><b id=a><b><object><b id=a><b id=a>X</object><p>Y +#errors +(1,3): expected-doctype-but-got-start-tag +(1,64): end-tag-too-early +(1,67): unexpected-end-tag +(1,68): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <b> +| id="a" +| <b> +| id="a" +| <b> +| id="a" +| <b> +| <object> +| <b> +| id="a" +| <b> +| id="a" +| "X" +| <p> +| <b> +| id="a" +| <b> +| id="a" +| <b> +| id="a" +| <b> +| "Y" diff --git a/test/data/tree-construction/tests24.dat b/test/data/tree-construction/tests24.dat new file mode 100644 index 0000000..f6dc7eb --- /dev/null +++ b/test/data/tree-construction/tests24.dat @@ -0,0 +1,79 @@ +#data +<!DOCTYPE html>≂̸ +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "抶" + +#data +<!DOCTYPE html>≂̸A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "抶A" + +#data +<!DOCTYPE html>   +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "" + +#data +<!DOCTYPE html>  A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "A" + +#data +<!DOCTYPE html>⊂⃒ +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "" + +#data +<!DOCTYPE html>⊂⃒A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "A" + +#data +<!DOCTYPE html>𝔾 +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "" + +#data +<!DOCTYPE html>𝔾A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "適" diff --git a/test/data/tree-construction/tests25.dat b/test/data/tree-construction/tests25.dat new file mode 100644 index 0000000..cbc0051 --- /dev/null +++ b/test/data/tree-construction/tests25.dat @@ -0,0 +1,220 @@ +#data +<!DOCTYPE html><body><foo>A +#errors +(1,27): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <foo> +| "A" + +#data +<!DOCTYPE html><body><area>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <area> +| "A" + +#data +<!DOCTYPE html><body><base>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <base> +| "A" + +#data +<!DOCTYPE html><body><basefont>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <basefont> +| "A" + +#data +<!DOCTYPE html><body><bgsound>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <bgsound> +| "A" + +#data +<!DOCTYPE html><body><br>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <br> +| "A" + +#data +<!DOCTYPE html><body><col>A +#errors +(1,26): unexpected-start-tag-ignored +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "A" + +#data +<!DOCTYPE html><body><command>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <command> +| "A" + +#data +<!DOCTYPE html><body><embed>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <embed> +| "A" + +#data +<!DOCTYPE html><body><frame>A +#errors +(1,28): unexpected-start-tag-ignored +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| "A" + +#data +<!DOCTYPE html><body><hr>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <hr> +| "A" + +#data +<!DOCTYPE html><body><img>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <img> +| "A" + +#data +<!DOCTYPE html><body><input>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <input> +| "A" + +#data +<!DOCTYPE html><body><keygen>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <keygen> +| "A" + +#data +<!DOCTYPE html><body><link>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <link> +| "A" + +#data +<!DOCTYPE html><body><meta>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <meta> +| "A" + +#data +<!DOCTYPE html><body><param>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <param> +| "A" + +#data +<!DOCTYPE html><body><source>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <source> +| "A" + +#data +<!DOCTYPE html><body><track>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <track> +| "A" + +#data +<!DOCTYPE html><body><wbr>A +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <wbr> +| "A" diff --git a/test/data/tree-construction/tests26.dat b/test/data/tree-construction/tests26.dat new file mode 100644 index 0000000..8964624 --- /dev/null +++ b/test/data/tree-construction/tests26.dat @@ -0,0 +1,388 @@ +#data +<!DOCTYPE html><body><a href='#1'><nobr>1<nobr></a><br><a href='#2'><nobr>2<nobr></a><br><a href='#3'><nobr>3<nobr></a> +#errors +(1,47): unexpected-start-tag-implies-end-tag +(1,51): adoption-agency-1.3 +(1,74): unexpected-start-tag-implies-end-tag +(1,74): adoption-agency-1.3 +(1,81): unexpected-start-tag-implies-end-tag +(1,85): adoption-agency-1.3 +(1,108): unexpected-start-tag-implies-end-tag +(1,108): adoption-agency-1.3 +(1,115): unexpected-start-tag-implies-end-tag +(1,119): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <a> +| href="#1" +| <nobr> +| "1" +| <nobr> +| <nobr> +| <br> +| <a> +| href="#2" +| <a> +| href="#2" +| <nobr> +| "2" +| <nobr> +| <nobr> +| <br> +| <a> +| href="#3" +| <a> +| href="#3" +| <nobr> +| "3" +| <nobr> + +#data +<!DOCTYPE html><body><b><nobr>1<nobr></b><i><nobr>2<nobr></i>3 +#errors +(1,37): unexpected-start-tag-implies-end-tag +(1,41): adoption-agency-1.3 +(1,50): unexpected-start-tag-implies-end-tag +(1,50): adoption-agency-1.3 +(1,57): unexpected-start-tag-implies-end-tag +(1,61): adoption-agency-1.3 +(1,62): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <nobr> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" + +#data +<!DOCTYPE html><body><b><nobr>1<table><nobr></b><i><nobr>2<nobr></i>3 +#errors +(1,44): foster-parenting-start-tag +(1,48): foster-parenting-end-tag +(1,48): adoption-agency-1.3 +(1,51): foster-parenting-start-tag +(1,57): foster-parenting-start-tag +(1,57): nobr-already-in-scope +(1,57): adoption-agency-1.2 +(1,58): foster-parenting-character +(1,64): foster-parenting-start-tag +(1,64): nobr-already-in-scope +(1,68): foster-parenting-end-tag +(1,68): adoption-agency-1.2 +(1,69): foster-parenting-character +(1,69): eof-in-table +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" +| <table> + +#data +<!DOCTYPE html><body><b><nobr>1<table><tr><td><nobr></b><i><nobr>2<nobr></i>3 +#errors +(1,56): unexpected-end-tag +(1,65): unexpected-start-tag-implies-end-tag +(1,65): adoption-agency-1.3 +(1,72): unexpected-start-tag-implies-end-tag +(1,76): adoption-agency-1.3 +(1,77): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <table> +| <tbody> +| <tr> +| <td> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" + +#data +<!DOCTYPE html><body><b><nobr>1<div><nobr></b><i><nobr>2<nobr></i>3 +#errors +(1,42): unexpected-start-tag-implies-end-tag +(1,42): adoption-agency-1.3 +(1,46): adoption-agency-1.3 +(1,46): adoption-agency-1.3 +(1,55): unexpected-start-tag-implies-end-tag +(1,55): adoption-agency-1.3 +(1,62): unexpected-start-tag-implies-end-tag +(1,66): adoption-agency-1.3 +(1,67): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <div> +| <b> +| <nobr> +| <nobr> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" + +#data +<!DOCTYPE html><body><b><nobr>1<nobr></b><div><i><nobr>2<nobr></i>3 +#errors +(1,37): unexpected-start-tag-implies-end-tag +(1,41): adoption-agency-1.3 +(1,55): unexpected-start-tag-implies-end-tag +(1,55): adoption-agency-1.3 +(1,62): unexpected-start-tag-implies-end-tag +(1,66): adoption-agency-1.3 +(1,67): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <nobr> +| <div> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" +| <nobr> +| <nobr> +| "3" + +#data +<!DOCTYPE html><body><b><nobr>1<nobr><ins></b><i><nobr> +#errors +(1,37): unexpected-start-tag-implies-end-tag +(1,46): adoption-agency-1.3 +(1,55): unexpected-start-tag-implies-end-tag +(1,55): adoption-agency-1.3 +(1,55): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <nobr> +| <ins> +| <nobr> +| <i> +| <i> +| <nobr> + +#data +<!DOCTYPE html><body><b><nobr>1<ins><nobr></b><i>2 +#errors +(1,42): unexpected-start-tag-implies-end-tag +(1,42): adoption-agency-1.3 +(1,46): adoption-agency-1.3 +(1,50): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| <nobr> +| "1" +| <ins> +| <nobr> +| <nobr> +| <i> +| "2" + +#data +<!DOCTYPE html><body><b>1<nobr></b><i><nobr>2</i> +#errors +(1,35): adoption-agency-1.3 +(1,44): unexpected-start-tag-implies-end-tag +(1,44): adoption-agency-1.3 +(1,49): adoption-agency-1.3 +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <b> +| "1" +| <nobr> +| <nobr> +| <i> +| <i> +| <nobr> +| "2" + +#data +<p><code x</code></p> + +#errors +(1,3): expected-doctype-but-got-start-tag +(1,11): invalid-character-in-attribute-name +(1,12): unexpected-character-after-solidus-in-tag +(1,21): unexpected-end-tag +(2,0): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <p> +| <code> +| code="" +| x<="" +| <code> +| code="" +| x<="" +| " +" + +#data +<!DOCTYPE html><svg><foreignObject><p><i></p>a +#errors +(1,45): unexpected-end-tag +(1,46): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <svg svg> +| <svg foreignObject> +| <p> +| <i> +| <i> +| "a" + +#data +<!DOCTYPE html><table><tr><td><svg><foreignObject><p><i></p>a +#errors +(1,60): unexpected-end-tag +(1,61): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <svg svg> +| <svg foreignObject> +| <p> +| <i> +| <i> +| "a" + +#data +<!DOCTYPE html><math><mtext><p><i></p>a +#errors +(1,38): unexpected-end-tag +(1,39): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mtext> +| <p> +| <i> +| <i> +| "a" + +#data +<!DOCTYPE html><table><tr><td><math><mtext><p><i></p>a +#errors +(1,53): unexpected-end-tag +(1,54): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| <math math> +| <math mtext> +| <p> +| <i> +| <i> +| "a" + +#data +<!DOCTYPE html><body><div><!/div>a +#errors +(1,28): expected-dashes-or-doctype +(1,34): expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <div> +| <!-- /div --> +| "a" + +#data +<button><p><button> +#errors +Line 1 Col 8 Unexpected start tag (button). Expected DOCTYPE. +Line 1 Col 19 Unexpected start tag (button) implies end tag (button). +Line 1 Col 19 Expected closing tag. Unexpected end of file. +#document +| <html> +| <head> +| <body> +| <button> +| <p> +| <button> diff --git a/test/data/tree-construction/tests3.dat b/test/data/tree-construction/tests3.dat index a958293..423e2b3 100644 --- a/test/data/tree-construction/tests3.dat +++ b/test/data/tree-construction/tests3.dat @@ -1,8 +1,8 @@ #data <head></head><style></style> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved. +(1,6): expected-doctype-but-got-start-tag +(1,20): unexpected-start-tag-out-of-my-head #document | <html> | <head> @@ -12,8 +12,8 @@ Line: 1 Col: 20 Unexpected start tag (style) that can be in head. Moved. #data <head></head><script></script> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. +(1,6): expected-doctype-but-got-start-tag +(1,21): unexpected-start-tag-out-of-my-head #document | <html> | <head> @@ -23,8 +23,9 @@ Line: 1 Col: 21 Unexpected start tag (script) that can be in head. Moved. #data <head></head><!-- --><style></style><!-- --><script></script> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. -Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. +(1,6): expected-doctype-but-got-start-tag +(1,28): unexpected-start-tag-out-of-my-head +(1,52): unexpected-start-tag-out-of-my-head #document | <html> | <head> @@ -37,7 +38,7 @@ Line: 1 Col: 28 Unexpected start tag (style) that can be in head. Moved. #data <head></head><!-- -->x<style></style><!-- --><script></script> #errors -Line: 1 Col: 6 Unexpected start tag (head). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -131,7 +132,7 @@ y" <!DOCTYPE html><html><head></head><body><pre>x<div> y</pre></body></html> #errors -Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag. +(2,7): end-tag-too-early #document | <!DOCTYPE html> | <html> @@ -144,9 +145,21 @@ Line: 2 Col: 7 End tag (pre) seen too early. Expected other end tag. y" #data +<!DOCTYPE html><pre>

A</pre> +#errors +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <pre> +| " +A" + +#data <!DOCTYPE html><HTML><META><HEAD></HEAD></HTML> #errors -Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. +(1,33): two-heads-are-not-better-than-one #document | <!DOCTYPE html> | <html> @@ -157,7 +170,7 @@ Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. #data <!DOCTYPE html><HTML><HEAD><head></HEAD></HTML> #errors -Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. +(1,33): two-heads-are-not-better-than-one #document | <!DOCTYPE html> | <html> @@ -167,8 +180,8 @@ Line: 1 Col: 33 Unexpected start tag head in existing head. Ignored. #data <textarea>foo<span>bar</span><i>baz #errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. -Line: 1 Col: 35 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,35): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -179,8 +192,8 @@ Line: 1 Col: 35 Expected closing tag. Unexpected end of file. #data <title>foo<span>bar</em><i>baz #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 30 Unexpected end of file. Expected end tag (title). +(1,7): expected-doctype-but-got-start-tag +(1,30): expected-named-closing-tag-but-got-eof #document | <html> | <head> @@ -228,7 +241,7 @@ foo" #data <!DOCTYPE html><html><head></head><body><ul><li><div><p><li></ul></body></html> #errors -Line: 1 Col: 60 Missing end tag (div, li). +(1,60): end-tag-too-early #document | <!DOCTYPE html> | <html> @@ -243,9 +256,9 @@ Line: 1 Col: 60 Missing end tag (div, li). #data <!doctype html><nobr><nobr><nobr> #errors -Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 33 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 33 Expected closing tag. Unexpected end of file. +(1,27): unexpected-start-tag-implies-end-tag +(1,33): unexpected-start-tag-implies-end-tag +(1,33): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -258,8 +271,8 @@ Line: 1 Col: 33 Expected closing tag. Unexpected end of file. #data <!doctype html><nobr><nobr></nobr><nobr> #errors -Line: 1 Col: 27 Unexpected start tag (nobr) implies end tag (nobr). -Line: 1 Col: 40 Expected closing tag. Unexpected end of file. +(1,27): unexpected-start-tag-implies-end-tag +(1,40): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -268,3 +281,26 @@ Line: 1 Col: 40 Expected closing tag. Unexpected end of file. | <nobr> | <nobr> | <nobr> + +#data +<!doctype html><html><body><p><table></table></body></html> +#errors +Not known +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <p> +| <table> + +#data +<p><table></table> +#errors +(1,3): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <p> +| <table> diff --git a/test/data/tree-construction/tests4.dat b/test/data/tree-construction/tests4.dat index 3c50632..0a6174c 100644 --- a/test/data/tree-construction/tests4.dat +++ b/test/data/tree-construction/tests4.dat @@ -41,7 +41,6 @@ plaintext #data setting html's innerHTML #errors -Line: 1 Col: 24 Unexpected EOF in inner html mode. #document-fragment html #document diff --git a/test/data/tree-construction/tests5.dat b/test/data/tree-construction/tests5.dat index 2c95031..4d5fcd7 100644 --- a/test/data/tree-construction/tests5.dat +++ b/test/data/tree-construction/tests5.dat @@ -1,31 +1,33 @@ #data <style> <!-- </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end of file. Expected end tag (style). +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <style> -| " <!-- </style>x" +| " <!-- " | <body> +| "x" #data <style> <!-- </style> --> </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag +(1,34): unexpected-end-tag #document | <html> | <head> | <style> -| " <!-- </style> --> " +| " <!-- " +| " " | <body> -| "x" +| "--> x" #data <style> <!--> </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -37,7 +39,7 @@ Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. #data <style> <!---> </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -49,7 +51,7 @@ Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. #data <iframe> <!---> </iframe>x #errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. +(1,8): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -61,55 +63,63 @@ Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. #data <iframe> <!--- </iframe>->x</iframe> --> </iframe>x #errors -Line: 1 Col: 8 Unexpected start tag (iframe). Expected DOCTYPE. +(1,8): expected-doctype-but-got-start-tag +(1,36): unexpected-end-tag +(1,50): unexpected-end-tag #document | <html> | <head> | <body> | <iframe> -| " <!--- </iframe>->x</iframe> --> " -| "x" +| " <!--- " +| "->x --> x" #data <script> <!-- </script> --> </script>x #errors -Line: 1 Col: 8 Unexpected start tag (script). Expected DOCTYPE. +(1,8): expected-doctype-but-got-start-tag +(1,37): unexpected-end-tag #document | <html> | <head> | <script> -| " <!-- </script> --> " +| " <!-- " +| " " | <body> -| "x" +| "--> x" #data <title> <!-- </title> --> </title>x #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag +(1,34): unexpected-end-tag #document | <html> | <head> | <title> -| " <!-- </title> --> " +| " <!-- " +| " " | <body> -| "x" +| "--> x" #data <textarea> <!--- </textarea>->x</textarea> --> </textarea>x #errors -Line: 1 Col: 10 Unexpected start tag (textarea). Expected DOCTYPE. +(1,10): expected-doctype-but-got-start-tag +(1,42): unexpected-end-tag +(1,58): unexpected-end-tag #document | <html> | <head> | <body> | <textarea> -| " <!--- </textarea>->x</textarea> --> " -| "x" +| " <!--- " +| "->x --> x" #data <style> <!</-- </style>x #errors -Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -119,9 +129,20 @@ Line: 1 Col: 7 Unexpected start tag (style). Expected DOCTYPE. | "x" #data +<p><xmp></xmp> +#errors +(1,3): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <p> +| <xmp> + +#data <xmp> <!-- > --> </xmp> #errors -Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. +(1,5): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -132,7 +153,7 @@ Line: 1 Col: 5 Unexpected start tag (xmp). Expected DOCTYPE. #data <title>&</title> #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -143,33 +164,34 @@ Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. #data <title><!--&--></title> #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <title> -| "<!--&-->" +| "<!--&-->" | <body> #data <title><!--</title> #errors -Line: 1 Col: 7 Unexpected start tag (title). Expected DOCTYPE. -Line: 1 Col: 19 Unexpected end of file. Expected end tag (title). +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <title> -| "<!--</title>" +| "<!--" | <body> #data <noscript><!--</noscript>--></noscript> #errors -Line: 1 Col: 10 Unexpected start tag (noscript). Expected DOCTYPE. +(1,10): expected-doctype-but-got-start-tag +(1,39): unexpected-end-tag #document | <html> | <head> | <noscript> -| "<!--</noscript>-->" +| "<!--" | <body> +| "-->" diff --git a/test/data/tree-construction/tests6.dat b/test/data/tree-construction/tests6.dat index 40e347c..fedc64e 100644 --- a/test/data/tree-construction/tests6.dat +++ b/test/data/tree-construction/tests6.dat @@ -1,7 +1,7 @@ #data <!doctype html></head> <head> #errors -Line: 1 Col: 29 Unexpected start tag head. Ignored. +(1,29): unexpected-start-tag #document | <!DOCTYPE html> | <html> @@ -10,32 +10,10 @@ Line: 1 Col: 29 Unexpected start tag head. Ignored. | <body> #data -<!doctype html></html> <head> -#errors -Line: 1 Col: 22 Unexpected end tag (html) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| " " - -#data -<!doctype html></body><meta> -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <meta> - -#data <!doctype html><form><div></form><div> #errors -33: End tag form seen but there were unclosed elements. -38: End of file seen and there were open elements. +(1,33): end-tag-too-early-ignored +(1,38): expected-closing-tag-but-got-eof #document | <!DOCTYPE html> | <html> @@ -64,15 +42,15 @@ Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. | <html> | <head> | <title> -| "<!--&-->" +| "<!--&-->" | <body> #data <!doctype> #errors -Line: 1 Col: 9 No space after literal string 'DOCTYPE'. -Line: 1 Col: 10 Unexpected > character. Expected DOCTYPE name. -Line: 1 Col: 10 Erroneous DOCTYPE. +(1,9): need-space-after-doctype +(1,10): expected-doctype-name-but-got-right-bracket +(1,10): unknown-doctype #document | <!DOCTYPE > | <html> @@ -82,8 +60,8 @@ Line: 1 Col: 10 Erroneous DOCTYPE. #data <!---x #errors -Line: 1 Col: 6 Unexpected end of file in comment. -Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE. +(1,6): eof-in-comment +(1,6): expected-doctype-but-got-eof #document | <!-- -x --> | <html> @@ -94,8 +72,8 @@ Line: 1 Col: 6 Unexpected End of file. Expected DOCTYPE. <body> <div> #errors -Line: 1 Col: 6 Unexpected start tag (body). -Line: 2 Col: 5 Expected closing tag. Unexpected end of file. +(1,6): unexpected-start-tag +(2,5): expected-closing-tag-but-got-eof #document-fragment div #document @@ -107,8 +85,10 @@ div <frameset></frameset> foo #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Ignored. +(1,10): expected-doctype-but-got-start-tag +(2,1): unexpected-char-after-frameset +(2,2): unexpected-char-after-frameset +(2,3): unexpected-char-after-frameset #document | <html> | <head> @@ -120,8 +100,8 @@ Line: 2 Col: 3 Unexpected non-space characters in the after frameset phase. Igno <frameset></frameset> <noframes> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 10 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(2,10): expected-named-closing-tag-but-got-eof #document | <html> | <head> @@ -134,8 +114,8 @@ Line: 2 Col: 10 Expected closing tag. Unexpected end of file. <frameset></frameset> <div> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored. +(1,10): expected-doctype-but-got-start-tag +(2,5): unexpected-start-tag-after-frameset #document | <html> | <head> @@ -147,7 +127,7 @@ Line: 2 Col: 5 Unexpected start tag (div) in the after frameset phase. Ignored. <frameset></frameset> </html> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. +(1,10): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -159,8 +139,8 @@ Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. <frameset></frameset> </div> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored. +(1,10): expected-doctype-but-got-start-tag +(2,6): unexpected-end-tag-after-frameset #document | <html> | <head> @@ -171,9 +151,9 @@ Line: 2 Col: 6 Unexpected end tag (div) in the after frameset phase. Ignored. #data <form><form> #errors -Line: 1 Col: 6 Unexpected start tag (form). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (form). -Line: 1 Col: 12 Expected closing tag. Unexpected end of file. +(1,6): expected-doctype-but-got-start-tag +(1,12): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -183,9 +163,9 @@ Line: 1 Col: 12 Expected closing tag. Unexpected end of file. #data <button><button> #errors -Line: 1 Col: 8 Unexpected start tag (button). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (button) implies end tag (button). -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. +(1,8): expected-doctype-but-got-start-tag +(1,16): unexpected-start-tag-implies-end-tag +(1,16): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -196,9 +176,9 @@ Line: 1 Col: 16 Expected closing tag. Unexpected end of file. #data <table><tr><td></th> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (th). Ignored. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,20): unexpected-end-tag +(1,20): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -211,10 +191,10 @@ Line: 1 Col: 20 Expected closing tag. Unexpected end of file. #data <table><caption><td> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (td). Ignored. -Line: 1 Col: 20 Unexpected table cell start tag (td) in the table body phase. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,20): XXX-undefined-error +(1,20): unexpected-cell-in-table-body +(1,20): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -228,8 +208,8 @@ Line: 1 Col: 20 Expected closing tag. Unexpected end of file. #data <table><caption><div> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 21 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,21): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -241,8 +221,8 @@ Line: 1 Col: 21 Expected closing tag. Unexpected end of file. #data </caption><div> #errors -Line: 1 Col: 10 Unexpected end tag (caption). Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,10): XXX-undefined-error +(1,15): expected-closing-tag-but-got-eof #document-fragment caption #document @@ -251,9 +231,9 @@ caption #data <table><caption><div></caption> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 31 Unexpected end tag (caption). Missing end tag (div). -Line: 1 Col: 31 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,31): expected-one-end-tag-but-got-another +(1,31): eof-in-table #document | <html> | <head> @@ -265,8 +245,8 @@ Line: 1 Col: 31 Unexpected end of file. Expected table content. #data <table><caption></table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end caption. +(1,7): expected-doctype-but-got-start-tag +(1,24): end-table-tag-in-caption #document | <html> | <head> @@ -277,9 +257,8 @@ Line: 1 Col: 24 Unexpected end table tag in caption. Generates implied end capti #data </table><div> #errors -Line: 1 Col: 8 Unexpected end table tag in caption. Generates implied end caption. -Line: 1 Col: 8 Unexpected end tag (caption). Ignored. -Line: 1 Col: 13 Expected closing tag. Unexpected end of file. +(1,8): unexpected-end-tag +(1,13): expected-closing-tag-but-got-eof #document-fragment caption #document @@ -288,18 +267,18 @@ caption #data <table><caption></body></col></colgroup></html></tbody></td></tfoot></th></thead></tr> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 23 Unexpected end tag (body). Ignored. -Line: 1 Col: 29 Unexpected end tag (col). Ignored. -Line: 1 Col: 40 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 47 Unexpected end tag (html). Ignored. -Line: 1 Col: 55 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 60 Unexpected end tag (td). Ignored. -Line: 1 Col: 68 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 73 Unexpected end tag (th). Ignored. -Line: 1 Col: 81 Unexpected end tag (thead). Ignored. -Line: 1 Col: 86 Unexpected end tag (tr). Ignored. -Line: 1 Col: 86 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,23): unexpected-end-tag +(1,29): unexpected-end-tag +(1,40): unexpected-end-tag +(1,47): unexpected-end-tag +(1,55): unexpected-end-tag +(1,60): unexpected-end-tag +(1,68): unexpected-end-tag +(1,73): unexpected-end-tag +(1,81): unexpected-end-tag +(1,86): unexpected-end-tag +(1,86): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -310,8 +289,8 @@ Line: 1 Col: 86 Expected closing tag. Unexpected end of file. #data <table><caption><div></div> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 27 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,27): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -323,13 +302,13 @@ Line: 1 Col: 27 Expected closing tag. Unexpected end of file. #data <table><tr><td></body></caption></col></colgroup></html> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end tag (body). Ignored. -Line: 1 Col: 32 Unexpected end tag (caption). Ignored. -Line: 1 Col: 38 Unexpected end tag (col). Ignored. -Line: 1 Col: 49 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 56 Unexpected end tag (html). Ignored. -Line: 1 Col: 56 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,22): unexpected-end-tag +(1,32): unexpected-end-tag +(1,38): unexpected-end-tag +(1,49): unexpected-end-tag +(1,56): unexpected-end-tag +(1,56): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -342,12 +321,12 @@ Line: 1 Col: 56 Expected closing tag. Unexpected end of file. #data </table></tbody></tfoot></thead></tr><div> #errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 16 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 24 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 32 Unexpected end tag (thead). Ignored. -Line: 1 Col: 37 Unexpected end tag (tr). Ignored. -Line: 1 Col: 42 Expected closing tag. Unexpected end of file. +(1,8): unexpected-end-tag +(1,16): unexpected-end-tag +(1,24): unexpected-end-tag +(1,32): unexpected-end-tag +(1,37): unexpected-end-tag +(1,42): expected-closing-tag-but-got-eof #document-fragment td #document @@ -356,9 +335,11 @@ td #data <table><colgroup>foo #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 20 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,18): foster-parenting-character-in-table +(1,19): foster-parenting-character-in-table +(1,20): foster-parenting-character-in-table +(1,20): eof-in-table #document | <html> | <head> @@ -370,7 +351,9 @@ Line: 1 Col: 20 Unexpected end of file. Expected table content. #data foo<col> #errors -Line: 1 Col: 3 Unexpected end tag (colgroup). Ignored. +(1,1): unexpected-character-in-colgroup +(1,2): unexpected-character-in-colgroup +(1,3): unexpected-character-in-colgroup #document-fragment colgroup #document @@ -379,9 +362,9 @@ colgroup #data <table><colgroup></col> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 23 This element (col) has no end tag. -Line: 1 Col: 23 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,23): no-end-tag +(1,23): eof-in-table #document | <html> | <head> @@ -392,9 +375,9 @@ Line: 1 Col: 23 Expected closing tag. Unexpected end of file. #data <frameset><div> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag token (div) in the frameset phase. Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,15): unexpected-start-tag-in-frameset +(1,15): eof-in-frameset #document | <html> | <head> @@ -403,7 +386,7 @@ Line: 1 Col: 15 Expected closing tag. Unexpected end of file. #data </frameset><frame> #errors -Line: 1 Col: 11 Unexpected end tag token (frameset) in the frameset phase (innerHTML). +(1,11): unexpected-frameset-in-frameset-innerhtml #document-fragment frameset #document @@ -412,9 +395,9 @@ frameset #data <frameset></div> #errors -Line: 1 Col: 10 Unexpected start tag (frameset). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected end tag token (div) in the frameset phase. Ignored. -Line: 1 Col: 16 Expected closing tag. Unexpected end of file. +(1,10): expected-doctype-but-got-start-tag +(1,16): unexpected-end-tag-in-frameset +(1,16): eof-in-frameset #document | <html> | <head> @@ -423,8 +406,8 @@ Line: 1 Col: 16 Expected closing tag. Unexpected end of file. #data </body><div> #errors -Line: 1 Col: 7 Unexpected end tag (body). Ignored. -Line: 1 Col: 12 Expected closing tag. Unexpected end of file. +(1,7): unexpected-close-tag +(1,12): expected-closing-tag-but-got-eof #document-fragment body #document @@ -433,9 +416,9 @@ body #data <table><tr><div> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 16 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,16): unexpected-start-tag-implies-table-voodoo +(1,16): eof-in-table #document | <html> | <head> @@ -448,7 +431,7 @@ Line: 1 Col: 16 Unexpected end of file. Expected table content. #data </tr><td> #errors -Line: 1 Col: 5 Unexpected end tag (tr). Ignored. +(1,5): unexpected-end-tag #document-fragment tr #document @@ -457,9 +440,9 @@ tr #data </tbody></tfoot></thead><td> #errors -Line: 1 Col: 8 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 16 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 24 Unexpected end tag (thead). Ignored. +(1,8): unexpected-end-tag +(1,16): unexpected-end-tag +(1,24): unexpected-end-tag #document-fragment tr #document @@ -468,10 +451,9 @@ tr #data <table><tr><div><td> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 16 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 20 Unexpected implied end tag (div) in the table row phase. -Line: 1 Col: 20 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag +(1,16): foster-parenting-start-tag +(1,20): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -485,13 +467,12 @@ Line: 1 Col: 20 Expected closing tag. Unexpected end of file. #data <caption><col><colgroup><tbody><tfoot><thead><tr> #errors -Line: 1 Col: 9 Unexpected start tag (caption). -Line: 1 Col: 14 Unexpected start tag (col). -Line: 1 Col: 24 Unexpected start tag (colgroup). -Line: 1 Col: 31 Unexpected start tag (tbody). -Line: 1 Col: 38 Unexpected start tag (tfoot). -Line: 1 Col: 45 Unexpected start tag (thead). -Line: 1 Col: 49 Unexpected end of file. Expected table content. +(1,9): unexpected-start-tag +(1,14): unexpected-start-tag +(1,24): unexpected-start-tag +(1,31): unexpected-start-tag +(1,38): unexpected-start-tag +(1,45): unexpected-start-tag #document-fragment tbody #document @@ -500,9 +481,9 @@ tbody #data <table><tbody></thead> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 22 Unexpected end tag (thead) in the table body phase. Ignored. -Line: 1 Col: 22 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,22): unexpected-end-tag-in-table-body +(1,22): eof-in-table #document | <html> | <head> @@ -513,8 +494,7 @@ Line: 1 Col: 22 Unexpected end of file. Expected table content. #data </table><tr> #errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 12 Unexpected end of file. Expected table content. +(1,8): unexpected-end-tag #document-fragment tbody #document @@ -523,16 +503,16 @@ tbody #data <table><tbody></body></caption></col></colgroup></html></td></th></tr> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 21 Unexpected end tag (body) in the table body phase. Ignored. -Line: 1 Col: 31 Unexpected end tag (caption) in the table body phase. Ignored. -Line: 1 Col: 37 Unexpected end tag (col) in the table body phase. Ignored. -Line: 1 Col: 48 Unexpected end tag (colgroup) in the table body phase. Ignored. -Line: 1 Col: 55 Unexpected end tag (html) in the table body phase. Ignored. -Line: 1 Col: 60 Unexpected end tag (td) in the table body phase. Ignored. -Line: 1 Col: 65 Unexpected end tag (th) in the table body phase. Ignored. -Line: 1 Col: 70 Unexpected end tag (tr) in the table body phase. Ignored. -Line: 1 Col: 70 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,21): unexpected-end-tag-in-table-body +(1,31): unexpected-end-tag-in-table-body +(1,37): unexpected-end-tag-in-table-body +(1,48): unexpected-end-tag-in-table-body +(1,55): unexpected-end-tag-in-table-body +(1,60): unexpected-end-tag-in-table-body +(1,65): unexpected-end-tag-in-table-body +(1,70): unexpected-end-tag-in-table-body +(1,70): eof-in-table #document | <html> | <head> @@ -543,10 +523,10 @@ Line: 1 Col: 70 Unexpected end of file. Expected table content. #data <table><tbody></div> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 20 Unexpected end tag (div) in table context caused voodoo mode. -Line: 1 Col: 20 End tag (div) seen too early. Expected other end tag. -Line: 1 Col: 20 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,20): unexpected-end-tag-implies-table-voodoo +(1,20): end-tag-too-early +(1,20): eof-in-table #document | <html> | <head> @@ -557,9 +537,9 @@ Line: 1 Col: 20 Unexpected end of file. Expected table content. #data <table><table> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected start tag (table) implies end tag (table). -Line: 1 Col: 14 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-start-tag-implies-end-tag +(1,14): eof-in-table #document | <html> | <head> @@ -570,19 +550,19 @@ Line: 1 Col: 14 Unexpected end of file. Expected table content. #data <table></body></caption></col></colgroup></html></tbody></td></tfoot></th></thead></tr> #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 14 Unexpected end tag (body). Ignored. -Line: 1 Col: 24 Unexpected end tag (caption). Ignored. -Line: 1 Col: 30 Unexpected end tag (col). Ignored. -Line: 1 Col: 41 Unexpected end tag (colgroup). Ignored. -Line: 1 Col: 48 Unexpected end tag (html). Ignored. -Line: 1 Col: 56 Unexpected end tag (tbody). Ignored. -Line: 1 Col: 61 Unexpected end tag (td). Ignored. -Line: 1 Col: 69 Unexpected end tag (tfoot). Ignored. -Line: 1 Col: 74 Unexpected end tag (th). Ignored. -Line: 1 Col: 82 Unexpected end tag (thead). Ignored. -Line: 1 Col: 87 Unexpected end tag (tr). Ignored. -Line: 1 Col: 87 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-end-tag +(1,24): unexpected-end-tag +(1,30): unexpected-end-tag +(1,41): unexpected-end-tag +(1,48): unexpected-end-tag +(1,56): unexpected-end-tag +(1,61): unexpected-end-tag +(1,69): unexpected-end-tag +(1,74): unexpected-end-tag +(1,82): unexpected-end-tag +(1,87): unexpected-end-tag +(1,87): eof-in-table #document | <html> | <head> @@ -592,8 +572,7 @@ Line: 1 Col: 87 Unexpected end of file. Expected table content. #data </table><tr> #errors -Line: 1 Col: 8 Unexpected end tag (table). Ignored. -Line: 1 Col: 12 Unexpected end of file. Expected table content. +(1,8): unexpected-end-tag #document-fragment table #document @@ -601,21 +580,9 @@ table | <tr> #data -<html></html><!-- foo --> -#errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (html) after the (implied) root element. -#document -| <html> -| <head> -| <body> -| <!-- foo --> - -#data <body></body></html> #errors -Line: 1 Col: 20 Unexpected html end tag in inner html mode. -Line: 1 Col: 20 Unexpected EOF in inner html mode. +(1,20): unexpected-end-tag-after-body-innerhtml #document-fragment html #document @@ -625,7 +592,7 @@ html #data <html><frameset></frameset></html> #errors -Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. +(1,6): expected-doctype-but-got-start-tag #document | <html> | <head> @@ -635,10 +602,61 @@ Line: 1 Col: 6 Unexpected start tag (html). Expected DOCTYPE. #data <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"><html></html> #errors -Line: 1 Col: 50 Erroneous DOCTYPE. -Line: 1 Col: 63 Unexpected end tag (html) after the (implied) root element. +(1,50): unknown-doctype element. #document | <!DOCTYPE html "-//W3C//DTD HTML 4.01//EN" ""> | <html> | <head> | <body> + +#data +<param><frameset></frameset> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,17): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> + +#data +<source><frameset></frameset> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,18): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> + +#data +<track><frameset></frameset> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,17): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> + +#data +</html><frameset></frameset> +#errors +(1,7): expected-doctype-but-got-end-tag +(1,17): expected-eof-but-got-start-tag +(1,17): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> + +#data +</body><frameset></frameset> +#errors +(1,7): expected-doctype-but-got-end-tag +(1,17): unexpected-start-tag-after-body +(1,17): unexpected-start-tag +#document +| <html> +| <head> +| <frameset> diff --git a/test/data/tree-construction/tests7.dat b/test/data/tree-construction/tests7.dat index 0ae1db6..f9471b9 100644 --- a/test/data/tree-construction/tests7.dat +++ b/test/data/tree-construction/tests7.dat @@ -12,8 +12,7 @@ #data <!doctype html><table><title>X</title></table> #errors -Line: 1 Col: 29 Unexpected start tag (title) in table context caused voodoo mode. -Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode. +(1,29): unexpected-start-tag-implies-table-voodoo #document | <!DOCTYPE html> | <html> @@ -26,7 +25,7 @@ Line: 1 Col: 38 Unexpected end tag (title) in table context caused voodoo mode. #data <!doctype html><head></head><title>X</title> #errors -Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved. +(1,35): unexpected-start-tag-out-of-my-head #document | <!DOCTYPE html> | <html> @@ -38,7 +37,7 @@ Line: 1 Col: 35 Unexpected start tag (title) that can be in head. Moved. #data <!doctype html></head><title>X</title> #errors -Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved. +(1,29): unexpected-start-tag-out-of-my-head #document | <!DOCTYPE html> | <html> @@ -48,21 +47,9 @@ Line: 1 Col: 29 Unexpected start tag (title) that can be in head. Moved. | <body> #data -<!doctype html></body><title>X</title> -#errors -Line: 1 Col: 22 Unexpected end tag (body) after the (implied) root element. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| <title> -| "X" - -#data <!doctype html><table><meta></table> #errors -Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode. +(1,28): unexpected-start-tag-implies-table-voodoo #document | <!DOCTYPE html> | <html> @@ -72,25 +59,9 @@ Line: 1 Col: 28 Unexpected start tag (meta) in table context caused voodoo mode. | <table> #data -<!doctype html><table> X<meta></table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected start tag (meta) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <meta> -| <table> -| " " - -#data <!doctype html><table>X<tr><td><table> <meta></table></table> #errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode. +(1,45): unexpected-start-tag-implies-table-voodoo #document | <!DOCTYPE html> | <html> @@ -124,50 +95,8 @@ Line: 1 Col: 45 Unexpected start tag (meta) in table context caused voodoo mode. | <body> #data -<!doctype html><table> x</table> -#errors -Line: 1 Col: 24 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "x" -| <table> -| " " - -#data -<!doctype html><table> x </table> -#errors -Line: 1 Col: 25 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "x " -| <table> -| " " - -#data -<!doctype html><table><tr> x</table> -#errors -Line: 1 Col: 28 Unexpected non-space characters in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "x" -| <table> -| <tbody> -| <tr> -| " " - -#data <!doctype html><table><style> <tr>x </style> </table> #errors -Line: 1 Col: 44 Unexpected end tag (style) in table context caused voodoo mode. #document | <!DOCTYPE html> | <html> @@ -181,7 +110,6 @@ Line: 1 Col: 44 Unexpected end tag (style) in table context caused voodoo mode. #data <!doctype html><table><TBODY><script> <tr>x </script> </table> #errors -Line: 1 Col: 53 Unexpected end tag (script) in table context caused voodoo mode. #document | <!DOCTYPE html> | <html> @@ -194,23 +122,6 @@ Line: 1 Col: 53 Unexpected end tag (script) in table context caused voodoo mode. | " " #data -<!doctype html><table>X<style> <tr>x </style> </table> -#errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 30 Unexpected start tag (style) in table context caused voodoo mode. -Line: 1 Col: 45 Unexpected end tag (style) in table context caused voodoo mode. -#document -| <!DOCTYPE html> -| <html> -| <head> -| <body> -| "X" -| <style> -| " <tr>x " -| " " -| <table> - -#data <!doctype html><p><applet><p>X</p></applet> #errors #document @@ -238,7 +149,7 @@ X</listing> #data <!doctype html><select><input>X #errors -Line: 1 Col: 30 Unexpected input start tag in the select phase. +(1,30): unexpected-input-in-select #document | <!DOCTYPE html> | <html> @@ -251,7 +162,7 @@ Line: 1 Col: 30 Unexpected input start tag in the select phase. #data <!doctype html><select><select>X #errors -Line: 1 Col: 31 Unexpected select start tag in the select phase treated as select end tag. +(1,31): unexpected-select-in-select #document | <!DOCTYPE html> | <html> @@ -263,7 +174,7 @@ Line: 1 Col: 31 Unexpected select start tag in the select phase treated as selec #data <!doctype html><table><input type=hidDEN></table> #errors -Line: 1 Col: 41 Unexpected input with type hidden in table context. +(1,41): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> @@ -276,22 +187,22 @@ Line: 1 Col: 41 Unexpected input with type hidden in table context. #data <!doctype html><table>X<input type=hidDEN></table> #errors -Line: 1 Col: 23 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 42 Unexpected start tag (input) in table context caused voodoo mode. +(1,23): foster-parenting-character +(1,42): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> | <head> | <body> | "X" -| <input> -| type="hidDEN" | <table> +| <input> +| type="hidDEN" #data <!doctype html><table> <input type=hidDEN></table> #errors -Line: 1 Col: 43 Unexpected input with type hidden in table context. +(1,43): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> @@ -305,7 +216,7 @@ Line: 1 Col: 43 Unexpected input with type hidden in table context. #data <!doctype html><table> <input type='hidDEN'></table> #errors -Line: 1 Col: 45 Unexpected input with type hidden in table context. +(1,45): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> @@ -319,8 +230,8 @@ Line: 1 Col: 45 Unexpected input with type hidden in table context. #data <!doctype html><table><input type=" hidden"><input type=hidDEN></table> #errors -Line: 1 Col: 44 Unexpected start tag (input) in table context caused voodoo mode. -Line: 1 Col: 63 Unexpected start tag (input) in table context caused voodoo mode. +(1,44): unexpected-start-tag-implies-table-voodoo +(1,63): unexpected-hidden-input-in-table #document | <!DOCTYPE html> | <html> @@ -328,16 +239,16 @@ Line: 1 Col: 63 Unexpected start tag (input) in table context caused voodoo mode | <body> | <input> | type=" hidden" -| <input> -| type="hidDEN" | <table> +| <input> +| type="hidDEN" #data <!doctype html><table><select>X<tr> #errors -Line: 1 Col: 30 Unexpected start tag (select) in table context caused voodoo mode. -Line: 1 Col: 35 Unexpected table element start tag (trs) in the select in table phase. -Line: 1 Col: 35 Unexpected end of file. Expected table content. +(1,30): unexpected-start-tag-implies-table-voodoo +(1,35): unexpected-table-element-start-tag-in-select-in-table +(1,35): eof-in-table #document | <!DOCTYPE html> | <html> @@ -363,7 +274,6 @@ Line: 1 Col: 35 Unexpected end of file. Expected table content. #data <!DOCTYPE hTmL><html></html> #errors -Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. #document | <!DOCTYPE html> | <html> @@ -373,7 +283,6 @@ Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. #data <!DOCTYPE HTML><html></html> #errors -Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. #document | <!DOCTYPE html> | <html> @@ -383,8 +292,7 @@ Line: 1 Col: 28 Unexpected end tag (html) after the (implied) root element. #data <body>X</body></body> #errors -Line: 1 Col: 21 Unexpected end tag token (body) in the after body phase. -Line: 1 Col: 21 Unexpected EOF in inner html mode. +(1,21): unexpected-end-tag-after-body #document-fragment html #document @@ -393,35 +301,102 @@ html | "X" #data -<!doctype html><div><table><a>foo</a> <tr><td>bar</td> </tr></table></div> +<div><p>a</x> b #errors -Line: 1 Col: 30 Unexpected start tag (a) in table context caused voodoo mode. -Line: 1 Col: 37 Unexpected end tag (a) in table context caused voodoo mode. +(1,5): expected-doctype-but-got-start-tag +(1,13): unexpected-end-tag +(1,15): expected-closing-tag-but-got-eof #document -| <!DOCTYPE html> | <html> | <head> | <body> | <div> -| <a> -| "foo" -| " " -| <table> -| <tbody> -| <tr> -| <td> -| "bar" +| <p> +| "a b" #data -<div><p>a</x> b +<table><tr><td><code></code> </table> #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 13 Unexpected end tag (x). Ignored. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,7): expected-doctype-but-got-start-tag #document | <html> | <head> | <body> -| <div> -| <p> -| "a b" +| <table> +| <tbody> +| <tr> +| <td> +| <code> +| " " + +#data +<table><b><tr><td>aaa</td></tr>bbb</table>ccc +#errors +(1,7): expected-doctype-but-got-start-tag +(1,10): foster-parenting-start-tag +(1,32): foster-parenting-character +(1,33): foster-parenting-character +(1,34): foster-parenting-character +(1,45): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <b> +| <b> +| "bbb" +| <table> +| <tbody> +| <tr> +| <td> +| "aaa" +| <b> +| "ccc" + +#data +A<table><tr> B</tr> B</table> +#errors +(1,1): expected-doctype-but-got-chars +(1,13): foster-parenting-character +(1,14): foster-parenting-character +(1,20): foster-parenting-character +(1,21): foster-parenting-character +#document +| <html> +| <head> +| <body> +| "A B B" +| <table> +| <tbody> +| <tr> + +#data +A<table><tr> B</tr> </em>C</table> +#errors +(1,1): expected-doctype-but-got-chars +(1,13): foster-parenting-character +(1,14): foster-parenting-character +(1,20): foster-parenting-character +(1,25): unexpected-end-tag +(1,26): foster-parenting-character +#document +| <html> +| <head> +| <body> +| "A BC" +| <table> +| <tbody> +| <tr> +| " " + +#data +<select><keygen> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,16): unexpected-input-in-select +#document +| <html> +| <head> +| <body> +| <select> +| <keygen> diff --git a/test/data/tree-construction/tests8.dat b/test/data/tree-construction/tests8.dat index 90e6c91..93289f3 100644 --- a/test/data/tree-construction/tests8.dat +++ b/test/data/tree-construction/tests8.dat @@ -3,9 +3,9 @@ <div></div> </span>x #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 3 Col: 7 Unexpected end tag (span). Ignored. -Line: 3 Col: 8 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(3,7): unexpected-end-tag +(3,8): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -21,9 +21,9 @@ x" <div>x<div></div> </span>x #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 2 Col: 7 Unexpected end tag (span). Ignored. -Line: 2 Col: 8 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(2,7): unexpected-end-tag +(2,8): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -37,9 +37,9 @@ x" #data <div>x<div></div>x</span>x #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end tag (span). Ignored. -Line: 1 Col: 26 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,25): unexpected-end-tag +(1,26): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -52,9 +52,9 @@ Line: 1 Col: 26 Expected closing tag. Unexpected end of file. #data <div>x<div></div>y</span>z #errors -Line: 1 Col: 5 Unexpected start tag (div). Expected DOCTYPE. -Line: 1 Col: 25 Unexpected end tag (span). Ignored. -Line: 1 Col: 26 Expected closing tag. Unexpected end of file. +(1,5): expected-doctype-but-got-start-tag +(1,25): unexpected-end-tag +(1,26): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -67,13 +67,16 @@ Line: 1 Col: 26 Expected closing tag. Unexpected end of file. #data <table><div>x<div></div>x</span>x #errors -Line: 1 Col: 7 Unexpected start tag (table). Expected DOCTYPE. -Line: 1 Col: 12 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 18 Unexpected start tag (div) in table context caused voodoo mode. -Line: 1 Col: 24 Unexpected end tag (div) in table context caused voodoo mode. -Line: 1 Col: 32 Unexpected end tag (span) in table context caused voodoo mode. -Line: 1 Col: 32 Unexpected end tag (span). Ignored. -Line: 1 Col: 33 Unexpected end of file. Expected table content. +(1,7): expected-doctype-but-got-start-tag +(1,12): foster-parenting-start-tag +(1,13): foster-parenting-character +(1,18): foster-parenting-start-tag +(1,24): foster-parenting-end-tag +(1,25): foster-parenting-start-tag +(1,32): foster-parenting-end-tag +(1,32): unexpected-end-tag +(1,33): foster-parenting-character +(1,33): eof-in-table #document | <html> | <head> @@ -87,9 +90,8 @@ Line: 1 Col: 33 Unexpected end of file. Expected table content. #data x<table>x #errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -Line: 1 Col: 9 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 9 Unexpected end of file. Expected table content. +(1,1): expected-doctype-but-got-chars +(1,9): foster-parenting-character #document | <html> | <head> @@ -100,10 +102,9 @@ Line: 1 Col: 9 Unexpected end of file. Expected table content. #data x<table><table>x #errors -Line: 1 Col: 1 Unexpected non-space characters. Expected DOCTYPE. -Line: 1 Col: 15 Unexpected start tag (table) implies end tag (table). -Line: 1 Col: 16 Unexpected non-space characters in table context caused voodoo mode. -Line: 1 Col: 16 Unexpected end of file. Expected table content. +(1,1): expected-doctype-but-got-chars +(1,15): unexpected-start-tag-implies-end-tag +(1,16): foster-parenting-character #document | <html> | <head> @@ -116,9 +117,9 @@ Line: 1 Col: 16 Unexpected end of file. Expected table content. #data <b>a<div></div><div></b>y #errors -Line: 1 Col: 3 Unexpected start tag (b). Expected DOCTYPE. -Line: 1 Col: 24 End tag (b) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 25 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,24): adoption-agency-1.3 +(1,25): expected-closing-tag-but-got-eof #document | <html> | <head> @@ -133,10 +134,10 @@ Line: 1 Col: 25 Expected closing tag. Unexpected end of file. #data <a><div><p></a> #errors -Line: 1 Col: 3 Unexpected start tag (a). Expected DOCTYPE. -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 15 End tag (a) violates step 1, paragraph 3 of the adoption agency algorithm. -Line: 1 Col: 15 Expected closing tag. Unexpected end of file. +(1,3): expected-doctype-but-got-start-tag +(1,15): adoption-agency-1.3 +(1,15): adoption-agency-1.3 +(1,15): expected-closing-tag-but-got-eof #document | <html> | <head> diff --git a/test/data/tree-construction/tests9.dat b/test/data/tree-construction/tests9.dat index 3bc87b9..40651a0 100644 --- a/test/data/tree-construction/tests9.dat +++ b/test/data/tree-construction/tests9.dat @@ -19,10 +19,37 @@ | <math math> #data +<!DOCTYPE html><math><mi> +#errors +(1,25) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math mi> + +#data +<!DOCTYPE html><math><annotation-xml><svg><u> +#errors +(1,45) unexpected-html-element-in-foreign-content +(1,45) expected-closing-tag-but-got-eof +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <math math> +| <math annotation-xml> +| <svg svg> +| <u> + +#data <!DOCTYPE html><body><select><math></math></select> #errors -Line: 1 Col: 35 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored. +(1,35) unexpected-start-tag-in-select +(1,42) unexpected-end-tag-in-select #document | <!DOCTYPE html> | <html> @@ -33,8 +60,8 @@ Line: 1 Col: 42 Unexpected end tag (math) in the select phase. Ignored. #data <!DOCTYPE html><body><select><option><math></math></option></select> #errors -Line: 1 Col: 43 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored. +(1,43) unexpected-start-tag-in-select +(1,50) unexpected-end-tag-in-select #document | <!DOCTYPE html> | <html> @@ -46,8 +73,7 @@ Line: 1 Col: 50 Unexpected end tag (math) in the select phase. Ignored. #data <!DOCTYPE html><body><table><math></math></table> #errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode. +(1,34) unexpected-start-tag-implies-table-voodoo #document | <!DOCTYPE html> | <html> @@ -59,9 +85,10 @@ Line: 1 Col: 41 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><math><mi>foo</mi></math></table> #errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode. +(1,34) foster-parenting-start-token +(1,39) foster-parenting-character +(1,40) foster-parenting-character +(1,41) foster-parenting-character #document | <!DOCTYPE html> | <html> @@ -75,10 +102,13 @@ Line: 1 Col: 53 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><math><mi>foo</mi><mi>bar</mi></math></table> #errors -Line: 1 Col: 34 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 46 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 58 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode. +(1,34) foster-parenting-start-tag +(1,39) foster-parenting-character +(1,40) foster-parenting-character +(1,41) foster-parenting-character +(1,51) foster-parenting-character +(1,52) foster-parenting-character +(1,53) foster-parenting-character #document | <!DOCTYPE html> | <html> @@ -94,10 +124,13 @@ Line: 1 Col: 65 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><tbody><math><mi>foo</mi><mi>bar</mi></math></tbody></table> #errors -Line: 1 Col: 41 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 53 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 65 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode. +(1,41) foster-parenting-start-tag +(1,46) foster-parenting-character +(1,47) foster-parenting-character +(1,48) foster-parenting-character +(1,58) foster-parenting-character +(1,59) foster-parenting-character +(1,60) foster-parenting-character #document | <!DOCTYPE html> | <html> @@ -114,10 +147,13 @@ Line: 1 Col: 72 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><tbody><tr><math><mi>foo</mi><mi>bar</mi></math></tr></tbody></table> #errors -Line: 1 Col: 45 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 57 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 69 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode. +(1,45) foster-parenting-start-tag +(1,50) foster-parenting-character +(1,51) foster-parenting-character +(1,52) foster-parenting-character +(1,62) foster-parenting-character +(1,63) foster-parenting-character +(1,64) foster-parenting-character #document | <!DOCTYPE html> | <html> @@ -191,8 +227,8 @@ Line: 1 Col: 76 Unexpected end tag (math) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux #errors -Line: 1 Col: 70 HTML start tag "p" in a foreign namespace context. -Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end caption. +(1,70) unexpected-html-element-in-foreign-content +(1,81) XXX-undefined-error #document | <!DOCTYPE html> | <html> @@ -213,8 +249,8 @@ Line: 1 Col: 81 Unexpected end table tag in caption. Generates implied end capti #data <!DOCTYPE html><body><table><caption><math><mi>foo</mi><mi>bar</mi>baz</table><p>quux #errors -Line: 1 Col: 78 Unexpected end table tag in caption. Generates implied end caption. -Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math). +(1,78) unexpected-end-tag +(1,78) expected-one-end-tag-but-got-another #document | <!DOCTYPE html> | <html> @@ -234,11 +270,18 @@ Line: 1 Col: 78 Unexpected end tag (caption). Missing end tag (math). #data <!DOCTYPE html><body><table><colgroup><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux #errors -Line: 1 Col: 44 Unexpected start tag (math) in table context caused voodoo mode. -Line: 1 Col: 56 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 68 Unexpected end tag (mi) in table context caused voodoo mode. -Line: 1 Col: 71 HTML start tag "p" in a foreign namespace context. -Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode. +(1,44) foster-parenting-start-tag +(1,49) foster-parenting-character +(1,50) foster-parenting-character +(1,51) foster-parenting-character +(1,61) foster-parenting-character +(1,62) foster-parenting-character +(1,63) foster-parenting-character +(1,71) unexpected-html-element-in-foreign-content +(1,71) foster-parenting-start-tag +(1,63) foster-parenting-character +(1,63) foster-parenting-character +(1,63) foster-parenting-character #document | <!DOCTYPE html> | <html> @@ -259,13 +302,13 @@ Line: 1 Col: 71 Unexpected start tag (p) in table context caused voodoo mode. #data <!DOCTYPE html><body><table><tr><td><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux #errors -Line: 1 Col: 50 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 54 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 62 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 66 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 74 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 77 Unexpected start tag token (p) in the select phase. Ignored. -Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table phase. +(1,50) unexpected-start-tag-in-select +(1,54) unexpected-start-tag-in-select +(1,62) unexpected-end-tag-in-select +(1,66) unexpected-start-tag-in-select +(1,74) unexpected-end-tag-in-select +(1,77) unexpected-start-tag-in-select +(1,88) unexpected-table-element-end-tag-in-select-in-table #document | <!DOCTYPE html> | <html> @@ -283,14 +326,14 @@ Line: 1 Col: 88 Unexpected table element end tag (tables) in the select in table #data <!DOCTYPE html><body><table><select><math><mi>foo</mi><mi>bar</mi><p>baz</table><p>quux #errors -Line: 1 Col: 36 Unexpected start tag (select) in table context caused voodoo mode. -Line: 1 Col: 42 Unexpected start tag token (math) in the select phase. Ignored. -Line: 1 Col: 46 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 54 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 58 Unexpected start tag token (mi) in the select phase. Ignored. -Line: 1 Col: 66 Unexpected end tag (mi) in the select phase. Ignored. -Line: 1 Col: 69 Unexpected start tag token (p) in the select phase. Ignored. -Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table phase. +(1,36) unexpected-start-tag-implies-table-voodoo +(1,42) unexpected-start-tag-in-select +(1,46) unexpected-start-tag-in-select +(1,54) unexpected-end-tag-in-select +(1,58) unexpected-start-tag-in-select +(1,66) unexpected-end-tag-in-select +(1,69) unexpected-start-tag-in-select +(1,80) unexpected-table-element-end-tag-in-select-in-table #document | <!DOCTYPE html> | <html> @@ -305,8 +348,8 @@ Line: 1 Col: 80 Unexpected table element end tag (tables) in the select in table #data <!DOCTYPE html><body></body></html><math><mi>foo</mi><mi>bar</mi><p>baz #errors -Line: 1 Col: 41 Unexpected start tag (). -Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context. +(1,41) expected-eof-but-got-start-tag +(1,68) unexpected-html-element-in-foreign-content #document | <!DOCTYPE html> | <html> @@ -323,8 +366,8 @@ Line: 1 Col: 68 HTML start tag "p" in a foreign namespace context. #data <!DOCTYPE html><body></body><math><mi>foo</mi><mi>bar</mi><p>baz #errors -Line: 1 Col: 34 Unexpected start tag token (math) in the after body phase. -Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context. +(1,34) unexpected-start-tag-after-body +(1,61) unexpected-html-element-in-foreign-content #document | <!DOCTYPE html> | <html> @@ -341,14 +384,14 @@ Line: 1 Col: 61 HTML start tag "p" in a foreign namespace context. #data <!DOCTYPE html><frameset><math><mi></mi><mi></mi><p><span> #errors -Line: 1 Col: 31 Unexpected start tag token (math) in the frameset phase. Ignored. -Line: 1 Col: 35 Unexpected start tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 40 Unexpected end tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 44 Unexpected start tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 49 Unexpected end tag token (mi) in the frameset phase. Ignored. -Line: 1 Col: 52 Unexpected start tag token (p) in the frameset phase. Ignored. -Line: 1 Col: 58 Unexpected start tag token (span) in the frameset phase. Ignored. -Line: 1 Col: 58 Expected closing tag. Unexpected end of file. +(1,31) unexpected-start-tag-in-frameset +(1,35) unexpected-start-tag-in-frameset +(1,40) unexpected-end-tag-in-frameset +(1,44) unexpected-start-tag-in-frameset +(1,49) unexpected-end-tag-in-frameset +(1,52) unexpected-start-tag-in-frameset +(1,58) unexpected-start-tag-in-frameset +(1,58) eof-in-frameset #document | <!DOCTYPE html> | <html> @@ -358,13 +401,13 @@ Line: 1 Col: 58 Expected closing tag. Unexpected end of file. #data <!DOCTYPE html><frameset></frameset><math><mi></mi><mi></mi><p><span> #errors -Line: 1 Col: 42 Unexpected start tag (math) in the after frameset phase. Ignored. -Line: 1 Col: 46 Unexpected start tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 51 Unexpected end tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 55 Unexpected start tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 60 Unexpected end tag (mi) in the after frameset phase. Ignored. -Line: 1 Col: 63 Unexpected start tag (p) in the after frameset phase. Ignored. -Line: 1 Col: 69 Unexpected start tag (span) in the after frameset phase. Ignored. +(1,42) unexpected-start-tag-after-frameset +(1,46) unexpected-start-tag-after-frameset +(1,51) unexpected-end-tag-after-frameset +(1,55) unexpected-start-tag-after-frameset +(1,60) unexpected-end-tag-after-frameset +(1,63) unexpected-start-tag-after-frameset +(1,69) unexpected-start-tag-after-frameset #document | <!DOCTYPE html> | <html> diff --git a/test/data/tree-construction/tests_innerHTML_1.dat b/test/data/tree-construction/tests_innerHTML_1.dat new file mode 100644 index 0000000..9c5c182 --- /dev/null +++ b/test/data/tree-construction/tests_innerHTML_1.dat @@ -0,0 +1,891 @@ +#data +<body><span> +#errors +(1,6): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <span> + +#data +<span><body> +#errors +(1,12): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <span> + +#data +<span><body> +#errors +(1,12): unexpected-start-tag +(1,12): expected-closing-tag-but-got-eof +#document-fragment +div +#document +| <span> + +#data +<body><span> +#errors +(1,12): expected-closing-tag-but-got-eof +#document-fragment +html +#document +| <head> +| <body> +| <span> + +#data +<frameset><span> +#errors +(1,10): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <span> + +#data +<span><frameset> +#errors +(1,16): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +body +#document +| <span> + +#data +<span><frameset> +#errors +(1,16): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +div +#document +| <span> + +#data +<frameset><span> +#errors +(1,16): unexpected-start-tag-in-frameset +(1,16): eof-in-frameset +#document-fragment +html +#document +| <head> +| <frameset> + +#data +<table><tr> +#errors +(1,7): unexpected-start-tag +#document-fragment +table +#document +| <tbody> +| <tr> + +#data +</table><tr> +#errors +(1,8): unexpected-end-tag +#document-fragment +table +#document +| <tbody> +| <tr> + +#data +<a> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,3): eof-in-table +#document-fragment +table +#document +| <a> + +#data +<a> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,3): eof-in-table +#document-fragment +table +#document +| <a> + +#data +<a><caption>a +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,13): expected-closing-tag-but-got-eof +#document-fragment +table +#document +| <a> +| <caption> +| "a" + +#data +<a><colgroup><col> +#errors +(1,3): foster-parenting-start-token +(1,18): expected-closing-tag-but-got-eof +#document-fragment +table +#document +| <a> +| <colgroup> +| <col> + +#data +<a><tbody><tr> +#errors +(1,3): foster-parenting-start-tag +#document-fragment +table +#document +| <a> +| <tbody> +| <tr> + +#data +<a><tfoot><tr> +#errors +(1,3): foster-parenting-start-tag +#document-fragment +table +#document +| <a> +| <tfoot> +| <tr> + +#data +<a><thead><tr> +#errors +(1,3): foster-parenting-start-tag +#document-fragment +table +#document +| <a> +| <thead> +| <tr> + +#data +<a><tr> +#errors +(1,3): foster-parenting-start-tag +#document-fragment +table +#document +| <a> +| <tbody> +| <tr> + +#data +<a><th> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +table +#document +| <a> +| <tbody> +| <tr> +| <th> + +#data +<a><td> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +table +#document +| <a> +| <tbody> +| <tr> +| <td> + +#data +<table></table><tbody> +#errors +(1,22): unexpected-start-tag +#document-fragment +caption +#document +| <table> + +#data +</table><span> +#errors +(1,8): unexpected-end-tag +(1,14): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> + +#data +<span></table> +#errors +(1,14): unexpected-end-tag +(1,14): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> + +#data +</caption><span> +#errors +(1,10): XXX-undefined-error +(1,16): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> + +#data +<span></caption><span> +#errors +(1,16): XXX-undefined-error +(1,22): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><caption><span> +#errors +(1,15): unexpected-start-tag +(1,21): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><col><span> +#errors +(1,11): unexpected-start-tag +(1,17): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><colgroup><span> +#errors +(1,16): unexpected-start-tag +(1,22): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><html><span> +#errors +(1,12): non-html-root +(1,18): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><tbody><span> +#errors +(1,13): unexpected-start-tag +(1,19): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><td><span> +#errors +(1,10): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><tfoot><span> +#errors +(1,13): unexpected-start-tag +(1,19): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><thead><span> +#errors +(1,13): unexpected-start-tag +(1,19): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><th><span> +#errors +(1,10): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span><tr><span> +#errors +(1,10): unexpected-start-tag +(1,16): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +<span></table><span> +#errors +(1,14): unexpected-end-tag +(1,20): expected-closing-tag-but-got-eof +#document-fragment +caption +#document +| <span> +| <span> + +#data +</colgroup><col> +#errors +(1,11): XXX-undefined-error +#document-fragment +colgroup +#document +| <col> + +#data +<a><col> +#errors +(1,3): XXX-undefined-error +#document-fragment +colgroup +#document +| <col> + +#data +<caption><a> +#errors +(1,9): XXX-undefined-error +(1,12): unexpected-start-tag-implies-table-voodoo +(1,12): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<col><a> +#errors +(1,5): XXX-undefined-error +(1,8): unexpected-start-tag-implies-table-voodoo +(1,8): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<colgroup><a> +#errors +(1,10): XXX-undefined-error +(1,13): unexpected-start-tag-implies-table-voodoo +(1,13): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<tbody><a> +#errors +(1,7): XXX-undefined-error +(1,10): unexpected-start-tag-implies-table-voodoo +(1,10): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<tfoot><a> +#errors +(1,7): XXX-undefined-error +(1,10): unexpected-start-tag-implies-table-voodoo +(1,10): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<thead><a> +#errors +(1,7): XXX-undefined-error +(1,10): unexpected-start-tag-implies-table-voodoo +(1,10): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +</table><a> +#errors +(1,8): XXX-undefined-error +(1,11): unexpected-start-tag-implies-table-voodoo +(1,11): eof-in-table +#document-fragment +tbody +#document +| <a> + +#data +<a><tr> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +#document-fragment +tbody +#document +| <a> +| <tr> + +#data +<a><td> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +tbody +#document +| <a> +| <tr> +| <td> + +#data +<a><td> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +tbody +#document +| <a> +| <tr> +| <td> + +#data +<a><td> +#errors +(1,3): unexpected-start-tag-implies-table-voodoo +(1,7): unexpected-cell-in-table-body +#document-fragment +tbody +#document +| <a> +| <tr> +| <td> + +#data +<td><table><tbody><a><tr> +#errors +(1,4): unexpected-cell-in-table-body +(1,21): unexpected-start-tag-implies-table-voodoo +(1,25): eof-in-table +#document-fragment +tbody +#document +| <tr> +| <td> +| <a> +| <table> +| <tbody> +| <tr> + +#data +</tr><td> +#errors +(1,5): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<td><table><a><tr></tr><tr> +#errors +(1,14): unexpected-start-tag-implies-table-voodoo +(1,27): eof-in-table +#document-fragment +tr +#document +| <td> +| <a> +| <table> +| <tbody> +| <tr> +| <tr> + +#data +<caption><td> +#errors +(1,9): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<col><td> +#errors +(1,5): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<colgroup><td> +#errors +(1,10): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<tbody><td> +#errors +(1,7): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<tfoot><td> +#errors +(1,7): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<thead><td> +#errors +(1,7): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<tr><td> +#errors +(1,4): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +</table><td> +#errors +(1,8): XXX-undefined-error +#document-fragment +tr +#document +| <td> + +#data +<td><table></table><td> +#errors +#document-fragment +tr +#document +| <td> +| <table> +| <td> + +#data +<td><table></table><td> +#errors +#document-fragment +tr +#document +| <td> +| <table> +| <td> + +#data +<caption><a> +#errors +(1,9): XXX-undefined-error +(1,12): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<col><a> +#errors +(1,5): XXX-undefined-error +(1,8): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<colgroup><a> +#errors +(1,10): XXX-undefined-error +(1,13): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<tbody><a> +#errors +(1,7): XXX-undefined-error +(1,10): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<tfoot><a> +#errors +(1,7): XXX-undefined-error +(1,10): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<th><a> +#errors +(1,4): XXX-undefined-error +(1,7): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<thead><a> +#errors +(1,7): XXX-undefined-error +(1,10): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<tr><a> +#errors +(1,4): XXX-undefined-error +(1,7): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</table><a> +#errors +(1,8): XXX-undefined-error +(1,11): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</tbody><a> +#errors +(1,8): XXX-undefined-error +(1,11): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</td><a> +#errors +(1,5): unexpected-end-tag +(1,8): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</tfoot><a> +#errors +(1,8): XXX-undefined-error +(1,11): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</thead><a> +#errors +(1,8): XXX-undefined-error +(1,11): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</th><a> +#errors +(1,5): unexpected-end-tag +(1,8): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +</tr><a> +#errors +(1,5): XXX-undefined-error +(1,8): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <a> + +#data +<table><td><td> +#errors +(1,11): unexpected-cell-in-table-body +(1,15): expected-closing-tag-but-got-eof +#document-fragment +td +#document +| <table> +| <tbody> +| <tr> +| <td> +| <td> + +#data +</select><option> +#errors +(1,9): XXX-undefined-error +(1,17): eof-in-select +#document-fragment +select +#document +| <option> + +#data +<input><option> +#errors +(1,7): unexpected-input-in-select +(1,15): eof-in-select +#document-fragment +select +#document +| <option> + +#data +<keygen><option> +#errors +(1,8): unexpected-input-in-select +(1,16): eof-in-select +#document-fragment +select +#document +| <option> + +#data +<textarea><option> +#errors +(1,10): unexpected-input-in-select +(1,18): eof-in-select +#document-fragment +select +#document +| <option> + +#data +</html><!--abc--> +#errors +(1,7): unexpected-end-tag-after-body-innerhtml +#document-fragment +html +#document +| <head> +| <body> +| <!-- abc --> + +#data +</frameset><frame> +#errors +(1,11): unexpected-frameset-in-frameset-innerhtml +#document-fragment +frameset +#document +| <frame> + +#data +#errors +#document-fragment +html +#document +| <head> +| <body> diff --git a/test/data/tree-construction/tricky01.dat b/test/data/tree-construction/tricky01.dat new file mode 100644 index 0000000..f706521 --- /dev/null +++ b/test/data/tree-construction/tricky01.dat @@ -0,0 +1,334 @@ +#data +<b><p>Bold </b> Not bold</p> +Also not bold. +#errors +(1,3): expected-doctype-but-got-start-tag +(1,15): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <b> +| <p> +| <b> +| "Bold " +| " Not bold" +| " +Also not bold." + +#data +<html> +<font color=red><i>Italic and Red<p>Italic and Red </font> Just italic.</p> Italic only.</i> Plain +<p>I should not be red. <font color=red>Red. <i>Italic and red.</p> +<p>Italic and red. </i> Red.</font> I should not be red.</p> +<b>Bold <i>Bold and italic</b> Only Italic </i> Plain +#errors +(1,6): expected-doctype-but-got-start-tag +(2,58): adoption-agency-1.3 +(3,67): unexpected-end-tag +(4,23): adoption-agency-1.3 +(4,35): adoption-agency-1.3 +(5,30): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <font> +| color="red" +| <i> +| "Italic and Red" +| <i> +| <p> +| <font> +| color="red" +| "Italic and Red " +| " Just italic." +| " Italic only." +| " Plain +" +| <p> +| "I should not be red. " +| <font> +| color="red" +| "Red. " +| <i> +| "Italic and red." +| <font> +| color="red" +| <i> +| " +" +| <p> +| <font> +| color="red" +| <i> +| "Italic and red. " +| " Red." +| " I should not be red." +| " +" +| <b> +| "Bold " +| <i> +| "Bold and italic" +| <i> +| " Only Italic " +| " Plain" + +#data +<html><body> +<p><font size="7">First paragraph.</p> +<p>Second paragraph.</p></font> +<b><p><i>Bold and Italic</b> Italic</p> +#errors +(1,6): expected-doctype-but-got-start-tag +(2,38): unexpected-end-tag +(4,28): adoption-agency-1.3 +(4,28): adoption-agency-1.3 +(4,39): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| " +" +| <p> +| <font> +| size="7" +| "First paragraph." +| <font> +| size="7" +| " +" +| <p> +| "Second paragraph." +| " +" +| <b> +| <p> +| <b> +| <i> +| "Bold and Italic" +| <i> +| " Italic" + +#data +<html> +<dl> +<dt><b>Boo +<dd>Goo? +</dl> +</html> +#errors +(1,6): expected-doctype-but-got-start-tag +(4,4): end-tag-too-early +(5,5): end-tag-too-early +(6,7): expected-one-end-tag-but-got-another +#document +| <html> +| <head> +| <body> +| <dl> +| " +" +| <dt> +| <b> +| "Boo +" +| <dd> +| <b> +| "Goo? +" +| <b> +| " +" + +#data +<html><body> +<label><a><div>Hello<div>World</div></a></label> +</body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +(2,40): adoption-agency-1.3 +(2,48): unexpected-end-tag +(3,7): expected-one-end-tag-but-got-another +#document +| <html> +| <head> +| <body> +| " +" +| <label> +| <a> +| <div> +| <a> +| "Hello" +| <div> +| "World" +| " +" + +#data +<table><center> <font>a</center> <img> <tr><td> </td> </tr> </table> +#errors +(1,7): expected-doctype-but-got-start-tag +(1,15): foster-parenting-start-tag +(1,16): foster-parenting-character +(1,22): foster-parenting-start-tag +(1,23): foster-parenting-character +(1,32): foster-parenting-end-tag +(1,32): end-tag-too-early +(1,33): foster-parenting-character +(1,38): foster-parenting-start-tag +#document +| <html> +| <head> +| <body> +| <center> +| " " +| <font> +| "a" +| <font> +| <img> +| " " +| <table> +| " " +| <tbody> +| <tr> +| <td> +| " " +| " " +| " " + +#data +<table><tr><p><a><p>You should see this text. +#errors +(1,7): expected-doctype-but-got-start-tag +(1,14): unexpected-start-tag-implies-table-voodoo +(1,17): unexpected-start-tag-implies-table-voodoo +(1,20): unexpected-start-tag-implies-table-voodoo +(1,20): closing-non-current-p-element +(1,21): foster-parenting-character +(1,22): foster-parenting-character +(1,23): foster-parenting-character +(1,24): foster-parenting-character +(1,25): foster-parenting-character +(1,26): foster-parenting-character +(1,27): foster-parenting-character +(1,28): foster-parenting-character +(1,29): foster-parenting-character +(1,30): foster-parenting-character +(1,31): foster-parenting-character +(1,32): foster-parenting-character +(1,33): foster-parenting-character +(1,34): foster-parenting-character +(1,35): foster-parenting-character +(1,36): foster-parenting-character +(1,37): foster-parenting-character +(1,38): foster-parenting-character +(1,39): foster-parenting-character +(1,40): foster-parenting-character +(1,41): foster-parenting-character +(1,42): foster-parenting-character +(1,43): foster-parenting-character +(1,44): foster-parenting-character +(1,45): foster-parenting-character +(1,45): eof-in-table +#document +| <html> +| <head> +| <body> +| <p> +| <a> +| <p> +| <a> +| "You should see this text." +| <table> +| <tbody> +| <tr> + +#data +<TABLE> +<TR> +<CENTER><CENTER><TD></TD></TR><TR> +<FONT> +<TABLE><tr></tr></TABLE> +</P> +<a></font><font></a> +This page contains an insanely badly-nested tag sequence. +#errors +(1,7): expected-doctype-but-got-start-tag +(3,8): unexpected-start-tag-implies-table-voodoo +(3,16): unexpected-start-tag-implies-table-voodoo +(4,6): unexpected-start-tag-implies-table-voodoo +(5,7): unexpected-start-tag-implies-end-tag +(7,10): adoption-agency-1.3 +(7,20): adoption-agency-1.3 +(8,57): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <center> +| <center> +| <font> +| " +" +| <table> +| " +" +| <tbody> +| <tr> +| " +" +| <td> +| <tr> +| " +" +| <table> +| <tbody> +| <tr> +| <font> +| " +" +| <p> +| " +" +| <a> +| <a> +| <font> +| <font> +| " +This page contains an insanely badly-nested tag sequence." + +#data +<html> +<body> +<b><nobr><div>This text is in a div inside a nobr</nobr>More text that should not be in the nobr, i.e., the +nobr should have closed the div inside it implicitly. </b><pre>A pre tag outside everything else.</pre> +</body> +</html> +#errors +(1,6): expected-doctype-but-got-start-tag +(3,56): adoption-agency-1.3 +(4,58): adoption-agency-1.3 +(5,7): expected-one-end-tag-but-got-another +#document +| <html> +| <head> +| <body> +| " +" +| <b> +| <nobr> +| <div> +| <b> +| <nobr> +| "This text is in a div inside a nobr" +| "More text that should not be in the nobr, i.e., the +nobr should have closed the div inside it implicitly. " +| <pre> +| "A pre tag outside everything else." +| " + +" diff --git a/test/data/tree-construction/webkit01.dat b/test/data/tree-construction/webkit01.dat new file mode 100644 index 0000000..c480acc --- /dev/null +++ b/test/data/tree-construction/webkit01.dat @@ -0,0 +1,705 @@ +#data +Test +#errors +(1,4): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "Test" + +#data +<div></div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> + +#data +<div>Test</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "Test" + +#data +<di +#errors +(1,3): eof-in-tag-name +(1,3): expected-doctype-but-got-eof +#document +| <html> +| <head> +| <body> + +#data +<div>Hello</div> +<script> +console.log("PASS"); +</script> +<div>Bye</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "Hello" +| " +" +| <script> +| " +console.log("PASS"); +" +| " +" +| <div> +| "Bye" + +#data +<div foo="bar">Hello</div> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| foo="bar" +| "Hello" + +#data +<div>Hello</div> +<script> +console.log("FOO<span>BAR</span>BAZ"); +</script> +<div>Bye</div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| "Hello" +| " +" +| <script> +| " +console.log("FOO<span>BAR</span>BAZ"); +" +| " +" +| <div> +| "Bye" + +#data +<foo bar="baz"></foo><potato quack="duck"></potato> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <foo> +| bar="baz" +| <potato> +| quack="duck" + +#data +<foo bar="baz"><potato quack="duck"></potato></foo> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <foo> +| bar="baz" +| <potato> +| quack="duck" + +#data +<foo></foo bar="baz"><potato></potato quack="duck"> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,21): attributes-in-end-tag +(1,51): attributes-in-end-tag +#document +| <html> +| <head> +| <body> +| <foo> +| <potato> + +#data +</ tttt> +#errors +(1,2): expected-closing-tag-but-got-char +(1,8): expected-doctype-but-got-eof +#document +| <!-- tttt --> +| <html> +| <head> +| <body> + +#data +<div FOO ><img><img></div> +#errors +(1,10): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| foo="" +| <img> +| <img> + +#data +<p>Test</p<p>Test2</p> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,13): unexpected-end-tag +#document +| <html> +| <head> +| <body> +| <p> +| "TestTest2" + +#data +<rdar://problem/6869687> +#errors +(1,7): unexpected-character-after-solidus-in-tag +(1,8): unexpected-character-after-solidus-in-tag +(1,16): unexpected-character-after-solidus-in-tag +(1,24): expected-doctype-but-got-start-tag +(1,24): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <rdar:> +| 6869687="" +| problem="" + +#data +<A>test< /A> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,8): expected-tag-name +(1,12): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| "test< /A>" + +#data +< +#errors +(1,4): expected-doctype-but-got-chars +#document +| <html> +| <head> +| <body> +| "<" + +#data +<body foo='bar'><body foo='baz' yo='mama'> +#errors +(1,16): expected-doctype-but-got-start-tag +(1,42): unexpected-start-tag +#document +| <html> +| <head> +| <body> +| foo="bar" +| yo="mama" + +#data +<body></br foo="bar"></body> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,21): attributes-in-end-tag +(1,21): unexpected-end-tag-treated-as +#document +| <html> +| <head> +| <body> +| <br> + +#data +<bdy><br foo="bar"></body> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,26): expected-one-end-tag-but-got-another +#document +| <html> +| <head> +| <body> +| <bdy> +| <br> +| foo="bar" + +#data +<body></body></br foo="bar"> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,28): attributes-in-end-tag +(1,28): unexpected-end-tag-after-body +(1,28): unexpected-end-tag-treated-as +#document +| <html> +| <head> +| <body> +| <br> + +#data +<bdy></body><br foo="bar"> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,12): expected-one-end-tag-but-got-another +(1,26): unexpected-start-tag-after-body +(1,26): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <bdy> +| <br> +| foo="bar" + +#data +<html><body></body></html><!-- Hi there --> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <!-- Hi there --> + +#data +<html><body></body></html>x<!-- Hi there --> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): expected-eof-but-got-char +#document +| <html> +| <head> +| <body> +| "x" +| <!-- Hi there --> + +#data +<html><body></body></html>x<!-- Hi there --></html><!-- Again --> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): expected-eof-but-got-char +#document +| <html> +| <head> +| <body> +| "x" +| <!-- Hi there --> +| <!-- Again --> + +#data +<html><body></body></html>x<!-- Hi there --></body></html><!-- Again --> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): expected-eof-but-got-char +#document +| <html> +| <head> +| <body> +| "x" +| <!-- Hi there --> +| <!-- Again --> + +#data +<html><body><ruby><div><rp>xx</rp></div></ruby></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): XXX-undefined-error +#document +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <rp> +| "xx" + +#data +<html><body><ruby><div><rt>xx</rt></div></ruby></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,27): XXX-undefined-error +#document +| <html> +| <head> +| <body> +| <ruby> +| <div> +| <rt> +| "xx" + +#data +<html><frameset><!--1--><noframes>A</noframes><!--2--></frameset><!--3--><noframes>B</noframes><!--4--></html><!--5--><noframes>C</noframes><!--6--> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <frameset> +| <!-- 1 --> +| <noframes> +| "A" +| <!-- 2 --> +| <!-- 3 --> +| <noframes> +| "B" +| <!-- 4 --> +| <noframes> +| "C" +| <!-- 5 --> +| <!-- 6 --> + +#data +<select><option>A<select><option>B<select><option>C<select><option>D<select><option>E<select><option>F<select><option>G<select> +#errors +(1,8): expected-doctype-but-got-start-tag +(1,25): unexpected-select-in-select +(1,59): unexpected-select-in-select +(1,93): unexpected-select-in-select +(1,127): unexpected-select-in-select +(1,127): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <select> +| <option> +| "A" +| <option> +| "B" +| <select> +| <option> +| "C" +| <option> +| "D" +| <select> +| <option> +| "E" +| <option> +| "F" +| <select> +| <option> +| "G" + +#data +<dd><dd><dt><dt><dd><li><li> +#errors +(1,4): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <dd> +| <dd> +| <dt> +| <dt> +| <dd> +| <li> +| <li> + +#data +<div><b></div><div><nobr>a<nobr> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,14): end-tag-too-early +(1,32): unexpected-start-tag-implies-end-tag +(1,32): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <div> +| <b> +| <div> +| <b> +| <nobr> +| "a" +| <nobr> + +#data +<head></head> +<body></body> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| " +" +| <body> + +#data +<head></head> <style></style>ddd +#errors +(1,6): expected-doctype-but-got-start-tag +(1,21): unexpected-start-tag-out-of-my-head +#document +| <html> +| <head> +| <style> +| " " +| <body> +| "ddd" + +#data +<kbd><table></kbd><col><select><tr> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,18): unexpected-end-tag-implies-table-voodoo +(1,18): unexpected-end-tag +(1,31): unexpected-start-tag-implies-table-voodoo +(1,35): unexpected-table-element-start-tag-in-select-in-table +(1,35): eof-in-table +#document +| <html> +| <head> +| <body> +| <kbd> +| <select> +| <table> +| <colgroup> +| <col> +| <tbody> +| <tr> + +#data +<kbd><table></kbd><col><select><tr></table><div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,18): unexpected-end-tag-implies-table-voodoo +(1,18): unexpected-end-tag +(1,31): unexpected-start-tag-implies-table-voodoo +(1,35): unexpected-table-element-start-tag-in-select-in-table +(1,48): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <kbd> +| <select> +| <table> +| <colgroup> +| <col> +| <tbody> +| <tr> +| <div> + +#data +<a><li><style></style><title></title></a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,41): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <a> +| <li> +| <a> +| <style> +| <title> + +#data +<font></p><p><meta><title></title></font> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,10): unexpected-end-tag +(1,41): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <font> +| <p> +| <p> +| <font> +| <meta> +| <title> + +#data +<a><center><title></title><a> +#errors +(1,3): expected-doctype-but-got-start-tag +(1,29): unexpected-start-tag-implies-end-tag +(1,29): adoption-agency-1.3 +(1,29): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <a> +| <center> +| <a> +| <title> +| <a> + +#data +<svg><title><div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg title> +| <div> + +#data +<svg><title><rect><div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,23): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg title> +| <rect> +| <div> + +#data +<svg><title><svg><div> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,22): unexpected-html-element-in-foreign-content +(1,22): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg title> +| <svg svg> +| <div> + +#data +<img <="" FAIL> +#errors +(1,6): invalid-character-in-attribute-name +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <img> +| <="" +| fail="" + +#data +<ul><li><div id='foo'/>A</li><li>B<div>C</div></li></ul> +#errors +(1,4): expected-doctype-but-got-start-tag +(1,23): non-void-element-with-trailing-solidus +(1,29): end-tag-too-early +#document +| <html> +| <head> +| <body> +| <ul> +| <li> +| <div> +| id="foo" +| "A" +| <li> +| "B" +| <div> +| "C" + +#data +<svg><em><desc></em> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,9): unexpected-html-element-in-foreign-content +(1,20): adoption-agency-1.3 +#document +| <html> +| <head> +| <body> +| <svg svg> +| <em> +| <desc> + +#data +<svg><tfoot></mi><td> +#errors +(1,5): expected-doctype-but-got-start-tag +(1,17): unexpected-end-tag +(1,17): unexpected-end-tag +(1,21): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <svg svg> +| <svg tfoot> +| <svg td> + +#data +<math><mrow><mrow><mn>1</mn></mrow><mi>a</mi></mrow></math> +#errors +(1,6): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <math math> +| <math mrow> +| <math mrow> +| <math mn> +| "1" +| <math mi> +| "a" + +#data +<!doctype html><input type="hidden"><frameset> +#errors +(1,46): unexpected-start-tag +(1,46): eof-in-frameset +#document +| <!DOCTYPE html> +| <html> +| <head> +| <frameset> + +#data +<!doctype html><input type="button"><frameset> +#errors +(1,46): unexpected-start-tag +#document +| <!DOCTYPE html> +| <html> +| <head> +| <body> +| <input> +| type="button" diff --git a/test/data/tree-construction/webkit02.dat b/test/data/tree-construction/webkit02.dat new file mode 100644 index 0000000..647fcfd --- /dev/null +++ b/test/data/tree-construction/webkit02.dat @@ -0,0 +1,116 @@ +#data +<foo bar=qux/> +#errors +(1,14): expected-doctype-but-got-start-tag +(1,14): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <foo> +| bar="qux/" + +#data +<p id="status"><noscript><strong>A</strong></noscript><span>B</span></p> +#errors +(1,15): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <p> +| id="status" +| <noscript> +| "<strong>A</strong>" +| <span> +| "B" + +#data +<div><sarcasm><div></div></sarcasm></div> +#errors +(1,5): expected-doctype-but-got-start-tag +#document +| <html> +| <head> +| <body> +| <div> +| <sarcasm> +| <div> + +#data +<html><body><img src="" border="0" alt="><div>A</div></body></html> +#errors +(1,6): expected-doctype-but-got-start-tag +(1,67): eof-in-attribute-value-double-quote +#document +| <html> +| <head> +| <body> + +#data +<table><td></tbody>A +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,20): foster-parenting-character +(1,20): eof-in-table +#document +| <html> +| <head> +| <body> +| "A" +| <table> +| <tbody> +| <tr> +| <td> + +#data +<table><td></thead>A +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,19): XXX-undefined-error +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "A" + +#data +<table><td></tfoot>A +#errors +(1,7): expected-doctype-but-got-start-tag +(1,11): unexpected-cell-in-table-body +(1,19): XXX-undefined-error +(1,20): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <tbody> +| <tr> +| <td> +| "A" + +#data +<table><thead><td></tbody>A +#errors +(1,7): expected-doctype-but-got-start-tag +(1,18): unexpected-cell-in-table-body +(1,26): XXX-undefined-error +(1,27): expected-closing-tag-but-got-eof +#document +| <html> +| <head> +| <body> +| <table> +| <thead> +| <tr> +| <td> +| "A" diff --git a/test/data/validator/attributes.test b/test/data/validator/attributes.test new file mode 100755 index 0000000..2815976 --- /dev/null +++ b/test/data/validator/attributes.test @@ -0,0 +1,1035 @@ +{"tests": [ + +{"description": "allowed 'class' attribute on <span>", +"input": "<span class>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'contenteditable' attribute on <span>", +"input": "<span contenteditable>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'contextmenu' attribute on <span>", +"input": "<span contextmenu>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'dir' attribute on <span>", +"input": "<span dir>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'draggable' attribute on <span>", +"input": "<span draggable>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'id' attribute on <span>", +"input": "<span id>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'irrelevant' attribute on <span>", +"input": "<span irrelevant>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'lang' attribute on <span>", +"input": "<span lang>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ref' attribute on <span>", +"input": "<span ref>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'tabindex' attribute on <span>", +"input": "<span tabindex>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'template' attribute on <span>", +"input": "<span template>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'title' attribute on <span>", +"input": "<span title>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onabort' attribute on <span>", +"input": "<span onabort>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onbeforeunload' attribute on <span>", +"input": "<span onbeforeunload>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onblur' attribute on <span>", +"input": "<span onblur>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onchange' attribute on <span>", +"input": "<span onchange>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onclick' attribute on <span>", +"input": "<span onclick>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'oncontextmenu' attribute on <span>", +"input": "<span oncontextmenu>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ondblclick' attribute on <span>", +"input": "<span ondblclick>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ondrag' attribute on <span>", +"input": "<span ondrag>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ondragend' attribute on <span>", +"input": "<span ondragend>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ondragenter' attribute on <span>", +"input": "<span ondragenter>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ondragleave' attribute on <span>", +"input": "<span ondragleave>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ondragover' attribute on <span>", +"input": "<span ondragover>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ondragstart' attribute on <span>", +"input": "<span ondragstart>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ondrop' attribute on <span>", +"input": "<span ondrop>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onerror' attribute on <span>", +"input": "<span onerror>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onfocus' attribute on <span>", +"input": "<span onfocus>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onkeydown' attribute on <span>", +"input": "<span onkeydown>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onkeypress' attribute on <span>", +"input": "<span onkeypress>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onkeyup' attribute on <span>", +"input": "<span onkeyup>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onload' attribute on <span>", +"input": "<span onload>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onmessage' attribute on <span>", +"input": "<span onmessage>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onmousedown' attribute on <span>", +"input": "<span onmousedown>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onmousemove' attribute on <span>", +"input": "<span onmousemove>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onmouseout' attribute on <span>", +"input": "<span onmouseout>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onmouseover' attribute on <span>", +"input": "<span onmouseover>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onmouseup' attribute on <span>", +"input": "<span onmouseup>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onmousewheel' attribute on <span>", +"input": "<span onmousewheel>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onresize' attribute on <span>", +"input": "<span onresize>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onscroll' attribute on <span>", +"input": "<span onscroll>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onselect' attribute on <span>", +"input": "<span onselect>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onsubmit' attribute on <span>", +"input": "<span onsubmit>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onunload' attribute on <span>", +"input": "<span onunload>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <command>", +"input": "<command type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'label' attribute on <command>", +"input": "<command label>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'icon' attribute on <command>", +"input": "<command icon>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'hidden' attribute on <command>", +"input": "<command hidden>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'disabled' attribute on <command>", +"input": "<command disabled>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'checked' attribute on <command>", +"input": "<command checked>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'radiogroup' attribute on <command>", +"input": "<command radiogroup>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'default' attribute on <command>", +"input": "<command default>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'value' attribute on <meter>", +"input": "<meter value>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'min' attribute on <meter>", +"input": "<meter min>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'low' attribute on <meter>", +"input": "<meter low>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'high' attribute on <meter>", +"input": "<meter high>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'max' attribute on <meter>", +"input": "<meter max>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'optimum' attribute on <meter>", +"input": "<meter optimum>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'cite' attribute on <ins>", +"input": "<ins cite>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'datetime' attribute on <ins>", +"input": "<ins datetime>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'multiple' attribute on <datagrid>", +"input": "<datagrid multiple>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'disabled' attribute on <datagrid>", +"input": "<datagrid disabled>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'name' attribute on <meta>", +"input": "<meta name>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'http-equiv' attribute on <meta>", +"input": "<meta http-equiv>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'content' attribute on <meta>", +"input": "<meta content>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'charset' attribute on <meta>", +"input": "<meta charset>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'src' attribute on <video>", +"input": "<video src>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'autoplay' attribute on <video>", +"input": "<video autoplay>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'start' attribute on <video>", +"input": "<video start>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'loopstart' attribute on <video>", +"input": "<video loopstart>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'loopend' attribute on <video>", +"input": "<video loopend>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'end' attribute on <video>", +"input": "<video end>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'loopcount' attribute on <video>", +"input": "<video loopcount>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'controls' attribute on <video>", +"input": "<video controls>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'style' attribute on <font>", +"input": "<font style>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'media' attribute on <style>", +"input": "<style media>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <style>", +"input": "<style type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'scoped' attribute on <style>", +"input": "<style scoped>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'alt' attribute on <img>", +"input": "<img alt>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'src' attribute on <img>", +"input": "<img src>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'usemap' attribute on <img>", +"input": "<img usemap>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ismap' attribute on <img>", +"input": "<img ismap>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'height' attribute on <img>", +"input": "<img height>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'width' attribute on <img>", +"input": "<img width>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'alt' attribute on <area>", +"input": "<area alt>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'coords' attribute on <area>", +"input": "<area coords>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'shape' attribute on <area>", +"input": "<area shape>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'href' attribute on <area>", +"input": "<area href>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'target' attribute on <area>", +"input": "<area target>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ping' attribute on <area>", +"input": "<area ping>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'rel' attribute on <area>", +"input": "<area rel>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'media' attribute on <area>", +"input": "<area media>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'hreflang' attribute on <area>", +"input": "<area hreflang>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <area>", +"input": "<area type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <menu>", +"input": "<menu type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'label' attribute on <menu>", +"input": "<menu label>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'autosubmit' attribute on <menu>", +"input": "<menu autosubmit>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'name' attribute on <param>", +"input": "<param name>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'value' attribute on <param>", +"input": "<param value>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'value' attribute on <li>", +"input": "<li value>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'src' attribute on <source>", +"input": "<source src>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <source>", +"input": "<source type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'media' attribute on <source>", +"input": "<source media>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'xmlns' attribute on <html>", +"input": "<html xmlns>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'open' attribute on <details>", +"input": "<details open>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'colspan' attribute on <th>", +"input": "<th colspan>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'rowspan' attribute on <th>", +"input": "<th rowspan>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'scope' attribute on <th>", +"input": "<th scope>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'value' attribute on <progress>", +"input": "<progress value>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'max' attribute on <progress>", +"input": "<progress max>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'colspan' attribute on <td>", +"input": "<td colspan>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'rowspan' attribute on <td>", +"input": "<td rowspan>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'cite' attribute on <blockquote>", +"input": "<blockquote cite>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'data' attribute on <object>", +"input": "<object data>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <object>", +"input": "<object type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'usemap' attribute on <object>", +"input": "<object usemap>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'height' attribute on <object>", +"input": "<object height>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'width' attribute on <object>", +"input": "<object width>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'height' attribute on <canvas>", +"input": "<canvas height>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'width' attribute on <canvas>", +"input": "<canvas width>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'href' attribute on <base>", +"input": "<base href>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'target' attribute on <base>", +"input": "<base target>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'href' attribute on <link>", +"input": "<link href>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'rel' attribute on <link>", +"input": "<link rel>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'media' attribute on <link>", +"input": "<link media>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'hreflang' attribute on <link>", +"input": "<link hreflang>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <link>", +"input": "<link type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'href' attribute on <a>", +"input": "<a href>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'target' attribute on <a>", +"input": "<a target>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'ping' attribute on <a>", +"input": "<a ping>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'rel' attribute on <a>", +"input": "<a rel>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'media' attribute on <a>", +"input": "<a media>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'hreflang' attribute on <a>", +"input": "<a hreflang>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <a>", +"input": "<a type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'src' attribute on <event-source>", +"input": "<event-source src>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'start' attribute on <ol>", +"input": "<ol start>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'span' attribute on <colgroup>", +"input": "<colgroup span>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'src' attribute on <script>", +"input": "<script src>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'defer' attribute on <script>", +"input": "<script defer>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'async' attribute on <script>", +"input": "<script async>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <script>", +"input": "<script type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'cite' attribute on <q>", +"input": "<q cite>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'cite' attribute on <del>", +"input": "<del cite>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'datetime' attribute on <del>", +"input": "<del datetime>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'src' attribute on <iframe>", +"input": "<iframe src>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'datetime' attribute on <time>", +"input": "<time datetime>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'src' attribute on <audio>", +"input": "<audio src>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'autoplay' attribute on <audio>", +"input": "<audio autoplay>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'start' attribute on <audio>", +"input": "<audio start>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'loopstart' attribute on <audio>", +"input": "<audio loopstart>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'loopend' attribute on <audio>", +"input": "<audio loopend>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'end' attribute on <audio>", +"input": "<audio end>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'loopcount' attribute on <audio>", +"input": "<audio loopcount>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'controls' attribute on <audio>", +"input": "<audio controls>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'span' attribute on <col>", +"input": "<col span>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'disabled' attribute on <fieldset>", +"input": "<fieldset disabled>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'form' attribute on <fieldset>", +"input": "<fieldset form>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onsubmit' attribute on <form>", +"input": "<form onsubmit>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'name' attribute on <form>", +"input": "<form name>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onreset' attribute on <form>", +"input": "<form onreset>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'accept' attribute on <form>", +"input": "<form accept>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'replace' attribute on <form>", +"input": "<form replace>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'accept-charset' attribute on <form>", +"input": "<form accept-charset>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'action' attribute on <form>", +"input": "<form action>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'data' attribute on <form>", +"input": "<form data>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'method' attribute on <form>", +"input": "<form method>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'enctype' attribute on <form>", +"input": "<form enctype>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'rows' attribute on <textarea>", +"input": "<textarea rows>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'name' attribute on <textarea>", +"input": "<textarea name>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'form' attribute on <textarea>", +"input": "<textarea form>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'required' attribute on <textarea>", +"input": "<textarea required>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'cols' attribute on <textarea>", +"input": "<textarea cols>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'accept' attribute on <textarea>", +"input": "<textarea accept>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'disabled' attribute on <textarea>", +"input": "<textarea disabled>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'readonly' attribute on <textarea>", +"input": "<textarea readonly>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'wrap' attribute on <textarea>", +"input": "<textarea wrap>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'autofocus' attribute on <textarea>", +"input": "<textarea autofocus>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'maxlength' attribute on <textarea>", +"input": "<textarea maxlength>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'a' attribute on <datalist>", +"input": "<datalist a>", +"fail-unless": "unknown-attribute"}, + +{"description": "allowed 'd' attribute on <datalist>", +"input": "<datalist d>", +"fail-unless": "unknown-attribute"}, + +{"description": "allowed 't' attribute on <datalist>", +"input": "<datalist t>", +"fail-unless": "unknown-attribute"}, + +{"description": "allowed 'action' attribute on <button>", +"input": "<button action>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'enctype' attribute on <button>", +"input": "<button enctype>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'method' attribute on <button>", +"input": "<button method>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'replace' attribute on <button>", +"input": "<button replace>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'template' attribute on <button>", +"input": "<button template>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'name' attribute on <button>", +"input": "<button name>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'form' attribute on <button>", +"input": "<button form>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'value' attribute on <button>", +"input": "<button value>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'disabled' attribute on <button>", +"input": "<button disabled>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'autofocus' attribute on <button>", +"input": "<button autofocus>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'type' attribute on <button>", +"input": "<button type>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'accesskey' attribute on <label>", +"input": "<label accesskey>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'form' attribute on <label>", +"input": "<label form>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'for' attribute on <label>", +"input": "<label for>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'disabled' attribute on <optgroup>", +"input": "<optgroup disabled>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'label' attribute on <optgroup>", +"input": "<optgroup label>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onforminput' attribute on <output>", +"input": "<output onforminput>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'onformchange' attribute on <output>", +"input": "<output onformchange>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'name' attribute on <output>", +"input": "<output name>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'form' attribute on <output>", +"input": "<output form>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'for' attribute on <output>", +"input": "<output for>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'multiple' attribute on <select>", +"input": "<select multiple>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'name' attribute on <select>", +"input": "<select name>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'form' attribute on <select>", +"input": "<select form>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'accesskey' attribute on <select>", +"input": "<select accesskey>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'disabled' attribute on <select>", +"input": "<select disabled>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'autofocus' attribute on <select>", +"input": "<select autofocus>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'data' attribute on <select>", +"input": "<select data>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'size' attribute on <select>", +"input": "<select size>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'selected' attribute on <option>", +"input": "<option selected>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'value' attribute on <option>", +"input": "<option value>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'label' attribute on <option>", +"input": "<option label>", +"fail-if": "unknown-attribute"}, + +{"description": "allowed 'disabled' attribute on <option>", +"input": "<option disabled>", +"fail-if": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <command>", +"input": "<command foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <meter>", +"input": "<meter foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <ins>", +"input": "<ins foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <datagrid>", +"input": "<datagrid foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <meta>", +"input": "<meta foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <video>", +"input": "<video foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <font>", +"input": "<font foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <style>", +"input": "<style foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <img>", +"input": "<img foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <area>", +"input": "<area foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <menu>", +"input": "<menu foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <param>", +"input": "<param foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <li>", +"input": "<li foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <source>", +"input": "<source foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <html>", +"input": "<html foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <details>", +"input": "<details foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <th>", +"input": "<th foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <progress>", +"input": "<progress foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <td>", +"input": "<td foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <blockquote>", +"input": "<blockquote foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <object>", +"input": "<object foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <canvas>", +"input": "<canvas foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <base>", +"input": "<base foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <link>", +"input": "<link foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <a>", +"input": "<a foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <event-source>", +"input": "<event-source foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <ol>", +"input": "<ol foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <colgroup>", +"input": "<colgroup foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <script>", +"input": "<script foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <q>", +"input": "<q foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <del>", +"input": "<del foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <iframe>", +"input": "<iframe foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <time>", +"input": "<time foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <audio>", +"input": "<audio foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <col>", +"input": "<col foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "missing required 'href' attribute on <link>", +"input": "<link rel>", +"fail-unless": "missing-required-attribute"}, + +{"description": "missing required 'rel' attribute on <link>", +"input": "<link href>", +"fail-unless": "missing-required-attribute"}, + +{"description": "missing required 'dir' attribute on <bdo>", +"input": "<bdo>", +"fail-unless": "missing-required-attribute"}, + +{"description": "missing required 'src' attribute on <img>", +"input": "<img>", +"fail-unless": "missing-required-attribute"}, + +{"description": "missing required 'src' attribute on <embed>", +"input": "<embed>", +"fail-unless": "missing-required-attribute"}, + +{"description": "missing required 'name' attribute on <param>", +"input": "<param value>", +"fail-unless": "missing-required-attribute"}, + +{"description": "missing required 'value' attribute on <param>", +"input": "<param name>", +"fail-unless": "missing-required-attribute"}, + +{"description": "missing required 'src' attribute on <source>", +"input": "<source>", +"fail-unless": "missing-required-attribute"}, + +{"description": "missing required 'id' attribute on <map>", +"input": "<map>", +"fail-unless": "missing-required-attribute"} + +]} diff --git a/test/data/validator/base-href-attribute.test b/test/data/validator/base-href-attribute.test new file mode 100755 index 0000000..83a626a --- /dev/null +++ b/test/data/validator/base-href-attribute.test @@ -0,0 +1,787 @@ +{"tests": [ + +{"description": "base href contains invalid URI due to leading space", +"input": "<base href=' http://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to trailing space", +"input": "<base href='http://www.example.com/ '", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to space in scheme", +"input": "<base href='ht tp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to space in domain", +"input": "<base href='http://www.example. com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to space in path", +"input": "<base href='http://www.example.com/a b'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to space in fragment", +"input": "<base href='http://www.example.com/a#b c'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to space in query", +"input": "<base href='http://www.example.com/a?b c'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to leading tab", +"input": "<base href='\thttp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to trailing tab", +"input": "<base href='http://www.example.com/\t'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to tab in scheme", +"input": "<base href='ht\ttp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to tab in domain", +"input": "<base href='http://www.example.\tcom/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to tab in path", +"input": "<base href='http://www.example.com/a\tb'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to tab in fragment", +"input": "<base href='http://www.example.com/a#b\tc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to tab in query", +"input": "<base href='http://www.example.com/a?b\tc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to leading LF", +"input": "<base href='\nhttp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LF in scheme", +"input": "<base href='ht\ntp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LF in domain", +"input": "<base href='http://www.example.\ncom/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LF in path", +"input": "<base href='http://www.example.com/a\nb'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LF in fragment", +"input": "<base href='http://www.example.com/a#b\nc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LF in query", +"input": "<base href='http://www.example.com/a?b\nc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to leading LT", +"input": "<base href='\u000Bhttp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to trailing LT", +"input": "<base href='http://www.example.com/\u000B'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LT in scheme", +"input": "<base href='ht\u000Btp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LT in domain", +"input": "<base href='http://www.example.\u000Bcom/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LT in path", +"input": "<base href='http://www.example.com/a\u000Bb'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LT in fragment", +"input": "<base href='http://www.example.com/a#b\u000Bc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to LT in query", +"input": "<base href='http://www.example.com/a?b\u000Bc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to leading FF", +"input": "<base href='\u000Chttp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to trailing FF", +"input": "<base href='http://www.example.com/\u000C'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to FF in scheme", +"input": "<base href='ht\u000Ctp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to FF in domain", +"input": "<base href='http://www.example.\u000Ccom/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to FF in path", +"input": "<base href='http://www.example.com/a\u000Cb'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to FF in fragment", +"input": "<base href='http://www.example.com/a#b\u000Cc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to FF in query", +"input": "<base href='http://www.example.com/a?b\u000Cc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to leading CR", +"input": "<base href='\rhttp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to CR in scheme", +"input": "<base href='ht\rtp://www.example.com/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to CR in domain", +"input": "<base href='http://www.example.\rcom/'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to CR in path", +"input": "<base href='http://www.example.com/a\rb'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to CR in fragment", +"input": "<base href='http://www.example.com/a#b\rc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains invalid URI due to CR in query", +"input": "<base href='http://www.example.com/a?b\rc'", +"fail-unless": "invalid-uri-char"}, + +{"description": "base href contains valid URI scheme 'ftp'", +"input": "<base href='ftp://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'http'", +"input": "<base href='http://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'gopher'", +"input": "<base href='gopher://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'mailto'", +"input": "<base href='mailto://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'news'", +"input": "<base href='news://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'nntp'", +"input": "<base href='nntp://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'telnet'", +"input": "<base href='telnet://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'wais'", +"input": "<base href='wais://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'file'", +"input": "<base href='file://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'prospero'", +"input": "<base href='prospero://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'z39.50s'", +"input": "<base href='z39.50s://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'z39.50r'", +"input": "<base href='z39.50r://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'cid'", +"input": "<base href='cid://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'mid'", +"input": "<base href='mid://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'vemmi'", +"input": "<base href='vemmi://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'service'", +"input": "<base href='service://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'imap'", +"input": "<base href='imap://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'nfs'", +"input": "<base href='nfs://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'acap'", +"input": "<base href='acap://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'rtsp'", +"input": "<base href='rtsp://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'tip'", +"input": "<base href='tip://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'pop'", +"input": "<base href='pop://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'data'", +"input": "<base href='data://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'dav'", +"input": "<base href='dav://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'opaquelocktoken'", +"input": "<base href='opaquelocktoken://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'sip'", +"input": "<base href='sip://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'sips'", +"input": "<base href='sips://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'tel'", +"input": "<base href='tel://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'fax'", +"input": "<base href='fax://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'modem'", +"input": "<base href='modem://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'ldap'", +"input": "<base href='ldap://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'https'", +"input": "<base href='https://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'soap.beep'", +"input": "<base href='soap.beep://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'soap.beeps'", +"input": "<base href='soap.beeps://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'xmlrpc.beep'", +"input": "<base href='xmlrpc.beep://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'xmlrpc.beeps'", +"input": "<base href='xmlrpc.beeps://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'urn'", +"input": "<base href='urn://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'go'", +"input": "<base href='go://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'h323'", +"input": "<base href='h323://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'ipp'", +"input": "<base href='ipp://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'tftp'", +"input": "<base href='tftp://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'mupdate'", +"input": "<base href='mupdate://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'pres'", +"input": "<base href='pres://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'im'", +"input": "<base href='im://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'mtqp'", +"input": "<base href='mtqp://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'iris.beep'", +"input": "<base href='iris.beep://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'dict'", +"input": "<base href='dict://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'snmp'", +"input": "<base href='snmp://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'crid'", +"input": "<base href='crid://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'tag'", +"input": "<base href='tag://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'dns'", +"input": "<base href='dns://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'info'", +"input": "<base href='info://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'javascript'", +"input": "<base href='javascript:foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'FTP'", +"input": "<base href='FTP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'HTTP'", +"input": "<base href='HTTP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'GOPHER'", +"input": "<base href='GOPHER://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'MAILTO'", +"input": "<base href='MAILTO://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'NEWS'", +"input": "<base href='NEWS://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'NNTP'", +"input": "<base href='NNTP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'TELNET'", +"input": "<base href='TELNET://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'WAIS'", +"input": "<base href='WAIS://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'FILE'", +"input": "<base href='FILE://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'PROSPERO'", +"input": "<base href='PROSPERO://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'Z39.50S'", +"input": "<base href='Z39.50S://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'Z39.50R'", +"input": "<base href='Z39.50R://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'CID'", +"input": "<base href='CID://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'MID'", +"input": "<base href='MID://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'VEMMI'", +"input": "<base href='VEMMI://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'SERVICE'", +"input": "<base href='SERVICE://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'IMAP'", +"input": "<base href='IMAP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'NFS'", +"input": "<base href='NFS://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'ACAP'", +"input": "<base href='ACAP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'RTSP'", +"input": "<base href='RTSP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'TIP'", +"input": "<base href='TIP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'POP'", +"input": "<base href='POP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'DATA'", +"input": "<base href='DATA://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'DAV'", +"input": "<base href='DAV://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'OPAQUELOCKTOKEN'", +"input": "<base href='OPAQUELOCKTOKEN://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'SIP'", +"input": "<base href='SIP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'SIPS'", +"input": "<base href='SIPS://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'TEL'", +"input": "<base href='TEL://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'FAX'", +"input": "<base href='FAX://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'MODEM'", +"input": "<base href='MODEM://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'LDAP'", +"input": "<base href='LDAP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'HTTPS'", +"input": "<base href='HTTPS://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'SOAP.BEEP'", +"input": "<base href='SOAP.BEEP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'SOAP.BEEPS'", +"input": "<base href='SOAP.BEEPS://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'XMLRPC.BEEP'", +"input": "<base href='XMLRPC.BEEP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'XMLRPC.BEEPS'", +"input": "<base href='XMLRPC.BEEPS://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'URN'", +"input": "<base href='URN://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'GO'", +"input": "<base href='GO://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'H323'", +"input": "<base href='H323://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'IPP'", +"input": "<base href='IPP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'TFTP'", +"input": "<base href='TFTP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'MUPDATE'", +"input": "<base href='MUPDATE://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'PRES'", +"input": "<base href='PRES://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'IM'", +"input": "<base href='IM://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'MTQP'", +"input": "<base href='MTQP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'IRIS.BEEP'", +"input": "<base href='IRIS.BEEP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'DICT'", +"input": "<base href='DICT://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'SNMP'", +"input": "<base href='SNMP://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'CRID'", +"input": "<base href='CRID://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'TAG'", +"input": "<base href='TAG://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'DNS'", +"input": "<base href='DNS://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'INFO'", +"input": "<base href='INFO://foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'JAVASCRIPT'", +"input": "<base href='JAVASCRIPT:foo'", +"fail-if": "invalid-scheme"}, + +{"description": "base href contains valid URI scheme 'foo'", +"input": "<base href='foo:bar'", +"fail-unless": "invalid-scheme"}, + +{"description": "base href contains valid URI 'g'", +"input": "<base href='g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI './g'", +"input": "<base href='./g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g/'", +"input": "<base href='g/'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '/g'", +"input": "<base href='/g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '//g'", +"input": "<base href='//g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '?y'", +"input": "<base href='?y'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g?y'", +"input": "<base href='g?y'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '#s'", +"input": "<base href='#s'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g#s'", +"input": "<base href='g#s'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g?y#s'", +"input": "<base href='g?y#s'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI ';x'", +"input": "<base href=';x'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g;x'", +"input": "<base href='g;x'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g;x?y#s'", +"input": "<base href='g;x?y#s'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '.'", +"input": "<base href='.'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI './'", +"input": "<base href='./'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '..'", +"input": "<base href='..'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '../'", +"input": "<base href='../'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '../g'", +"input": "<base href='../g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '../..'", +"input": "<base href='../..'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '../../'", +"input": "<base href='../../'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '../../g'", +"input": "<base href='../../g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '../../../g'", +"input": "<base href='../../../g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '../../../../g'", +"input": "<base href='../../../../g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '/./g'", +"input": "<base href='/./g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '/../g'", +"input": "<base href='/../g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g.'", +"input": "<base href='g.'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '.g'", +"input": "<base href='.g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g..'", +"input": "<base href='g..'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI '..g'", +"input": "<base href='..g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI './../g'", +"input": "<base href='./../g'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI './g/.'", +"input": "<base href='./g/.'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g/./h'", +"input": "<base href='g/./h'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g/../h'", +"input": "<base href='g/../h'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g;x=1/./y'", +"input": "<base href='g;x=1/./y'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g;x=1/../y'", +"input": "<base href='g;x=1/../y'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g?y/./x'", +"input": "<base href='g?y/./x'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g?y/../x'", +"input": "<base href='g?y/../x'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g#s/./x'", +"input": "<base href='g#s/./x'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'g#s/../x'", +"input": "<base href='g#s/../x'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI './g:h'", +"input": "<base href='./g:h'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://www.w%33.org'", +"input": "<base href='http://www.w%33.org'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'", +"input": "<base href='http://r%C3%A4ksm%C3%B6rg%C3%A5s.josefsson.org'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://xn--rksmrgs-5wao1o.josefsson.org'", +"input": "<base href='http://xn--rksmrgs-5wao1o.josefsson.org'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'", +"input": "<base href='http://%E7%B4%8D%E8%B1%86.w3.mag.keio.ac.jp'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://xn--99zt52a.w3.mag.keio.ac.jp'", +"input": "<base href='http://xn--99zt52a.w3.mag.keio.ac.jp'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'", +"input": "<base href='http://www.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'", +"input": "<base href='http://www.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'", +"input": "<base href='http://%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.%E3%81%BB%E3%82%93%E3%81%A8%E3%81%86%E3%81%AB%E3%81%AA%E3%81%8C%E3%81%84%E3%82%8F%E3%81%91%E3%81%AE%E3%82%8F%E3%81%8B%E3%82%89%E3%81%AA%E3%81%84%E3%81%A9%E3%82%81%E3%81%84%E3%82%93%E3%82%81%E3%81%84%E3%81%AE%E3%82%89%E3%81%B9%E3%82%8B%E3%81%BE%E3%81%A0%E3%81%AA%E3%81%8C%E3%81%8F%E3%81%97%E3%81%AA%E3%81%84%E3%81%A8%E3%81%9F%E3%82%8A%E3%81%AA%E3%81%84.w3.mag.keio.ac.jp/'", +"fail-if": "invalid-attribute-value"}, + +{"description": "base href contains valid URI 'http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'", +"input": "<base href='http://xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.xn--n8jaaaaai5bhf7as8fsfk3jnknefdde3fg11amb5gzdb4wi9bya3kc6lra.w3.mag.keio.ac.jp/'", +"fail-if": "invalid-attribute-value"} + +]} diff --git a/test/data/validator/base-target-attribute.test b/test/data/validator/base-target-attribute.test new file mode 100755 index 0000000..6d4db20 --- /dev/null +++ b/test/data/validator/base-target-attribute.test @@ -0,0 +1,35 @@ +{"tests": [ + +{"description": "valid base target attribute '_self'", +"input": "<base target=_self>", +"fail-if": "invalid-browsing-context"}, + +{"description": "valid base target attribute '_parent'", +"input": "<base target=_parent>", +"fail-if": "invalid-browsing-context"}, + +{"description": "valid base target attribute '_top'", +"input": "<base target=_top>", +"fail-if": "invalid-browsing-context"}, + +{"description": "valid base target attribute '_blank'", +"input": "<base target=_blank>", +"fail-if": "invalid-browsing-context"}, + +{"description": "valid base target attribute 'foo'", +"input": "<base target=foo>", +"fail-if": "invalid-browsing-context"}, + +{"description": "base target attribute may be blank", +"input": "<base target>", +"fail-if": "invalid-browsing-context"}, + +{"description": "invalid base target attribute '_'", +"input": "<base target=_>", +"fail-unless": "invalid-browsing-context"}, + +{"description": "invalid base target attribute '_foo'", +"input": "<base target=_foo>", +"fail-unless": "invalid-browsing-context"} + +]}
\ No newline at end of file diff --git a/test/data/validator/blockquote-cite-attribute.test b/test/data/validator/blockquote-cite-attribute.test new file mode 100755 index 0000000..153c6e6 --- /dev/null +++ b/test/data/validator/blockquote-cite-attribute.test @@ -0,0 +1,7 @@ +{"tests": [ + +{"description": "blockquote cite contains invalid URI due to space in domain", +"input": "<blockquote cite='http://www.example. com/'", +"fail-unless": "invalid-uri-char"} + +]}
\ No newline at end of file diff --git a/test/data/validator/classattribute.test b/test/data/validator/classattribute.test new file mode 100755 index 0000000..0fe703f --- /dev/null +++ b/test/data/validator/classattribute.test @@ -0,0 +1,152 @@ +{"tests": [ + +{"description": "valid single class attribute value", +"input": "<span class=a>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading space", +"input": "<span class=' a'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with trailing space", +"input": "<span class='a '>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading and trailing space", +"input": "<span class=' a '>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading tab", +"input": "<span class='\ta'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with trailing tab", +"input": "<span class='a\t'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading and trailing tab", +"input": "<span class='\ta\t'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading LF", +"input": "<span class='\na'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with trailing LF", +"input": "<span class='a\n'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading and trailing LF", +"input": "<span class='\na\n'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading LT", +"input": "<span class='\u000Ba'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with trailing LT", +"input": "<span class='a\u000B'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading and trailing LT", +"input": "<span class='\u000Ba\u000B'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading FF", +"input": "<span class='\u000Ca'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with trailing FF", +"input": "<span class='a\u000C'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading and trailing FF", +"input": "<span class='\u000Ca\u000C'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading CR", +"input": "<span class='\ra'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with trailing CR", +"input": "<span class='a\r'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid single class attribute value with leading and trailing CR", +"input": "<span class='\ra\r'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid double class attribute value separated by space", +"input": "<span class='a b'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid double class attribute value separated by tab", +"input": "<span class='a\tb'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid double class attribute value separated by LF", +"input": "<span class='a\nb'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid double class attribute value separated by LT", +"input": "<span class='a\u000Bb'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid double class attribute value separated by FF", +"input": "<span class='a\u000Cb'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid double class attribute value separated by CR", +"input": "<span class='a\rb'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "invalid duplicated class attribute value separated by space", +"input": "<span class='a a'>", +"fail-unless": "invalid-attribute-value"}, + +{"description": "invalid duplicated class attribute value separated by tab", +"input": "<span class='a\ta'>", +"fail-unless": "invalid-attribute-value"}, + +{"description": "invalid duplicated class attribute value separated by LF", +"input": "<span class='a\na'>", +"fail-unless": "invalid-attribute-value"}, + +{"description": "invalid duplicated class attribute value separated by LT", +"input": "<span class='a\u000Ba'>", +"fail-unless": "invalid-attribute-value"}, + +{"description": "invalid duplicated class attribute value separated by FF", +"input": "<span class='a\u000Ca'>", +"fail-unless": "invalid-attribute-value"}, + +{"description": "invalid duplicated class attribute value separated by CR", +"input": "<span class='a\ra'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated class attribute value separated by space", +"input": "<span class='a a'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated class attribute value separated by tab", +"input": "<span class='a\ta'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated class attribute value separated by LF", +"input": "<span class='a\na'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated class attribute value separated by LT", +"input": "<span class='a\u000Ba'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated class attribute value separated by FF", +"input": "<span class='a\u000Ca'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated class attribute value separated by CR", +"input": "<span class='a\ra'>", +"fail-unless": "duplicate-value-in-token-list"} + +]} + diff --git a/test/data/validator/contenteditableattribute.test b/test/data/validator/contenteditableattribute.test new file mode 100755 index 0000000..b6ae1d2 --- /dev/null +++ b/test/data/validator/contenteditableattribute.test @@ -0,0 +1,59 @@ +{"tests": [ + +{"description": "valid contenteditable attribute value 'true'", +"input": "<span contenteditable=true>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid contenteditable attribute value 'TRUE'", +"input": "<span contenteditable=TRUE>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid contenteditable attribute value 'TrUe'", +"input": "<span contenteditable=TrUe>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid contenteditable attribute value 'false'", +"input": "<span contenteditable=false>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid contenteditable attribute value 'FALSE'", +"input": "<span contenteditable=FALSE>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid contenteditable attribute value 'FalSe'", +"input": "<span contenteditable=FalSe>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid contenteditable attribute value ''", +"input": "<span contenteditable=''>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid contenteditable attribute value (not specified)", +"input": "<span contenteditable>", +"fail-if": "invalid-attribute-value"}, + +{"description": "invalid contenteditable attribute value 'foo'", +"input": "<span contenteditable=foo>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid contenteditable attribute value '0'", +"input": "<span contenteditable=0>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid contenteditable attribute value '1'", +"input": "<span contenteditable=1>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid contenteditable attribute value 'yes'", +"input": "<span contenteditable=yes>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid contenteditable attribute value 'no'", +"input": "<span contenteditable=no>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid contenteditable attribute value 'inherit'", +"input": "<span contenteditable=inherit>", +"fail-unless": "invalid-enumerated-value"} + +]}
\ No newline at end of file diff --git a/test/data/validator/contextmenuattribute.test b/test/data/validator/contextmenuattribute.test new file mode 100755 index 0000000..59e4397 --- /dev/null +++ b/test/data/validator/contextmenuattribute.test @@ -0,0 +1,115 @@ +{"tests": [ + +{"description": "contextmenu points to valid ID earlier", +"input": "<menu id=a><span contextmenu=a>", +"fail-if": "id-does-not-exist"}, + +{"description": "contextmenu points to valid ID later", +"input": "<span contextmenu=a><menu id=a>", +"fail-if": "id-does-not-exist"}, + +{"description": "contextmenu points to non-existent ID", +"input": "<span contextmenu=a>", +"fail-unless": "id-does-not-exist"}, + +{"description": "contextmenu points to ID on non-menu element", +"input": "<span id=a><span contextmenu=a>", +"fail-unless": "contextmenu-must-point-to-menu"}, + +{"description": "uppercase contextmenu points to ID on non-menu element", +"input": "<span id=a><span CONTEXTMENU=a>", +"fail-unless": "contextmenu-must-point-to-menu"}, + +{"description": "valid ID 'a'", +"input": "<span contextmenu=a>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid ID '1'", +"input": "<span contextmenu=1>", +"fail-if": "invalid-attribute-value"}, + +{"description": "wacky but valid ID", +"input": "<span contextmenu='<html><head><title>a</title></head><body><p>b</p></body></html>'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "invalid blank ID", +"input": "<span id>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "invalid blank ID with quotes", +"input": "<span contextmenu=''>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "invalid ID because of leading space", +"input": "<span contextmenu=' a'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing space", +"input": "<span contextmenu='a '>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of space in value", +"input": "<span contextmenu='a b'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading tab", +"input": "<span contextmenu='\ta'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing tab", +"input": "<span contextmenu='a\t'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of tab in value", +"input": "<span contextmenu='a\tb'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading LF", +"input": "<span contextmenu='\na'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing LF", +"input": "<span contextmenu='a\n'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of LF in value", +"input": "<span contextmenu='a\nb'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading LT", +"input": "<span contextmenu='\u000Ba'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing LT", +"input": "<span contextmenu='a\u000B'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of LT in value", +"input": "<span contextmenu='a\u000Bb'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading FF", +"input": "<span contextmenu='\u000Ca'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing FF", +"input": "<span contextmenu='a\u000C'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of FF in value", +"input": "<span contextmenu='a\u000Cb'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading CR", +"input": "<span contextmenu='\ra'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing CR", +"input": "<span contextmenu='a\r'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of CR in value", +"input": "<span contextmenu='a\rb'>", +"fail-unless": "space-in-id"} + +]} diff --git a/test/data/validator/dirattribute.test b/test/data/validator/dirattribute.test new file mode 100755 index 0000000..71883dc --- /dev/null +++ b/test/data/validator/dirattribute.test @@ -0,0 +1,59 @@ +{"tests": [ + +{"description": "valid dir attribute value 'ltr'", +"input": "<span dir=ltr>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid dir attribute value 'LTR'", +"input": "<span dir=LTR>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid dir attribute value 'LtR'", +"input": "<span dir=LtR>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid dir attribute value 'rtl'", +"input": "<span dir=rtl>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid dir attribute value 'RTL'", +"input": "<span dir=RTL>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid dir attribute value 'RtL'", +"input": "<span dir=RtL>", +"fail-if": "invalid-attribute-value"}, + +{"description": "invalid dir attribute value due to leading space", +"input": "<span dir=' ltr'>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "dir attribute value can not be blank", +"input": "<span dir>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "dir attribute value can not be blank (with quotes)", +"input": "<span dir=''>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "invalid dir attribute value 'left'", +"input": "<span dir=left>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid dir attribute value 'right'", +"input": "<span dir=right>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid dir attribute value 'lefttoright'", +"input": "<span dir=lefttoright>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid dir attribute value 'righttoleft'", +"input": "<span dir=righttoleft>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid dir attribute value 'inherit'", +"input": "<span dir=inherit>", +"fail-unless": "invalid-enumerated-value"} + +]}
\ No newline at end of file diff --git a/test/data/validator/draggableattribute.test b/test/data/validator/draggableattribute.test new file mode 100755 index 0000000..49e692d --- /dev/null +++ b/test/data/validator/draggableattribute.test @@ -0,0 +1,63 @@ +{"tests": [ + +{"description": "valid draggable attribute value 'true'", +"input": "<span draggable=true>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid draggable attribute value 'TRUE'", +"input": "<span draggable=TRUE>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid draggable attribute value 'TrUe'", +"input": "<span draggable=TrUe>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid draggable attribute value 'false'", +"input": "<span draggable=false>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid draggable attribute value 'FALSE'", +"input": "<span draggable=FALSE>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid draggable attribute value 'FalSe'", +"input": "<span draggable=FalSe>", +"fail-if": "invalid-attribute-value"}, + +{"description": "invalid draggable attribute value ''", +"input": "<span draggable=''>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "valid draggable attribute value (not specified)", +"input": "<span draggable>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "invalid draggable attribute value 'foo'", +"input": "<span draggable=foo>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid draggable attribute value '0'", +"input": "<span draggable=0>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid draggable attribute value '1'", +"input": "<span draggable=1>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid draggable attribute value 'yes'", +"input": "<span draggable=yes>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid draggable attribute value 'no'", +"input": "<span draggable=no>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid draggable attribute value 'auto'", +"input": "<span draggable=auto>", +"fail-unless": "invalid-enumerated-value"}, + +{"description": "invalid draggable attribute value 'inherit'", +"input": "<span draggable=inherit>", +"fail-unless": "invalid-enumerated-value"} + +]}
\ No newline at end of file diff --git a/test/data/validator/html-xmlns-attribute.test b/test/data/validator/html-xmlns-attribute.test new file mode 100755 index 0000000..2ebd19e --- /dev/null +++ b/test/data/validator/html-xmlns-attribute.test @@ -0,0 +1,23 @@ +{"tests": [ + +{"description": "valid html xmlns attribute", +"input": "<html xmlns=http://www.w3.org/1999/xhtml>", +"fail-if": "invalid-root-namespace"}, + +{"description": "invalid html xmlns attribute due to leading space", +"input": "<html xmlns=' http://www.w3.org/1999/xhtml'>", +"fail-unless": "invalid-root-namespace"}, + +{"description": "invalid html xmlns attribute due to trailing space", +"input": "<html xmlns='http://www.w3.org/1999/xhtml '>", +"fail-unless": "invalid-root-namespace"}, + +{"description": "invalid html xmlns attribute due to uppercase", +"input": "<html xmlns=HTTP://WWW.W3.ORG/1999/XHTML>", +"fail-unless": "invalid-root-namespace"}, + +{"description": "invalid xmlns attribute on non-html element", +"input": "<body xmlns=http://www.w3.org/1999/xhtml>", +"fail-unless": "unknown-attribute"} + +]}
\ No newline at end of file diff --git a/test/data/validator/idattribute.test b/test/data/validator/idattribute.test new file mode 100755 index 0000000..4058d52 --- /dev/null +++ b/test/data/validator/idattribute.test @@ -0,0 +1,115 @@ +{"tests": [ + +{"description": "valid ID 'a'", +"input": "<span id=a>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid ID '1'", +"input": "<span id=1>", +"fail-if": "invalid-attribute-value"}, + +{"description": "wacky but valid ID", +"input": "<span id='<html><head><title>a</title></head><body><p>b</p></body></html>'>", +"fail-if": "invalid-attribute-value"}, + +{"description": "invalid blank ID", +"input": "<span id>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "invalid blank ID with quotes", +"input": "<span id=''>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "invalid ID because of leading space", +"input": "<span id=' a'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing space", +"input": "<span id='a '>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of space in value", +"input": "<span id='a b'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading tab", +"input": "<span id='\ta'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing tab", +"input": "<span id='a\t'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of tab in value", +"input": "<span id='a\tb'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading LF", +"input": "<span id='\na'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing LF", +"input": "<span id='a\n'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of LF in value", +"input": "<span id='a\nb'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading LT", +"input": "<span id='\u000Ba'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing LT", +"input": "<span id='a\u000B'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of LT in value", +"input": "<span id='a\u000Bb'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading FF", +"input": "<span id='\u000Ca'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing FF", +"input": "<span id='a\u000C'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of FF in value", +"input": "<span id='a\u000Cb'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of leading CR", +"input": "<span id='\ra'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of trailing CR", +"input": "<span id='a\r'>", +"fail-unless": "space-in-id"}, + +{"description": "invalid ID because of CR in value", +"input": "<span id='a\rb'>", +"fail-unless": "space-in-id"}, + +{"description": "duplicate ID values", +"input": "<span id=a><span id=a>", +"fail-unless": "duplicate-id"}, + +{"description": "duplicate ID values with spaces (weird but true)", +"input": "<span id='a '><span id='a '>", +"fail-unless": "duplicate-id"}, + +{"description": "not duplicate ID values because spaces don't match", +"input": "<span id=a><span id='a '>", +"fail-if": "duplicate-id"}, + +{"description": "not duplicate ID values because spaces don't match", +"input": "<span id=' a'><span id='a '>", +"fail-if": "duplicate-id"}, + +{"description": "not duplicate ID values because case doesn't match", +"input": "<span id=a><span id=A>", +"fail-if": "duplicate-id"} + +]} diff --git a/test/data/validator/inputattributes.test b/test/data/validator/inputattributes.test new file mode 100755 index 0000000..acdc50e --- /dev/null +++ b/test/data/validator/inputattributes.test @@ -0,0 +1,2795 @@ +{"tests": [ + +{"description": "'size' attribute deprecated on <input type='text'>", +"input": "<input type=text size>", +"fail-unless": "deprecated-attribute"}, + +{"description": "'size' attribute deprecated on <input type='password'>", +"input": "<input type=password size>", +"fail-unless": "deprecated-attribute"}, + +{"description": "allowed 'accesskey' attribute on <input type='checkbox'>", +"input": "<input type=checkbox accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='checkbox'>", +"input": "<input type=checkbox disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'checked' attribute on <input type='checkbox'>", +"input": "<input type=checkbox checked>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='checkbox'>", +"input": "<input type=checkbox autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='checkbox'>", +"input": "<input type=checkbox form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='checkbox'>", +"input": "<input type=checkbox name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='checkbox'>", +"input": "<input type=checkbox required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='checkbox'>", +"input": "<input type=checkbox value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='checkbox'>", +"input": "<input type=checkbox action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='checkbox'>", +"input": "<input type=checkbox tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='text'>", +"input": "<input type=text accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='text'>", +"input": "<input type=text accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='text'>", +"input": "<input type=text replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='text'>", +"input": "<input type=text disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='text'>", +"input": "<input type=text alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'size' attribute on <input type='text'>", +"input": "<input type=text size>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='text'>", +"input": "<input type=text checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='text'>", +"input": "<input type=text min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'pattern' attribute on <input type='text'>", +"input": "<input type=text pattern>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='text'>", +"input": "<input type=text readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='text'>", +"input": "<input type=text template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='text'>", +"input": "<input type=text autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='text'>", +"input": "<input type=text target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='text'>", +"input": "<input type=text method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='text'>", +"input": "<input type=text form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='text'>", +"input": "<input type=text max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='text'>", +"input": "<input type=text step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='text'>", +"input": "<input type=text enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='text'>", +"input": "<input type=text src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='text'>", +"input": "<input type=text name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='text'>", +"input": "<input type=text required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='text'>", +"input": "<input type=text list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='text'>", +"input": "<input type=text value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='text'>", +"input": "<input type=text autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'inputmode' attribute on <input type='text'>", +"input": "<input type=text inputmode>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'maxlength' attribute on <input type='text'>", +"input": "<input type=text maxlength>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='text'>", +"input": "<input type=text action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='text'>", +"input": "<input type=text tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='image'>", +"input": "<input type=image accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='image'>", +"input": "<input type=image accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'replace' attribute on <input type='image'>", +"input": "<input type=image replace>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='image'>", +"input": "<input type=image disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'alt' attribute on <input type='image'>", +"input": "<input type=image alt>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='image'>", +"input": "<input type=image size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='image'>", +"input": "<input type=image checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='image'>", +"input": "<input type=image min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='image'>", +"input": "<input type=image pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='image'>", +"input": "<input type=image readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='image'>", +"input": "<input type=image template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='image'>", +"input": "<input type=image autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'target' attribute on <input type='image'>", +"input": "<input type=image target>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'method' attribute on <input type='image'>", +"input": "<input type=image method>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='image'>", +"input": "<input type=image form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='image'>", +"input": "<input type=image max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='image'>", +"input": "<input type=image step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'enctype' attribute on <input type='image'>", +"input": "<input type=image enctype>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'src' attribute on <input type='image'>", +"input": "<input type=image src>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='image'>", +"input": "<input type=image name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='image'>", +"input": "<input type=image required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='image'>", +"input": "<input type=image list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'value' attribute not allowed on <input type='image'>", +"input": "<input type=image value>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='image'>", +"input": "<input type=image autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='image'>", +"input": "<input type=image inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='image'>", +"input": "<input type=image maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'action' attribute on <input type='image'>", +"input": "<input type=image action>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='image'>", +"input": "<input type=image tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='number'>", +"input": "<input type=number accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='number'>", +"input": "<input type=number accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='number'>", +"input": "<input type=number replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='number'>", +"input": "<input type=number disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='number'>", +"input": "<input type=number alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='number'>", +"input": "<input type=number size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='number'>", +"input": "<input type=number checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='number'>", +"input": "<input type=number min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='number'>", +"input": "<input type=number pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='number'>", +"input": "<input type=number readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='number'>", +"input": "<input type=number template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='number'>", +"input": "<input type=number autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='number'>", +"input": "<input type=number target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='number'>", +"input": "<input type=number method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='number'>", +"input": "<input type=number form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='number'>", +"input": "<input type=number max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'step' attribute on <input type='number'>", +"input": "<input type=number step>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='number'>", +"input": "<input type=number enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='number'>", +"input": "<input type=number src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='number'>", +"input": "<input type=number name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='number'>", +"input": "<input type=number required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='number'>", +"input": "<input type=number list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='number'>", +"input": "<input type=number value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='number'>", +"input": "<input type=number autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='number'>", +"input": "<input type=number inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='number'>", +"input": "<input type=number maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='number'>", +"input": "<input type=number action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='number'>", +"input": "<input type=number tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='month'>", +"input": "<input type=month accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='month'>", +"input": "<input type=month accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='month'>", +"input": "<input type=month replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='month'>", +"input": "<input type=month disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='month'>", +"input": "<input type=month alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='month'>", +"input": "<input type=month size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='month'>", +"input": "<input type=month checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='month'>", +"input": "<input type=month min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='month'>", +"input": "<input type=month pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='month'>", +"input": "<input type=month readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='month'>", +"input": "<input type=month template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='month'>", +"input": "<input type=month autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='month'>", +"input": "<input type=month target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='month'>", +"input": "<input type=month method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='month'>", +"input": "<input type=month form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='month'>", +"input": "<input type=month max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'step' attribute on <input type='month'>", +"input": "<input type=month step>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='month'>", +"input": "<input type=month enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='month'>", +"input": "<input type=month src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='month'>", +"input": "<input type=month name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='month'>", +"input": "<input type=month required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='month'>", +"input": "<input type=month list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='month'>", +"input": "<input type=month value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='month'>", +"input": "<input type=month autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='month'>", +"input": "<input type=month inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='month'>", +"input": "<input type=month maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='month'>", +"input": "<input type=month action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='month'>", +"input": "<input type=month tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='radio'>", +"input": "<input type=radio accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='radio'>", +"input": "<input type=radio accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='radio'>", +"input": "<input type=radio replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='radio'>", +"input": "<input type=radio disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='radio'>", +"input": "<input type=radio alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='radio'>", +"input": "<input type=radio size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'checked' attribute on <input type='radio'>", +"input": "<input type=radio checked>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='radio'>", +"input": "<input type=radio min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='radio'>", +"input": "<input type=radio pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='radio'>", +"input": "<input type=radio readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='radio'>", +"input": "<input type=radio template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='radio'>", +"input": "<input type=radio autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='radio'>", +"input": "<input type=radio target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='radio'>", +"input": "<input type=radio method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='radio'>", +"input": "<input type=radio form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='radio'>", +"input": "<input type=radio max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='radio'>", +"input": "<input type=radio step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='radio'>", +"input": "<input type=radio enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='radio'>", +"input": "<input type=radio src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='radio'>", +"input": "<input type=radio name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='radio'>", +"input": "<input type=radio required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='radio'>", +"input": "<input type=radio list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='radio'>", +"input": "<input type=radio value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='radio'>", +"input": "<input type=radio autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='radio'>", +"input": "<input type=radio inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='radio'>", +"input": "<input type=radio maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='radio'>", +"input": "<input type=radio action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='radio'>", +"input": "<input type=radio tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='file'>", +"input": "<input type=file accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accept' attribute on <input type='file'>", +"input": "<input type=file accept>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='file'>", +"input": "<input type=file replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='file'>", +"input": "<input type=file disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='file'>", +"input": "<input type=file alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='file'>", +"input": "<input type=file size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='file'>", +"input": "<input type=file checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='file'>", +"input": "<input type=file min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='file'>", +"input": "<input type=file pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='file'>", +"input": "<input type=file readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='file'>", +"input": "<input type=file template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='file'>", +"input": "<input type=file autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='file'>", +"input": "<input type=file target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='file'>", +"input": "<input type=file method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='file'>", +"input": "<input type=file form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='file'>", +"input": "<input type=file max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='file'>", +"input": "<input type=file step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='file'>", +"input": "<input type=file enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='file'>", +"input": "<input type=file src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='file'>", +"input": "<input type=file name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='file'>", +"input": "<input type=file required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='file'>", +"input": "<input type=file list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'value' attribute not allowed on <input type='file'>", +"input": "<input type=file value>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='file'>", +"input": "<input type=file autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='file'>", +"input": "<input type=file inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='file'>", +"input": "<input type=file maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='file'>", +"input": "<input type=file action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='file'>", +"input": "<input type=file tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='password'>", +"input": "<input type=password accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='password'>", +"input": "<input type=password accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='password'>", +"input": "<input type=password replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='password'>", +"input": "<input type=password disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='password'>", +"input": "<input type=password alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'size' attribute on <input type='password'>", +"input": "<input type=password size>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='password'>", +"input": "<input type=password checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='password'>", +"input": "<input type=password min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'pattern' attribute on <input type='password'>", +"input": "<input type=password pattern>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='password'>", +"input": "<input type=password readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='password'>", +"input": "<input type=password template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='password'>", +"input": "<input type=password autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='password'>", +"input": "<input type=password target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='password'>", +"input": "<input type=password method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='password'>", +"input": "<input type=password form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='password'>", +"input": "<input type=password max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='password'>", +"input": "<input type=password step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='password'>", +"input": "<input type=password enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='password'>", +"input": "<input type=password src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='password'>", +"input": "<input type=password name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='password'>", +"input": "<input type=password required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='password'>", +"input": "<input type=password list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='password'>", +"input": "<input type=password value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='password'>", +"input": "<input type=password autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'inputmode' attribute on <input type='password'>", +"input": "<input type=password inputmode>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'maxlength' attribute on <input type='password'>", +"input": "<input type=password maxlength>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='password'>", +"input": "<input type=password action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='password'>", +"input": "<input type=password tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='move-up'>", +"input": "<input type=move-up accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='move-up'>", +"input": "<input type=move-up disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='move-up'>", +"input": "<input type=move-up autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='move-up'>", +"input": "<input type=move-up form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='move-up'>", +"input": "<input type=move-up name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='move-up'>", +"input": "<input type=move-up value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='move-up'>", +"input": "<input type=move-up action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='move-up'>", +"input": "<input type=move-up tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='submit'>", +"input": "<input type=submit accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='submit'>", +"input": "<input type=submit accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'replace' attribute on <input type='submit'>", +"input": "<input type=submit replace>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='submit'>", +"input": "<input type=submit disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='submit'>", +"input": "<input type=submit alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='submit'>", +"input": "<input type=submit size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='submit'>", +"input": "<input type=submit checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='submit'>", +"input": "<input type=submit min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='submit'>", +"input": "<input type=submit pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='submit'>", +"input": "<input type=submit readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='submit'>", +"input": "<input type=submit template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='submit'>", +"input": "<input type=submit autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'target' attribute on <input type='submit'>", +"input": "<input type=submit target>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'method' attribute on <input type='submit'>", +"input": "<input type=submit method>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='submit'>", +"input": "<input type=submit form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='submit'>", +"input": "<input type=submit max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='submit'>", +"input": "<input type=submit step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'enctype' attribute on <input type='submit'>", +"input": "<input type=submit enctype>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='submit'>", +"input": "<input type=submit src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='submit'>", +"input": "<input type=submit name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='submit'>", +"input": "<input type=submit required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='submit'>", +"input": "<input type=submit list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='submit'>", +"input": "<input type=submit value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='submit'>", +"input": "<input type=submit autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='submit'>", +"input": "<input type=submit inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='submit'>", +"input": "<input type=submit maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'action' attribute on <input type='submit'>", +"input": "<input type=submit action>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='submit'>", +"input": "<input type=submit tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='add'>", +"input": "<input type=add accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='add'>", +"input": "<input type=add accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='add'>", +"input": "<input type=add replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='add'>", +"input": "<input type=add disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='add'>", +"input": "<input type=add alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='add'>", +"input": "<input type=add size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='add'>", +"input": "<input type=add checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='add'>", +"input": "<input type=add min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='add'>", +"input": "<input type=add pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='add'>", +"input": "<input type=add readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'template' attribute on <input type='add'>", +"input": "<input type=add template>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='add'>", +"input": "<input type=add autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='add'>", +"input": "<input type=add target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='add'>", +"input": "<input type=add method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='add'>", +"input": "<input type=add form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='add'>", +"input": "<input type=add max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='add'>", +"input": "<input type=add step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='add'>", +"input": "<input type=add enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='add'>", +"input": "<input type=add src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='add'>", +"input": "<input type=add name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='add'>", +"input": "<input type=add required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='add'>", +"input": "<input type=add list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='add'>", +"input": "<input type=add value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='add'>", +"input": "<input type=add autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='add'>", +"input": "<input type=add inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='add'>", +"input": "<input type=add maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='add'>", +"input": "<input type=add action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='add'>", +"input": "<input type=add tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accesskey' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden accesskey>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='hidden'>", +"input": "<input type=hidden disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autofocus' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden autofocus>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='hidden'>", +"input": "<input type=hidden form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='hidden'>", +"input": "<input type=hidden name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='hidden'>", +"input": "<input type=hidden value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'tabindex' attribute not allowed on <input type='hidden'>", +"input": "<input type=hidden tabindex>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='email'>", +"input": "<input type=email accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='email'>", +"input": "<input type=email accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='email'>", +"input": "<input type=email replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='email'>", +"input": "<input type=email disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='email'>", +"input": "<input type=email alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='email'>", +"input": "<input type=email size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='email'>", +"input": "<input type=email checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='email'>", +"input": "<input type=email min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'pattern' attribute on <input type='email'>", +"input": "<input type=email pattern>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='email'>", +"input": "<input type=email readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='email'>", +"input": "<input type=email template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='email'>", +"input": "<input type=email autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='email'>", +"input": "<input type=email target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='email'>", +"input": "<input type=email method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='email'>", +"input": "<input type=email form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='email'>", +"input": "<input type=email max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='email'>", +"input": "<input type=email step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='email'>", +"input": "<input type=email enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='email'>", +"input": "<input type=email src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='email'>", +"input": "<input type=email name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='email'>", +"input": "<input type=email required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='email'>", +"input": "<input type=email list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='email'>", +"input": "<input type=email value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='email'>", +"input": "<input type=email autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'inputmode' attribute on <input type='email'>", +"input": "<input type=email inputmode>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'maxlength' attribute on <input type='email'>", +"input": "<input type=email maxlength>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='email'>", +"input": "<input type=email action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='email'>", +"input": "<input type=email tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='week'>", +"input": "<input type=week accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='week'>", +"input": "<input type=week accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='week'>", +"input": "<input type=week replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='week'>", +"input": "<input type=week disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='week'>", +"input": "<input type=week alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='week'>", +"input": "<input type=week size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='week'>", +"input": "<input type=week checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='week'>", +"input": "<input type=week min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='week'>", +"input": "<input type=week pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='week'>", +"input": "<input type=week readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='week'>", +"input": "<input type=week template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='week'>", +"input": "<input type=week autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='week'>", +"input": "<input type=week target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='week'>", +"input": "<input type=week method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='week'>", +"input": "<input type=week form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='week'>", +"input": "<input type=week max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'step' attribute on <input type='week'>", +"input": "<input type=week step>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='week'>", +"input": "<input type=week enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='week'>", +"input": "<input type=week src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='week'>", +"input": "<input type=week name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='week'>", +"input": "<input type=week required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='week'>", +"input": "<input type=week list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='week'>", +"input": "<input type=week value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='week'>", +"input": "<input type=week autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='week'>", +"input": "<input type=week inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='week'>", +"input": "<input type=week maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='week'>", +"input": "<input type=week action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='week'>", +"input": "<input type=week tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='date'>", +"input": "<input type=date accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='date'>", +"input": "<input type=date accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='date'>", +"input": "<input type=date replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='date'>", +"input": "<input type=date disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='date'>", +"input": "<input type=date alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='date'>", +"input": "<input type=date size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='date'>", +"input": "<input type=date checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='date'>", +"input": "<input type=date min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='date'>", +"input": "<input type=date pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='date'>", +"input": "<input type=date readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='date'>", +"input": "<input type=date template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='date'>", +"input": "<input type=date autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='date'>", +"input": "<input type=date target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='date'>", +"input": "<input type=date method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='date'>", +"input": "<input type=date form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='date'>", +"input": "<input type=date max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'step' attribute on <input type='date'>", +"input": "<input type=date step>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='date'>", +"input": "<input type=date enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='date'>", +"input": "<input type=date src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='date'>", +"input": "<input type=date name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='date'>", +"input": "<input type=date required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='date'>", +"input": "<input type=date list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='date'>", +"input": "<input type=date value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='date'>", +"input": "<input type=date autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='date'>", +"input": "<input type=date inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='date'>", +"input": "<input type=date maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='date'>", +"input": "<input type=date action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='date'>", +"input": "<input type=date tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='datetime'>", +"input": "<input type=datetime accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='datetime'>", +"input": "<input type=datetime disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='datetime'>", +"input": "<input type=datetime min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='datetime'>", +"input": "<input type=datetime readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='datetime'>", +"input": "<input type=datetime autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='datetime'>", +"input": "<input type=datetime form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='datetime'>", +"input": "<input type=datetime max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'step' attribute on <input type='datetime'>", +"input": "<input type=datetime step>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='datetime'>", +"input": "<input type=datetime name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='datetime'>", +"input": "<input type=datetime required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='datetime'>", +"input": "<input type=datetime list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='datetime'>", +"input": "<input type=datetime value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='datetime'>", +"input": "<input type=datetime autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='datetime'>", +"input": "<input type=datetime action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='datetime'>", +"input": "<input type=datetime tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='move-down'>", +"input": "<input type=move-down accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='move-down'>", +"input": "<input type=move-down disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='move-down'>", +"input": "<input type=move-down autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='move-down'>", +"input": "<input type=move-down form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='move-down'>", +"input": "<input type=move-down name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='move-down'>", +"input": "<input type=move-down value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='move-down'>", +"input": "<input type=move-down action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='move-down'>", +"input": "<input type=move-down tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'step' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local step>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='datetime-local'>", +"input": "<input type=datetime-local action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='reset'>", +"input": "<input type=reset accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='reset'>", +"input": "<input type=reset accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='reset'>", +"input": "<input type=reset replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='reset'>", +"input": "<input type=reset disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='reset'>", +"input": "<input type=reset alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='reset'>", +"input": "<input type=reset size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='reset'>", +"input": "<input type=reset checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='reset'>", +"input": "<input type=reset min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='reset'>", +"input": "<input type=reset pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='reset'>", +"input": "<input type=reset readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='reset'>", +"input": "<input type=reset template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='reset'>", +"input": "<input type=reset autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='reset'>", +"input": "<input type=reset target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='reset'>", +"input": "<input type=reset method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='reset'>", +"input": "<input type=reset form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='reset'>", +"input": "<input type=reset max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='reset'>", +"input": "<input type=reset step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='reset'>", +"input": "<input type=reset enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='reset'>", +"input": "<input type=reset src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='reset'>", +"input": "<input type=reset name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='reset'>", +"input": "<input type=reset required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='reset'>", +"input": "<input type=reset list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='reset'>", +"input": "<input type=reset value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='reset'>", +"input": "<input type=reset autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='reset'>", +"input": "<input type=reset inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='reset'>", +"input": "<input type=reset maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='reset'>", +"input": "<input type=reset action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='reset'>", +"input": "<input type=reset tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='url'>", +"input": "<input type=url accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='url'>", +"input": "<input type=url accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='url'>", +"input": "<input type=url replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='url'>", +"input": "<input type=url disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='url'>", +"input": "<input type=url alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='url'>", +"input": "<input type=url size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='url'>", +"input": "<input type=url checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='url'>", +"input": "<input type=url min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'pattern' attribute on <input type='url'>", +"input": "<input type=url pattern>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='url'>", +"input": "<input type=url readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='url'>", +"input": "<input type=url template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='url'>", +"input": "<input type=url autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='url'>", +"input": "<input type=url target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='url'>", +"input": "<input type=url method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='url'>", +"input": "<input type=url form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='url'>", +"input": "<input type=url max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='url'>", +"input": "<input type=url step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='url'>", +"input": "<input type=url enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='url'>", +"input": "<input type=url src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='url'>", +"input": "<input type=url name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='url'>", +"input": "<input type=url required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='url'>", +"input": "<input type=url list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='url'>", +"input": "<input type=url value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='url'>", +"input": "<input type=url autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'inputmode' attribute on <input type='url'>", +"input": "<input type=url inputmode>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'maxlength' attribute on <input type='url'>", +"input": "<input type=url maxlength>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='url'>", +"input": "<input type=url action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='url'>", +"input": "<input type=url tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='button'>", +"input": "<input type=button accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='button'>", +"input": "<input type=button accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='button'>", +"input": "<input type=button replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='button'>", +"input": "<input type=button disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='button'>", +"input": "<input type=button alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='button'>", +"input": "<input type=button size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='button'>", +"input": "<input type=button checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='button'>", +"input": "<input type=button min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='button'>", +"input": "<input type=button pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='button'>", +"input": "<input type=button readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='button'>", +"input": "<input type=button template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='button'>", +"input": "<input type=button autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='button'>", +"input": "<input type=button target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='button'>", +"input": "<input type=button method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='button'>", +"input": "<input type=button form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='button'>", +"input": "<input type=button max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='button'>", +"input": "<input type=button step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='button'>", +"input": "<input type=button enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='button'>", +"input": "<input type=button src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='button'>", +"input": "<input type=button name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='button'>", +"input": "<input type=button required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='button'>", +"input": "<input type=button list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='button'>", +"input": "<input type=button value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='button'>", +"input": "<input type=button autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='button'>", +"input": "<input type=button inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='button'>", +"input": "<input type=button maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='button'>", +"input": "<input type=button action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='button'>", +"input": "<input type=button tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='remove'>", +"input": "<input type=remove accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='remove'>", +"input": "<input type=remove accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='remove'>", +"input": "<input type=remove replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='remove'>", +"input": "<input type=remove disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='remove'>", +"input": "<input type=remove alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='remove'>", +"input": "<input type=remove size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='remove'>", +"input": "<input type=remove checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'min' attribute not allowed on <input type='remove'>", +"input": "<input type=remove min>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='remove'>", +"input": "<input type=remove pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'readonly' attribute not allowed on <input type='remove'>", +"input": "<input type=remove readonly>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='remove'>", +"input": "<input type=remove template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='remove'>", +"input": "<input type=remove autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='remove'>", +"input": "<input type=remove target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='remove'>", +"input": "<input type=remove method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='remove'>", +"input": "<input type=remove form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'max' attribute not allowed on <input type='remove'>", +"input": "<input type=remove max>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'step' attribute not allowed on <input type='remove'>", +"input": "<input type=remove step>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='remove'>", +"input": "<input type=remove enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='remove'>", +"input": "<input type=remove src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='remove'>", +"input": "<input type=remove name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'required' attribute not allowed on <input type='remove'>", +"input": "<input type=remove required>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'list' attribute not allowed on <input type='remove'>", +"input": "<input type=remove list>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='remove'>", +"input": "<input type=remove value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'autocomplete' attribute not allowed on <input type='remove'>", +"input": "<input type=remove autocomplete>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='remove'>", +"input": "<input type=remove inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='remove'>", +"input": "<input type=remove maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='remove'>", +"input": "<input type=remove action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='remove'>", +"input": "<input type=remove tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='range'>", +"input": "<input type=range accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='range'>", +"input": "<input type=range accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='range'>", +"input": "<input type=range replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='range'>", +"input": "<input type=range disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='range'>", +"input": "<input type=range alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='range'>", +"input": "<input type=range size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='range'>", +"input": "<input type=range checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='range'>", +"input": "<input type=range min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='range'>", +"input": "<input type=range pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='range'>", +"input": "<input type=range readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='range'>", +"input": "<input type=range template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='range'>", +"input": "<input type=range autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='range'>", +"input": "<input type=range target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='range'>", +"input": "<input type=range method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='range'>", +"input": "<input type=range form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='range'>", +"input": "<input type=range max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'step' attribute on <input type='range'>", +"input": "<input type=range step>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='range'>", +"input": "<input type=range enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='range'>", +"input": "<input type=range src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='range'>", +"input": "<input type=range name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='range'>", +"input": "<input type=range required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='range'>", +"input": "<input type=range list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='range'>", +"input": "<input type=range value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='range'>", +"input": "<input type=range autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='range'>", +"input": "<input type=range inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='range'>", +"input": "<input type=range maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='range'>", +"input": "<input type=range action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='range'>", +"input": "<input type=range tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'accesskey' attribute on <input type='time'>", +"input": "<input type=time accesskey>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'accept' attribute not allowed on <input type='time'>", +"input": "<input type=time accept>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'replace' attribute not allowed on <input type='time'>", +"input": "<input type=time replace>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'disabled' attribute on <input type='time'>", +"input": "<input type=time disabled>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'alt' attribute not allowed on <input type='time'>", +"input": "<input type=time alt>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'size' attribute not allowed on <input type='time'>", +"input": "<input type=time size>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'checked' attribute not allowed on <input type='time'>", +"input": "<input type=time checked>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'min' attribute on <input type='time'>", +"input": "<input type=time min>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'pattern' attribute not allowed on <input type='time'>", +"input": "<input type=time pattern>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'readonly' attribute on <input type='time'>", +"input": "<input type=time readonly>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'template' attribute not allowed on <input type='time'>", +"input": "<input type=time template>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autofocus' attribute on <input type='time'>", +"input": "<input type=time autofocus>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'target' attribute not allowed on <input type='time'>", +"input": "<input type=time target>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'method' attribute not allowed on <input type='time'>", +"input": "<input type=time method>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'form' attribute on <input type='time'>", +"input": "<input type=time form>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'max' attribute on <input type='time'>", +"input": "<input type=time max>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'step' attribute on <input type='time'>", +"input": "<input type=time step>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'enctype' attribute not allowed on <input type='time'>", +"input": "<input type=time enctype>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'src' attribute not allowed on <input type='time'>", +"input": "<input type=time src>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'name' attribute on <input type='time'>", +"input": "<input type=time name>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'required' attribute on <input type='time'>", +"input": "<input type=time required>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'list' attribute on <input type='time'>", +"input": "<input type=time list>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'value' attribute on <input type='time'>", +"input": "<input type=time value>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'autocomplete' attribute on <input type='time'>", +"input": "<input type=time autocomplete>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'inputmode' attribute not allowed on <input type='time'>", +"input": "<input type=time inputmode>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'maxlength' attribute not allowed on <input type='time'>", +"input": "<input type=time maxlength>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "'action' attribute not allowed on <input type='time'>", +"input": "<input type=time action>", +"fail-unless": "attribute-not-allowed-on-this-input-type"}, + +{"description": "allowed 'tabindex' attribute on <input type='time'>", +"input": "<input type=time tabindex>", +"fail-if": "attribute-not-allowed-on-this-input-type"}, + +{"description": "unknown 'foo' attribute on <input type='checkbox'>", +"input": "<input type=checkbox foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='text'>", +"input": "<input type=text foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='image'>", +"input": "<input type=image foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='number'>", +"input": "<input type=number foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='month'>", +"input": "<input type=month foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='radio'>", +"input": "<input type=radio foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='file'>", +"input": "<input type=file foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='password'>", +"input": "<input type=password foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='move-up'>", +"input": "<input type=move-up foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='submit'>", +"input": "<input type=submit foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='add'>", +"input": "<input type=add foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='hidden'>", +"input": "<input type=hidden foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='email'>", +"input": "<input type=email foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='week'>", +"input": "<input type=week foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='date'>", +"input": "<input type=date foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='datetime'>", +"input": "<input type=datetime foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='move-down'>", +"input": "<input type=move-down foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='datetime-local'>", +"input": "<input type=datetime-local foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='reset'>", +"input": "<input type=reset foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='url'>", +"input": "<input type=url foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='button'>", +"input": "<input type=button foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='remove'>", +"input": "<input type=remove foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='range'>", +"input": "<input type=range foo>", +"fail-unless": "unknown-attribute"}, + +{"description": "unknown 'foo' attribute on <input type='time'>", +"input": "<input type=time foo>", +"fail-unless": "unknown-attribute"} + +]} diff --git a/test/data/validator/irrelevantattribute.test b/test/data/validator/irrelevantattribute.test new file mode 100755 index 0000000..fa40613 --- /dev/null +++ b/test/data/validator/irrelevantattribute.test @@ -0,0 +1,63 @@ +{"tests": [ + +{"description": "valid irrelevant attribute value 'irrelevant'", +"input": "<span irrelevant=irrelevant>", +"fail-if": "invalid-attribute-value"}, + +{"description": "valid irrelevant attribute value ''", +"input": "<span irrelevant=''>", +"fail-if": "invalid-attribute-value"}, + +{"description": "invalid irrelevant attribute value due to uppercase", +"input": "<span irrelevant=IRRELEVANT>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value due to mixed case", +"input": "<span irrelevant=IrReLeVaNt>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value due to leading space", +"input": "<span irrelevant=' irrelevant'>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value due to trailing space", +"input": "<span irrelevant='irrelevant '>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value 'foo'", +"input": "<span irrelevant=foo>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value '0'", +"input": "<span irrelevant=0>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value '1'", +"input": "<span irrelevant=1>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value 'yes'", +"input": "<span irrelevant=yes>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value 'no'", +"input": "<span irrelevant=no>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value 'true'", +"input": "<span irrelevant=true>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value 'false'", +"input": "<span irrelevant=false>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value 'auto'", +"input": "<span irrelevant=auto>", +"fail-unless": "invalid-boolean-value"}, + +{"description": "invalid irrelevant attribute value 'inherit'", +"input": "<span irrelevant=inherit>", +"fail-unless": "invalid-boolean-value"} + +]}
\ No newline at end of file diff --git a/test/data/validator/langattribute.test b/test/data/validator/langattribute.test new file mode 100755 index 0000000..6c831a1 --- /dev/null +++ b/test/data/validator/langattribute.test @@ -0,0 +1,5579 @@ +{"tests": [ + +{"description": "valid lang attribute 'roh'", +"input": "<span lang=roh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gv'", +"input": "<span lang=gv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gu'", +"input": "<span lang=gu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'scn'", +"input": "<span lang=scn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rom'", +"input": "<span lang=rom>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ron'", +"input": "<span lang=ron>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'alg'", +"input": "<span lang=alg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oss'", +"input": "<span lang=oss>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ale'", +"input": "<span lang=ale>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'alb'", +"input": "<span lang=alb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sco'", +"input": "<span lang=sco>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'scc'", +"input": "<span lang=scc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mni'", +"input": "<span lang=mni>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gd'", +"input": "<span lang=gd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'per'", +"input": "<span lang=per>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ga'", +"input": "<span lang=ga>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nwc'", +"input": "<span lang=nwc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'osa'", +"input": "<span lang=osa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gn'", +"input": "<span lang=gn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'alt'", +"input": "<span lang=alt>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gl'", +"input": "<span lang=gl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'scr'", +"input": "<span lang=scr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mwr'", +"input": "<span lang=mwr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ty'", +"input": "<span lang=ty>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tw'", +"input": "<span lang=tw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tt'", +"input": "<span lang=tt>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tr'", +"input": "<span lang=tr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ts'", +"input": "<span lang=ts>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tn'", +"input": "<span lang=tn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'to'", +"input": "<span lang=to>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tl'", +"input": "<span lang=tl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tk'", +"input": "<span lang=tk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'th'", +"input": "<span lang=th>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ti'", +"input": "<span lang=ti>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ven'", +"input": "<span lang=ven>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tg'", +"input": "<span lang=tg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'te'", +"input": "<span lang=te>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uga'", +"input": "<span lang=uga>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ta'", +"input": "<span lang=ta>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fas'", +"input": "<span lang=fas>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fat'", +"input": "<span lang=fat>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fan'", +"input": "<span lang=fan>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fao'", +"input": "<span lang=fao>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'got'", +"input": "<span lang=got>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sme'", +"input": "<span lang=sme>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'din'", +"input": "<span lang=din>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hye'", +"input": "<span lang=hye>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'guj'", +"input": "<span lang=guj>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cmc'", +"input": "<span lang=cmc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'srd'", +"input": "<span lang=srd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mdr'", +"input": "<span lang=mdr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ml'", +"input": "<span lang=ml>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'div'", +"input": "<span lang=div>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zh'", +"input": "<span lang=zh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tem'", +"input": "<span lang=tem>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'xho'", +"input": "<span lang=xho>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mno'", +"input": "<span lang=mno>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'roa'", +"input": "<span lang=roa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'za'", +"input": "<span lang=za>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'deu'", +"input": "<span lang=deu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mk'", +"input": "<span lang=mk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nbl'", +"input": "<span lang=nbl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zu'", +"input": "<span lang=zu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ter'", +"input": "<span lang=ter>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tet'", +"input": "<span lang=tet>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mnc'", +"input": "<span lang=mnc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sun'", +"input": "<span lang=sun>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'abk'", +"input": "<span lang=abk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'suk'", +"input": "<span lang=suk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kur'", +"input": "<span lang=kur>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kum'", +"input": "<span lang=kum>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'slo'", +"input": "<span lang=slo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sus'", +"input": "<span lang=sus>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'new'", +"input": "<span lang=new>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kua'", +"input": "<span lang=kua>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sux'", +"input": "<span lang=sux>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'den'", +"input": "<span lang=den>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mr'", +"input": "<span lang=mr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mul'", +"input": "<span lang=mul>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lez'", +"input": "<span lang=lez>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gla'", +"input": "<span lang=gla>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bos'", +"input": "<span lang=bos>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gle'", +"input": "<span lang=gle>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eka'", +"input": "<span lang=eka>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'glg'", +"input": "<span lang=glg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'akk'", +"input": "<span lang=akk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dra'", +"input": "<span lang=dra>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aka'", +"input": "<span lang=aka>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bod'", +"input": "<span lang=bod>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'glv'", +"input": "<span lang=glv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jrb'", +"input": "<span lang=jrb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vie'", +"input": "<span lang=vie>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ipk'", +"input": "<span lang=ipk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uzb'", +"input": "<span lang=uzb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sgn'", +"input": "<span lang=sgn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sga'", +"input": "<span lang=sga>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bre'", +"input": "<span lang=bre>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'apa'", +"input": "<span lang=apa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bra'", +"input": "<span lang=bra>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aym'", +"input": "<span lang=aym>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cha'", +"input": "<span lang=cha>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chb'", +"input": "<span lang=chb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'che'", +"input": "<span lang=che>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chg'", +"input": "<span lang=chg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chi'", +"input": "<span lang=chi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chk'", +"input": "<span lang=chk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aus'", +"input": "<span lang=aus>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chn'", +"input": "<span lang=chn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cho'", +"input": "<span lang=cho>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chp'", +"input": "<span lang=chp>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chr'", +"input": "<span lang=chr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chu'", +"input": "<span lang=chu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chv'", +"input": "<span lang=chv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chy'", +"input": "<span lang=chy>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'msa'", +"input": "<span lang=msa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iii'", +"input": "<span lang=iii>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vot'", +"input": "<span lang=vot>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mg'", +"input": "<span lang=mg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ndo'", +"input": "<span lang=ndo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ibo'", +"input": "<span lang=ibo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'car'", +"input": "<span lang=car>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mo'", +"input": "<span lang=mo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mn'", +"input": "<span lang=mn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mi'", +"input": "<span lang=mi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mh'", +"input": "<span lang=mh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cau'", +"input": "<span lang=cau>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cat'", +"input": "<span lang=cat>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bur'", +"input": "<span lang=bur>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mt'", +"input": "<span lang=mt>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cai'", +"input": "<span lang=cai>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'del'", +"input": "<span lang=del>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ms'", +"input": "<span lang=ms>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'byn'", +"input": "<span lang=byn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mwl'", +"input": "<span lang=mwl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'my'", +"input": "<span lang=my>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cad'", +"input": "<span lang=cad>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tat'", +"input": "<span lang=tat>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nde'", +"input": "<span lang=nde>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tam'", +"input": "<span lang=tam>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'spa'", +"input": "<span lang=spa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tah'", +"input": "<span lang=tah>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tai'", +"input": "<span lang=tai>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cze'", +"input": "<span lang=cze>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'afh'", +"input": "<span lang=afh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eng'", +"input": "<span lang=eng>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'afa'", +"input": "<span lang=afa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'id'", +"input": "<span lang=id>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nyn'", +"input": "<span lang=nyn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nyo'", +"input": "<span lang=nyo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gez'", +"input": "<span lang=gez>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nya'", +"input": "<span lang=nya>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sio'", +"input": "<span lang=sio>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sin'", +"input": "<span lang=sin>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'afr'", +"input": "<span lang=afr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'map'", +"input": "<span lang=map>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fr'", +"input": "<span lang=fr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lao'", +"input": "<span lang=lao>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lah'", +"input": "<span lang=lah>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nym'", +"input": "<span lang=nym>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sna'", +"input": "<span lang=sna>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lad'", +"input": "<span lang=lad>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fy'", +"input": "<span lang=fy>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'snk'", +"input": "<span lang=snk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fa'", +"input": "<span lang=fa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mac'", +"input": "<span lang=mac>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mad'", +"input": "<span lang=mad>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ff'", +"input": "<span lang=ff>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lat'", +"input": "<span lang=lat>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fi'", +"input": "<span lang=fi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fj'", +"input": "<span lang=fj>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mal'", +"input": "<span lang=mal>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mao'", +"input": "<span lang=mao>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fo'", +"input": "<span lang=fo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mak'", +"input": "<span lang=mak>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'egy'", +"input": "<span lang=egy>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'znd'", +"input": "<span lang=znd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ss'", +"input": "<span lang=ss>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sr'", +"input": "<span lang=sr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sq'", +"input": "<span lang=sq>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sit'", +"input": "<span lang=sit>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sw'", +"input": "<span lang=sw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sv'", +"input": "<span lang=sv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'su'", +"input": "<span lang=su>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'st'", +"input": "<span lang=st>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sk'", +"input": "<span lang=sk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'si'", +"input": "<span lang=si>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sh'", +"input": "<span lang=sh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'so'", +"input": "<span lang=so>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sn'", +"input": "<span lang=sn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sm'", +"input": "<span lang=sm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sl'", +"input": "<span lang=sl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sc'", +"input": "<span lang=sc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sa'", +"input": "<span lang=sa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sg'", +"input": "<span lang=sg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'se'", +"input": "<span lang=se>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sd'", +"input": "<span lang=sd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zen'", +"input": "<span lang=zen>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kbd'", +"input": "<span lang=kbd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'enm'", +"input": "<span lang=enm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iro'", +"input": "<span lang=iro>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vai'", +"input": "<span lang=vai>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'csb'", +"input": "<span lang=csb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tsn'", +"input": "<span lang=tsn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lg'", +"input": "<span lang=lg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lb'", +"input": "<span lang=lb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'la'", +"input": "<span lang=la>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ln'", +"input": "<span lang=ln>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lo'", +"input": "<span lang=lo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'li'", +"input": "<span lang=li>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lv'", +"input": "<span lang=lv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lt'", +"input": "<span lang=lt>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lu'", +"input": "<span lang=lu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hin'", +"input": "<span lang=hin>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fij'", +"input": "<span lang=fij>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fin'", +"input": "<span lang=fin>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eus'", +"input": "<span lang=eus>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yi'", +"input": "<span lang=yi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'non'", +"input": "<span lang=non>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ceb'", +"input": "<span lang=ceb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yo'", +"input": "<span lang=yo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dan'", +"input": "<span lang=dan>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cel'", +"input": "<span lang=cel>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bat'", +"input": "<span lang=bat>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nob'", +"input": "<span lang=nob>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dak'", +"input": "<span lang=dak>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ces'", +"input": "<span lang=ces>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dar'", +"input": "<span lang=dar>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'son'", +"input": "<span lang=son>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'day'", +"input": "<span lang=day>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nor'", +"input": "<span lang=nor>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gba'", +"input": "<span lang=gba>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ssa'", +"input": "<span lang=ssa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hil'", +"input": "<span lang=hil>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kpe'", +"input": "<span lang=kpe>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'man'", +"input": "<span lang=man>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wel'", +"input": "<span lang=wel>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'el'", +"input": "<span lang=el>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eo'", +"input": "<span lang=eo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'en'", +"input": "<span lang=en>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lam'", +"input": "<span lang=lam>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ee'", +"input": "<span lang=ee>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tpi'", +"input": "<span lang=tpi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mdf'", +"input": "<span lang=mdf>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mas'", +"input": "<span lang=mas>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mar'", +"input": "<span lang=mar>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eu'", +"input": "<span lang=eu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'et'", +"input": "<span lang=et>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'es'", +"input": "<span lang=es>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ru'", +"input": "<span lang=ru>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rw'", +"input": "<span lang=rw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'goh'", +"input": "<span lang=goh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sms'", +"input": "<span lang=sms>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'smo'", +"input": "<span lang=smo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'smn'", +"input": "<span lang=smn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'smj'", +"input": "<span lang=smj>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'smi'", +"input": "<span lang=smi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nic'", +"input": "<span lang=nic>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rm'", +"input": "<span lang=rm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rn'", +"input": "<span lang=rn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ro'", +"input": "<span lang=ro>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dsb'", +"input": "<span lang=dsb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sma'", +"input": "<span lang=sma>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gor'", +"input": "<span lang=gor>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ast'", +"input": "<span lang=ast>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'orm'", +"input": "<span lang=orm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'que'", +"input": "<span lang=que>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ori'", +"input": "<span lang=ori>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'crh'", +"input": "<span lang=crh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'asm'", +"input": "<span lang=asm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pus'", +"input": "<span lang=pus>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kik'", +"input": "<span lang=kik>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ltz'", +"input": "<span lang=ltz>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ath'", +"input": "<span lang=ath>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wln'", +"input": "<span lang=wln>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'isl'", +"input": "<span lang=isl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'xh'", +"input": "<span lang=xh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mag'", +"input": "<span lang=mag>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mai'", +"input": "<span lang=mai>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'xx'", +"input": "<span lang=xx>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mah'", +"input": "<span lang=mah>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tel'", +"input": "<span lang=tel>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lav'", +"input": "<span lang=lav>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zap'", +"input": "<span lang=zap>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yid'", +"input": "<span lang=yid>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kok'", +"input": "<span lang=kok>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kom'", +"input": "<span lang=kom>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kon'", +"input": "<span lang=kon>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ukr'", +"input": "<span lang=ukr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ton'", +"input": "<span lang=ton>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kos'", +"input": "<span lang=kos>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kor'", +"input": "<span lang=kor>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tog'", +"input": "<span lang=tog>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hun'", +"input": "<span lang=hun>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hup'", +"input": "<span lang=hup>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cym'", +"input": "<span lang=cym>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'udm'", +"input": "<span lang=udm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bej'", +"input": "<span lang=bej>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ben'", +"input": "<span lang=ben>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bel'", +"input": "<span lang=bel>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bem'", +"input": "<span lang=bem>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tsi'", +"input": "<span lang=tsi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aar'", +"input": "<span lang=aar>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ber'", +"input": "<span lang=ber>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nzi'", +"input": "<span lang=nzi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sai'", +"input": "<span lang=sai>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ang'", +"input": "<span lang=ang>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pra'", +"input": "<span lang=pra>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'san'", +"input": "<span lang=san>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bho'", +"input": "<span lang=bho>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sal'", +"input": "<span lang=sal>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pro'", +"input": "<span lang=pro>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'raj'", +"input": "<span lang=raj>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sad'", +"input": "<span lang=sad>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'anp'", +"input": "<span lang=anp>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rap'", +"input": "<span lang=rap>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sas'", +"input": "<span lang=sas>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iba'", +"input": "<span lang=iba>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'myn'", +"input": "<span lang=myn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'min'", +"input": "<span lang=min>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lim'", +"input": "<span lang=lim>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lin'", +"input": "<span lang=lin>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nah'", +"input": "<span lang=nah>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lit'", +"input": "<span lang=lit>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'efi'", +"input": "<span lang=efi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'srn'", +"input": "<span lang=srn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arn'", +"input": "<span lang=arn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ypk'", +"input": "<span lang=ypk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mis'", +"input": "<span lang=mis>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kac'", +"input": "<span lang=kac>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kab'", +"input": "<span lang=kab>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kaa'", +"input": "<span lang=kaa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kan'", +"input": "<span lang=kan>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kam'", +"input": "<span lang=kam>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kal'", +"input": "<span lang=kal>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kas'", +"input": "<span lang=kas>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kar'", +"input": "<span lang=kar>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kaw'", +"input": "<span lang=kaw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kau'", +"input": "<span lang=kau>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kat'", +"input": "<span lang=kat>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kaz'", +"input": "<span lang=kaz>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tyv'", +"input": "<span lang=tyv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'awa'", +"input": "<span lang=awa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'urd'", +"input": "<span lang=urd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ka'", +"input": "<span lang=ka>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'doi'", +"input": "<span lang=doi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kg'", +"input": "<span lang=kg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kk'", +"input": "<span lang=kk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kj'", +"input": "<span lang=kj>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ki'", +"input": "<span lang=ki>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ko'", +"input": "<span lang=ko>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kn'", +"input": "<span lang=kn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'km'", +"input": "<span lang=km>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kl'", +"input": "<span lang=kl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ks'", +"input": "<span lang=ks>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kr'", +"input": "<span lang=kr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kw'", +"input": "<span lang=kw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kv'", +"input": "<span lang=kv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ku'", +"input": "<span lang=ku>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ky'", +"input": "<span lang=ky>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ota'", +"input": "<span lang=ota>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kut'", +"input": "<span lang=kut>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tkl'", +"input": "<span lang=tkl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nld'", +"input": "<span lang=nld>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oji'", +"input": "<span lang=oji>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oci'", +"input": "<span lang=oci>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ha'", +"input": "<span lang=ha>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wol'", +"input": "<span lang=wol>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jav'", +"input": "<span lang=jav>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hrv'", +"input": "<span lang=hrv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ger'", +"input": "<span lang=ger>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mga'", +"input": "<span lang=mga>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hit'", +"input": "<span lang=hit>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dyu'", +"input": "<span lang=dyu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ssw'", +"input": "<span lang=ssw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'de'", +"input": "<span lang=de>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'da'", +"input": "<span lang=da>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dz'", +"input": "<span lang=dz>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lui'", +"input": "<span lang=lui>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dv'", +"input": "<span lang=dv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ita'", +"input": "<span lang=ita>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'geo'", +"input": "<span lang=geo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'him'", +"input": "<span lang=him>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gem'", +"input": "<span lang=gem>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'crp'", +"input": "<span lang=crp>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'qu'", +"input": "<span lang=qu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bas'", +"input": "<span lang=bas>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'baq'", +"input": "<span lang=baq>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bad'", +"input": "<span lang=bad>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nep'", +"input": "<span lang=nep>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cre'", +"input": "<span lang=cre>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ban'", +"input": "<span lang=ban>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'x'", +"input": "<span lang=x>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bal'", +"input": "<span lang=bal>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bam'", +"input": "<span lang=bam>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bak'", +"input": "<span lang=bak>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'shn'", +"input": "<span lang=shn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bai'", +"input": "<span lang=bai>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arp'", +"input": "<span lang=arp>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'art'", +"input": "<span lang=art>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arw'", +"input": "<span lang=arw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'qtz'", +"input": "<span lang=qtz>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ara'", +"input": "<span lang=ara>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arc'", +"input": "<span lang=arc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arg'", +"input": "<span lang=arg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sem'", +"input": "<span lang=sem>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sel'", +"input": "<span lang=sel>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nub'", +"input": "<span lang=nub>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arm'", +"input": "<span lang=arm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'btk'", +"input": "<span lang=btk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lus'", +"input": "<span lang=lus>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iku'", +"input": "<span lang=iku>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mus'", +"input": "<span lang=mus>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lua'", +"input": "<span lang=lua>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lub'", +"input": "<span lang=lub>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lug'", +"input": "<span lang=lug>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ira'", +"input": "<span lang=ira>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mun'", +"input": "<span lang=mun>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tur'", +"input": "<span lang=tur>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lun'", +"input": "<span lang=lun>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'luo'", +"input": "<span lang=luo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'men'", +"input": "<span lang=men>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wa'", +"input": "<span lang=wa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tso'", +"input": "<span lang=tso>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wo'", +"input": "<span lang=wo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jv'", +"input": "<span lang=jv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tut'", +"input": "<span lang=tut>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ind'", +"input": "<span lang=ind>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tuk'", +"input": "<span lang=tuk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tum'", +"input": "<span lang=tum>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ja'", +"input": "<span lang=ja>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cop'", +"input": "<span lang=cop>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cos'", +"input": "<span lang=cos>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cor'", +"input": "<span lang=cor>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ilo'", +"input": "<span lang=ilo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fiu'", +"input": "<span lang=fiu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gwi'", +"input": "<span lang=gwi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'und'", +"input": "<span lang=und>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gws'", +"input": "<span lang=gws>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tli'", +"input": "<span lang=tli>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tlh'", +"input": "<span lang=tlh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nno'", +"input": "<span lang=nno>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ch'", +"input": "<span lang=ch>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'co'", +"input": "<span lang=co>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ca'", +"input": "<span lang=ca>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'por'", +"input": "<span lang=por>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ce'", +"input": "<span lang=ce>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pon'", +"input": "<span lang=pon>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cy'", +"input": "<span lang=cy>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sah'", +"input": "<span lang=sah>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cs'", +"input": "<span lang=cs>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cr'", +"input": "<span lang=cr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ady'", +"input": "<span lang=ady>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cv'", +"input": "<span lang=cv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cu'", +"input": "<span lang=cu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ps'", +"input": "<span lang=ps>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fra'", +"input": "<span lang=fra>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dum'", +"input": "<span lang=dum>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pt'", +"input": "<span lang=pt>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'swa'", +"input": "<span lang=swa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dua'", +"input": "<span lang=dua>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fro'", +"input": "<span lang=fro>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yap'", +"input": "<span lang=yap>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'frm'", +"input": "<span lang=frm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tiv'", +"input": "<span lang=tiv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'frs'", +"input": "<span lang=frs>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'frr'", +"input": "<span lang=frr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yao'", +"input": "<span lang=yao>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pa'", +"input": "<span lang=pa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'xal'", +"input": "<span lang=xal>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fry'", +"input": "<span lang=fry>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pi'", +"input": "<span lang=pi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dut'", +"input": "<span lang=dut>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pl'", +"input": "<span lang=pl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gay'", +"input": "<span lang=gay>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oto'", +"input": "<span lang=oto>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sag'", +"input": "<span lang=sag>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hmn'", +"input": "<span lang=hmn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hmo'", +"input": "<span lang=hmo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'an'", +"input": "<span lang=an>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gaa'", +"input": "<span lang=gaa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fur'", +"input": "<span lang=fur>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mlg'", +"input": "<span lang=mlg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'slv'", +"input": "<span lang=slv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ain'", +"input": "<span lang=ain>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fil'", +"input": "<span lang=fil>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mlt'", +"input": "<span lang=mlt>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'slk'", +"input": "<span lang=slk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rar'", +"input": "<span lang=rar>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ful'", +"input": "<span lang=ful>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sla'", +"input": "<span lang=sla>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 've'", +"input": "<span lang=ve>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jpn'", +"input": "<span lang=jpn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vol'", +"input": "<span lang=vol>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vi'", +"input": "<span lang=vi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'is'", +"input": "<span lang=is>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kho'", +"input": "<span lang=kho>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iu'", +"input": "<span lang=iu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'it'", +"input": "<span lang=it>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vo'", +"input": "<span lang=vo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ii'", +"input": "<span lang=ii>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ay'", +"input": "<span lang=ay>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ik'", +"input": "<span lang=ik>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'io'", +"input": "<span lang=io>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kha'", +"input": "<span lang=kha>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ia'", +"input": "<span lang=ia>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ave'", +"input": "<span lang=ave>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jpr'", +"input": "<span lang=jpr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ie'", +"input": "<span lang=ie>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ava'", +"input": "<span lang=ava>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ig'", +"input": "<span lang=ig>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pap'", +"input": "<span lang=pap>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ewo'", +"input": "<span lang=ewo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pau'", +"input": "<span lang=pau>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ewe'", +"input": "<span lang=ewe>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'paa'", +"input": "<span lang=paa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'qaa'", +"input": "<span lang=qaa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pag'", +"input": "<span lang=pag>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sat'", +"input": "<span lang=sat>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pal'", +"input": "<span lang=pal>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pam'", +"input": "<span lang=pam>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pan'", +"input": "<span lang=pan>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'phi'", +"input": "<span lang=phi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nog'", +"input": "<span lang=nog>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'phn'", +"input": "<span lang=phn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kir'", +"input": "<span lang=kir>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nia'", +"input": "<span lang=nia>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dgr'", +"input": "<span lang=dgr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'syr'", +"input": "<span lang=syr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kin'", +"input": "<span lang=kin>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tup'", +"input": "<span lang=tup>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'niu'", +"input": "<span lang=niu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gsw'", +"input": "<span lang=gsw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'epo'", +"input": "<span lang=epo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jbo'", +"input": "<span lang=jbo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mic'", +"input": "<span lang=mic>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tha'", +"input": "<span lang=tha>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sam'", +"input": "<span lang=sam>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hai'", +"input": "<span lang=hai>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gmh'", +"input": "<span lang=gmh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cus'", +"input": "<span lang=cus>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ell'", +"input": "<span lang=ell>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wen'", +"input": "<span lang=wen>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bnt'", +"input": "<span lang=bnt>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fre'", +"input": "<span lang=fre>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'elx'", +"input": "<span lang=elx>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ada'", +"input": "<span lang=ada>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nav'", +"input": "<span lang=nav>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hat'", +"input": "<span lang=hat>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hau'", +"input": "<span lang=hau>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'haw'", +"input": "<span lang=haw>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bin'", +"input": "<span lang=bin>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'amh'", +"input": "<span lang=amh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bik'", +"input": "<span lang=bik>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bih'", +"input": "<span lang=bih>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mos'", +"input": "<span lang=mos>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'moh'", +"input": "<span lang=moh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mon'", +"input": "<span lang=mon>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mol'", +"input": "<span lang=mol>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bis'", +"input": "<span lang=bis>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bla'", +"input": "<span lang=bla>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pol'", +"input": "<span lang=pol>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tib'", +"input": "<span lang=tib>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tvl'", +"input": "<span lang=tvl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tgk'", +"input": "<span lang=tgk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ijo'", +"input": "<span lang=ijo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'est'", +"input": "<span lang=est>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kmb'", +"input": "<span lang=kmb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ice'", +"input": "<span lang=ice>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'peo'", +"input": "<span lang=peo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tgl'", +"input": "<span lang=tgl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'umb'", +"input": "<span lang=umb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tmh'", +"input": "<span lang=tmh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fon'", +"input": "<span lang=fon>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hsb'", +"input": "<span lang=hsb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'be'", +"input": "<span lang=be>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bg'", +"input": "<span lang=bg>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'run'", +"input": "<span lang=run>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ba'", +"input": "<span lang=ba>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rum'", +"input": "<span lang=rum>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bm'", +"input": "<span lang=bm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bn'", +"input": "<span lang=bn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bo'", +"input": "<span lang=bo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bh'", +"input": "<span lang=bh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bi'", +"input": "<span lang=bi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'br'", +"input": "<span lang=br>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bs'", +"input": "<span lang=bs>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rus'", +"input": "<span lang=rus>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rup'", +"input": "<span lang=rup>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pli'", +"input": "<span lang=pli>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'om'", +"input": "<span lang=om>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oj'", +"input": "<span lang=oj>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ace'", +"input": "<span lang=ace>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ach'", +"input": "<span lang=ach>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oc'", +"input": "<span lang=oc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dzo'", +"input": "<span lang=dzo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kru'", +"input": "<span lang=kru>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'srr'", +"input": "<span lang=srr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ido'", +"input": "<span lang=ido>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'srp'", +"input": "<span lang=srp>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kro'", +"input": "<span lang=kro>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'krl'", +"input": "<span lang=krl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'krc'", +"input": "<span lang=krc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nds'", +"input": "<span lang=nds>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'os'", +"input": "<span lang=os>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'or'", +"input": "<span lang=or>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zul'", +"input": "<span lang=zul>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'twi'", +"input": "<span lang=twi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sog'", +"input": "<span lang=sog>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nso'", +"input": "<span lang=nso>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'swe'", +"input": "<span lang=swe>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'som'", +"input": "<span lang=som>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chm'", +"input": "<span lang=chm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'snd'", +"input": "<span lang=snd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sot'", +"input": "<span lang=sot>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mkd'", +"input": "<span lang=mkd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wak'", +"input": "<span lang=wak>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'her'", +"input": "<span lang=her>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lol'", +"input": "<span lang=lol>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mkh'", +"input": "<span lang=mkh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'heb'", +"input": "<span lang=heb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'loz'", +"input": "<span lang=loz>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gil'", +"input": "<span lang=gil>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'was'", +"input": "<span lang=was>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'war'", +"input": "<span lang=war>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hz'", +"input": "<span lang=hz>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hy'", +"input": "<span lang=hy>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sid'", +"input": "<span lang=sid>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hr'", +"input": "<span lang=hr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ht'", +"input": "<span lang=ht>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hu'", +"input": "<span lang=hu>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hi'", +"input": "<span lang=hi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ho'", +"input": "<span lang=ho>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bul'", +"input": "<span lang=bul>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wal'", +"input": "<span lang=wal>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bua'", +"input": "<span lang=bua>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bug'", +"input": "<span lang=bug>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'he'", +"input": "<span lang=he>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uz'", +"input": "<span lang=uz>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aze'", +"input": "<span lang=aze>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ur'", +"input": "<span lang=ur>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zha'", +"input": "<span lang=zha>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uk'", +"input": "<span lang=uk>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ug'", +"input": "<span lang=ug>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zho'", +"input": "<span lang=zho>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aa'", +"input": "<span lang=aa>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ab'", +"input": "<span lang=ab>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ae'", +"input": "<span lang=ae>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uig'", +"input": "<span lang=uig>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'af'", +"input": "<span lang=af>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ak'", +"input": "<span lang=ak>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'am'", +"input": "<span lang=am>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'myv'", +"input": "<span lang=myv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'khi'", +"input": "<span lang=khi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'as'", +"input": "<span lang=as>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ar'", +"input": "<span lang=ar>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'inh'", +"input": "<span lang=inh>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'khm'", +"input": "<span lang=khm>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'av'", +"input": "<span lang=av>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mya'", +"input": "<span lang=mya>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ine'", +"input": "<span lang=ine>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'az'", +"input": "<span lang=az>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ina'", +"input": "<span lang=ina>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'inc'", +"input": "<span lang=inc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nl'", +"input": "<span lang=nl>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nn'", +"input": "<span lang=nn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'no'", +"input": "<span lang=no>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'na'", +"input": "<span lang=na>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nb'", +"input": "<span lang=nb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nai'", +"input": "<span lang=nai>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nd'", +"input": "<span lang=nd>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ne'", +"input": "<span lang=ne>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tir'", +"input": "<span lang=tir>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ng'", +"input": "<span lang=ng>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ny'", +"input": "<span lang=ny>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nap'", +"input": "<span lang=nap>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gre'", +"input": "<span lang=gre>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'grb'", +"input": "<span lang=grb>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'grc'", +"input": "<span lang=grc>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nau'", +"input": "<span lang=nau>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'grn'", +"input": "<span lang=grn>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nr'", +"input": "<span lang=nr>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tig'", +"input": "<span lang=tig>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yor'", +"input": "<span lang=yor>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nv'", +"input": "<span lang=nv>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mri'", +"input": "<span lang=mri>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'may'", +"input": "<span lang=may>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zun'", +"input": "<span lang=zun>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ile'", +"input": "<span lang=ile>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sqi'", +"input": "<span lang=sqi>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gon'", +"input": "<span lang=gon>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cpe'", +"input": "<span lang=cpe>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cpf'", +"input": "<span lang=cpf>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cpp'", +"input": "<span lang=cpp>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'roh-foo'", +"input": "<span lang=roh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gv-foo'", +"input": "<span lang=gv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gu-foo'", +"input": "<span lang=gu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'scn-foo'", +"input": "<span lang=scn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rom-foo'", +"input": "<span lang=rom-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ron-foo'", +"input": "<span lang=ron-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'alg-foo'", +"input": "<span lang=alg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oss-foo'", +"input": "<span lang=oss-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ale-foo'", +"input": "<span lang=ale-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'alb-foo'", +"input": "<span lang=alb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sco-foo'", +"input": "<span lang=sco-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'scc-foo'", +"input": "<span lang=scc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mni-foo'", +"input": "<span lang=mni-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gd-foo'", +"input": "<span lang=gd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'per-foo'", +"input": "<span lang=per-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ga-foo'", +"input": "<span lang=ga-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nwc-foo'", +"input": "<span lang=nwc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'osa-foo'", +"input": "<span lang=osa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gn-foo'", +"input": "<span lang=gn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'alt-foo'", +"input": "<span lang=alt-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gl-foo'", +"input": "<span lang=gl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'scr-foo'", +"input": "<span lang=scr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mwr-foo'", +"input": "<span lang=mwr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ty-foo'", +"input": "<span lang=ty-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tw-foo'", +"input": "<span lang=tw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tt-foo'", +"input": "<span lang=tt-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tr-foo'", +"input": "<span lang=tr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ts-foo'", +"input": "<span lang=ts-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tn-foo'", +"input": "<span lang=tn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'to-foo'", +"input": "<span lang=to-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tl-foo'", +"input": "<span lang=tl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tk-foo'", +"input": "<span lang=tk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'th-foo'", +"input": "<span lang=th-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ti-foo'", +"input": "<span lang=ti-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ven-foo'", +"input": "<span lang=ven-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tg-foo'", +"input": "<span lang=tg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'te-foo'", +"input": "<span lang=te-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uga-foo'", +"input": "<span lang=uga-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ta-foo'", +"input": "<span lang=ta-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fas-foo'", +"input": "<span lang=fas-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fat-foo'", +"input": "<span lang=fat-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fan-foo'", +"input": "<span lang=fan-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fao-foo'", +"input": "<span lang=fao-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'got-foo'", +"input": "<span lang=got-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sme-foo'", +"input": "<span lang=sme-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'din-foo'", +"input": "<span lang=din-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hye-foo'", +"input": "<span lang=hye-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'guj-foo'", +"input": "<span lang=guj-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cmc-foo'", +"input": "<span lang=cmc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'srd-foo'", +"input": "<span lang=srd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mdr-foo'", +"input": "<span lang=mdr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ml-foo'", +"input": "<span lang=ml-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'div-foo'", +"input": "<span lang=div-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zh-foo'", +"input": "<span lang=zh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tem-foo'", +"input": "<span lang=tem-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'xho-foo'", +"input": "<span lang=xho-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mno-foo'", +"input": "<span lang=mno-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'roa-foo'", +"input": "<span lang=roa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'za-foo'", +"input": "<span lang=za-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'deu-foo'", +"input": "<span lang=deu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mk-foo'", +"input": "<span lang=mk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nbl-foo'", +"input": "<span lang=nbl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zu-foo'", +"input": "<span lang=zu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ter-foo'", +"input": "<span lang=ter-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tet-foo'", +"input": "<span lang=tet-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mnc-foo'", +"input": "<span lang=mnc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sun-foo'", +"input": "<span lang=sun-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'abk-foo'", +"input": "<span lang=abk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'suk-foo'", +"input": "<span lang=suk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kur-foo'", +"input": "<span lang=kur-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kum-foo'", +"input": "<span lang=kum-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'slo-foo'", +"input": "<span lang=slo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sus-foo'", +"input": "<span lang=sus-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'new-foo'", +"input": "<span lang=new-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kua-foo'", +"input": "<span lang=kua-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sux-foo'", +"input": "<span lang=sux-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'den-foo'", +"input": "<span lang=den-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mr-foo'", +"input": "<span lang=mr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mul-foo'", +"input": "<span lang=mul-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lez-foo'", +"input": "<span lang=lez-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gla-foo'", +"input": "<span lang=gla-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bos-foo'", +"input": "<span lang=bos-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gle-foo'", +"input": "<span lang=gle-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eka-foo'", +"input": "<span lang=eka-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'glg-foo'", +"input": "<span lang=glg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'akk-foo'", +"input": "<span lang=akk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dra-foo'", +"input": "<span lang=dra-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aka-foo'", +"input": "<span lang=aka-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bod-foo'", +"input": "<span lang=bod-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'glv-foo'", +"input": "<span lang=glv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jrb-foo'", +"input": "<span lang=jrb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vie-foo'", +"input": "<span lang=vie-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ipk-foo'", +"input": "<span lang=ipk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uzb-foo'", +"input": "<span lang=uzb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sgn-foo'", +"input": "<span lang=sgn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sga-foo'", +"input": "<span lang=sga-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bre-foo'", +"input": "<span lang=bre-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'apa-foo'", +"input": "<span lang=apa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bra-foo'", +"input": "<span lang=bra-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aym-foo'", +"input": "<span lang=aym-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cha-foo'", +"input": "<span lang=cha-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chb-foo'", +"input": "<span lang=chb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'che-foo'", +"input": "<span lang=che-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chg-foo'", +"input": "<span lang=chg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chi-foo'", +"input": "<span lang=chi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chk-foo'", +"input": "<span lang=chk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aus-foo'", +"input": "<span lang=aus-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chn-foo'", +"input": "<span lang=chn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cho-foo'", +"input": "<span lang=cho-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chp-foo'", +"input": "<span lang=chp-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chr-foo'", +"input": "<span lang=chr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chu-foo'", +"input": "<span lang=chu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chv-foo'", +"input": "<span lang=chv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chy-foo'", +"input": "<span lang=chy-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'msa-foo'", +"input": "<span lang=msa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iii-foo'", +"input": "<span lang=iii-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vot-foo'", +"input": "<span lang=vot-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mg-foo'", +"input": "<span lang=mg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ndo-foo'", +"input": "<span lang=ndo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ibo-foo'", +"input": "<span lang=ibo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'car-foo'", +"input": "<span lang=car-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mo-foo'", +"input": "<span lang=mo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mn-foo'", +"input": "<span lang=mn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mi-foo'", +"input": "<span lang=mi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mh-foo'", +"input": "<span lang=mh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cau-foo'", +"input": "<span lang=cau-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cat-foo'", +"input": "<span lang=cat-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bur-foo'", +"input": "<span lang=bur-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mt-foo'", +"input": "<span lang=mt-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cai-foo'", +"input": "<span lang=cai-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'del-foo'", +"input": "<span lang=del-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ms-foo'", +"input": "<span lang=ms-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'byn-foo'", +"input": "<span lang=byn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mwl-foo'", +"input": "<span lang=mwl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'my-foo'", +"input": "<span lang=my-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cad-foo'", +"input": "<span lang=cad-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tat-foo'", +"input": "<span lang=tat-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nde-foo'", +"input": "<span lang=nde-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tam-foo'", +"input": "<span lang=tam-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'spa-foo'", +"input": "<span lang=spa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tah-foo'", +"input": "<span lang=tah-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tai-foo'", +"input": "<span lang=tai-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cze-foo'", +"input": "<span lang=cze-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'afh-foo'", +"input": "<span lang=afh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eng-foo'", +"input": "<span lang=eng-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'afa-foo'", +"input": "<span lang=afa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'id-foo'", +"input": "<span lang=id-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nyn-foo'", +"input": "<span lang=nyn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nyo-foo'", +"input": "<span lang=nyo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gez-foo'", +"input": "<span lang=gez-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nya-foo'", +"input": "<span lang=nya-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sio-foo'", +"input": "<span lang=sio-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sin-foo'", +"input": "<span lang=sin-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'afr-foo'", +"input": "<span lang=afr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'map-foo'", +"input": "<span lang=map-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fr-foo'", +"input": "<span lang=fr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lao-foo'", +"input": "<span lang=lao-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lah-foo'", +"input": "<span lang=lah-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nym-foo'", +"input": "<span lang=nym-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sna-foo'", +"input": "<span lang=sna-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lad-foo'", +"input": "<span lang=lad-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fy-foo'", +"input": "<span lang=fy-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'snk-foo'", +"input": "<span lang=snk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fa-foo'", +"input": "<span lang=fa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mac-foo'", +"input": "<span lang=mac-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mad-foo'", +"input": "<span lang=mad-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ff-foo'", +"input": "<span lang=ff-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lat-foo'", +"input": "<span lang=lat-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fi-foo'", +"input": "<span lang=fi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fj-foo'", +"input": "<span lang=fj-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mal-foo'", +"input": "<span lang=mal-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mao-foo'", +"input": "<span lang=mao-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fo-foo'", +"input": "<span lang=fo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mak-foo'", +"input": "<span lang=mak-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'egy-foo'", +"input": "<span lang=egy-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'znd-foo'", +"input": "<span lang=znd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ss-foo'", +"input": "<span lang=ss-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sr-foo'", +"input": "<span lang=sr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sq-foo'", +"input": "<span lang=sq-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sit-foo'", +"input": "<span lang=sit-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sw-foo'", +"input": "<span lang=sw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sv-foo'", +"input": "<span lang=sv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'su-foo'", +"input": "<span lang=su-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'st-foo'", +"input": "<span lang=st-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sk-foo'", +"input": "<span lang=sk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'si-foo'", +"input": "<span lang=si-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sh-foo'", +"input": "<span lang=sh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'so-foo'", +"input": "<span lang=so-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sn-foo'", +"input": "<span lang=sn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sm-foo'", +"input": "<span lang=sm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sl-foo'", +"input": "<span lang=sl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sc-foo'", +"input": "<span lang=sc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sa-foo'", +"input": "<span lang=sa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sg-foo'", +"input": "<span lang=sg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'se-foo'", +"input": "<span lang=se-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sd-foo'", +"input": "<span lang=sd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zen-foo'", +"input": "<span lang=zen-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kbd-foo'", +"input": "<span lang=kbd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'enm-foo'", +"input": "<span lang=enm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iro-foo'", +"input": "<span lang=iro-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vai-foo'", +"input": "<span lang=vai-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'csb-foo'", +"input": "<span lang=csb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tsn-foo'", +"input": "<span lang=tsn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lg-foo'", +"input": "<span lang=lg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lb-foo'", +"input": "<span lang=lb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'la-foo'", +"input": "<span lang=la-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ln-foo'", +"input": "<span lang=ln-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lo-foo'", +"input": "<span lang=lo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'li-foo'", +"input": "<span lang=li-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lv-foo'", +"input": "<span lang=lv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lt-foo'", +"input": "<span lang=lt-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lu-foo'", +"input": "<span lang=lu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hin-foo'", +"input": "<span lang=hin-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fij-foo'", +"input": "<span lang=fij-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fin-foo'", +"input": "<span lang=fin-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eus-foo'", +"input": "<span lang=eus-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yi-foo'", +"input": "<span lang=yi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'non-foo'", +"input": "<span lang=non-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ceb-foo'", +"input": "<span lang=ceb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yo-foo'", +"input": "<span lang=yo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dan-foo'", +"input": "<span lang=dan-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cel-foo'", +"input": "<span lang=cel-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bat-foo'", +"input": "<span lang=bat-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nob-foo'", +"input": "<span lang=nob-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dak-foo'", +"input": "<span lang=dak-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ces-foo'", +"input": "<span lang=ces-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dar-foo'", +"input": "<span lang=dar-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'son-foo'", +"input": "<span lang=son-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'day-foo'", +"input": "<span lang=day-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nor-foo'", +"input": "<span lang=nor-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gba-foo'", +"input": "<span lang=gba-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ssa-foo'", +"input": "<span lang=ssa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hil-foo'", +"input": "<span lang=hil-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kpe-foo'", +"input": "<span lang=kpe-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'man-foo'", +"input": "<span lang=man-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wel-foo'", +"input": "<span lang=wel-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'el-foo'", +"input": "<span lang=el-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eo-foo'", +"input": "<span lang=eo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'en-foo'", +"input": "<span lang=en-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lam-foo'", +"input": "<span lang=lam-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ee-foo'", +"input": "<span lang=ee-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tpi-foo'", +"input": "<span lang=tpi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mdf-foo'", +"input": "<span lang=mdf-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mas-foo'", +"input": "<span lang=mas-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mar-foo'", +"input": "<span lang=mar-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'eu-foo'", +"input": "<span lang=eu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'et-foo'", +"input": "<span lang=et-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'es-foo'", +"input": "<span lang=es-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ru-foo'", +"input": "<span lang=ru-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rw-foo'", +"input": "<span lang=rw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'goh-foo'", +"input": "<span lang=goh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sms-foo'", +"input": "<span lang=sms-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'smo-foo'", +"input": "<span lang=smo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'smn-foo'", +"input": "<span lang=smn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'smj-foo'", +"input": "<span lang=smj-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'smi-foo'", +"input": "<span lang=smi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nic-foo'", +"input": "<span lang=nic-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rm-foo'", +"input": "<span lang=rm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rn-foo'", +"input": "<span lang=rn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ro-foo'", +"input": "<span lang=ro-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dsb-foo'", +"input": "<span lang=dsb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sma-foo'", +"input": "<span lang=sma-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gor-foo'", +"input": "<span lang=gor-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ast-foo'", +"input": "<span lang=ast-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'orm-foo'", +"input": "<span lang=orm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'que-foo'", +"input": "<span lang=que-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ori-foo'", +"input": "<span lang=ori-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'crh-foo'", +"input": "<span lang=crh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'asm-foo'", +"input": "<span lang=asm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pus-foo'", +"input": "<span lang=pus-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kik-foo'", +"input": "<span lang=kik-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ltz-foo'", +"input": "<span lang=ltz-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ath-foo'", +"input": "<span lang=ath-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wln-foo'", +"input": "<span lang=wln-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'isl-foo'", +"input": "<span lang=isl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'xh-foo'", +"input": "<span lang=xh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mag-foo'", +"input": "<span lang=mag-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mai-foo'", +"input": "<span lang=mai-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'xx-foo'", +"input": "<span lang=xx-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mah-foo'", +"input": "<span lang=mah-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tel-foo'", +"input": "<span lang=tel-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lav-foo'", +"input": "<span lang=lav-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zap-foo'", +"input": "<span lang=zap-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yid-foo'", +"input": "<span lang=yid-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kok-foo'", +"input": "<span lang=kok-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kom-foo'", +"input": "<span lang=kom-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kon-foo'", +"input": "<span lang=kon-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ukr-foo'", +"input": "<span lang=ukr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ton-foo'", +"input": "<span lang=ton-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kos-foo'", +"input": "<span lang=kos-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kor-foo'", +"input": "<span lang=kor-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tog-foo'", +"input": "<span lang=tog-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hun-foo'", +"input": "<span lang=hun-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hup-foo'", +"input": "<span lang=hup-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cym-foo'", +"input": "<span lang=cym-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'udm-foo'", +"input": "<span lang=udm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bej-foo'", +"input": "<span lang=bej-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ben-foo'", +"input": "<span lang=ben-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bel-foo'", +"input": "<span lang=bel-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bem-foo'", +"input": "<span lang=bem-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tsi-foo'", +"input": "<span lang=tsi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aar-foo'", +"input": "<span lang=aar-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ber-foo'", +"input": "<span lang=ber-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nzi-foo'", +"input": "<span lang=nzi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sai-foo'", +"input": "<span lang=sai-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ang-foo'", +"input": "<span lang=ang-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pra-foo'", +"input": "<span lang=pra-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'san-foo'", +"input": "<span lang=san-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bho-foo'", +"input": "<span lang=bho-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sal-foo'", +"input": "<span lang=sal-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pro-foo'", +"input": "<span lang=pro-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'raj-foo'", +"input": "<span lang=raj-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sad-foo'", +"input": "<span lang=sad-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'anp-foo'", +"input": "<span lang=anp-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rap-foo'", +"input": "<span lang=rap-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sas-foo'", +"input": "<span lang=sas-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iba-foo'", +"input": "<span lang=iba-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'myn-foo'", +"input": "<span lang=myn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'min-foo'", +"input": "<span lang=min-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lim-foo'", +"input": "<span lang=lim-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lin-foo'", +"input": "<span lang=lin-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nah-foo'", +"input": "<span lang=nah-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lit-foo'", +"input": "<span lang=lit-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'efi-foo'", +"input": "<span lang=efi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'srn-foo'", +"input": "<span lang=srn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arn-foo'", +"input": "<span lang=arn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ypk-foo'", +"input": "<span lang=ypk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mis-foo'", +"input": "<span lang=mis-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kac-foo'", +"input": "<span lang=kac-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kab-foo'", +"input": "<span lang=kab-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kaa-foo'", +"input": "<span lang=kaa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kan-foo'", +"input": "<span lang=kan-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kam-foo'", +"input": "<span lang=kam-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kal-foo'", +"input": "<span lang=kal-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kas-foo'", +"input": "<span lang=kas-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kar-foo'", +"input": "<span lang=kar-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kaw-foo'", +"input": "<span lang=kaw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kau-foo'", +"input": "<span lang=kau-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kat-foo'", +"input": "<span lang=kat-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kaz-foo'", +"input": "<span lang=kaz-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tyv-foo'", +"input": "<span lang=tyv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'awa-foo'", +"input": "<span lang=awa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'urd-foo'", +"input": "<span lang=urd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ka-foo'", +"input": "<span lang=ka-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'doi-foo'", +"input": "<span lang=doi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kg-foo'", +"input": "<span lang=kg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kk-foo'", +"input": "<span lang=kk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kj-foo'", +"input": "<span lang=kj-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ki-foo'", +"input": "<span lang=ki-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ko-foo'", +"input": "<span lang=ko-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kn-foo'", +"input": "<span lang=kn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'km-foo'", +"input": "<span lang=km-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kl-foo'", +"input": "<span lang=kl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ks-foo'", +"input": "<span lang=ks-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kr-foo'", +"input": "<span lang=kr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kw-foo'", +"input": "<span lang=kw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kv-foo'", +"input": "<span lang=kv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ku-foo'", +"input": "<span lang=ku-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ky-foo'", +"input": "<span lang=ky-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ota-foo'", +"input": "<span lang=ota-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kut-foo'", +"input": "<span lang=kut-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tkl-foo'", +"input": "<span lang=tkl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nld-foo'", +"input": "<span lang=nld-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oji-foo'", +"input": "<span lang=oji-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oci-foo'", +"input": "<span lang=oci-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ha-foo'", +"input": "<span lang=ha-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wol-foo'", +"input": "<span lang=wol-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jav-foo'", +"input": "<span lang=jav-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hrv-foo'", +"input": "<span lang=hrv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ger-foo'", +"input": "<span lang=ger-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mga-foo'", +"input": "<span lang=mga-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hit-foo'", +"input": "<span lang=hit-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dyu-foo'", +"input": "<span lang=dyu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ssw-foo'", +"input": "<span lang=ssw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'de-foo'", +"input": "<span lang=de-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'da-foo'", +"input": "<span lang=da-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dz-foo'", +"input": "<span lang=dz-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lui-foo'", +"input": "<span lang=lui-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dv-foo'", +"input": "<span lang=dv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ita-foo'", +"input": "<span lang=ita-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'geo-foo'", +"input": "<span lang=geo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'him-foo'", +"input": "<span lang=him-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gem-foo'", +"input": "<span lang=gem-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'crp-foo'", +"input": "<span lang=crp-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'qu-foo'", +"input": "<span lang=qu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bas-foo'", +"input": "<span lang=bas-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'baq-foo'", +"input": "<span lang=baq-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bad-foo'", +"input": "<span lang=bad-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nep-foo'", +"input": "<span lang=nep-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cre-foo'", +"input": "<span lang=cre-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ban-foo'", +"input": "<span lang=ban-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'x-foo'", +"input": "<span lang=x-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bal-foo'", +"input": "<span lang=bal-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bam-foo'", +"input": "<span lang=bam-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bak-foo'", +"input": "<span lang=bak-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'shn-foo'", +"input": "<span lang=shn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bai-foo'", +"input": "<span lang=bai-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arp-foo'", +"input": "<span lang=arp-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'art-foo'", +"input": "<span lang=art-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arw-foo'", +"input": "<span lang=arw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'qtz-foo'", +"input": "<span lang=qtz-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ara-foo'", +"input": "<span lang=ara-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arc-foo'", +"input": "<span lang=arc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arg-foo'", +"input": "<span lang=arg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sem-foo'", +"input": "<span lang=sem-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sel-foo'", +"input": "<span lang=sel-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nub-foo'", +"input": "<span lang=nub-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'arm-foo'", +"input": "<span lang=arm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'btk-foo'", +"input": "<span lang=btk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lus-foo'", +"input": "<span lang=lus-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iku-foo'", +"input": "<span lang=iku-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mus-foo'", +"input": "<span lang=mus-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lua-foo'", +"input": "<span lang=lua-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lub-foo'", +"input": "<span lang=lub-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lug-foo'", +"input": "<span lang=lug-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ira-foo'", +"input": "<span lang=ira-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mun-foo'", +"input": "<span lang=mun-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tur-foo'", +"input": "<span lang=tur-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lun-foo'", +"input": "<span lang=lun-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'luo-foo'", +"input": "<span lang=luo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'men-foo'", +"input": "<span lang=men-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wa-foo'", +"input": "<span lang=wa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tso-foo'", +"input": "<span lang=tso-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wo-foo'", +"input": "<span lang=wo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jv-foo'", +"input": "<span lang=jv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tut-foo'", +"input": "<span lang=tut-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ind-foo'", +"input": "<span lang=ind-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tuk-foo'", +"input": "<span lang=tuk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tum-foo'", +"input": "<span lang=tum-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ja-foo'", +"input": "<span lang=ja-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cop-foo'", +"input": "<span lang=cop-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cos-foo'", +"input": "<span lang=cos-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cor-foo'", +"input": "<span lang=cor-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ilo-foo'", +"input": "<span lang=ilo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fiu-foo'", +"input": "<span lang=fiu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gwi-foo'", +"input": "<span lang=gwi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'und-foo'", +"input": "<span lang=und-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gws-foo'", +"input": "<span lang=gws-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tli-foo'", +"input": "<span lang=tli-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tlh-foo'", +"input": "<span lang=tlh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nno-foo'", +"input": "<span lang=nno-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ch-foo'", +"input": "<span lang=ch-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'co-foo'", +"input": "<span lang=co-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ca-foo'", +"input": "<span lang=ca-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'por-foo'", +"input": "<span lang=por-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ce-foo'", +"input": "<span lang=ce-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pon-foo'", +"input": "<span lang=pon-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cy-foo'", +"input": "<span lang=cy-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sah-foo'", +"input": "<span lang=sah-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cs-foo'", +"input": "<span lang=cs-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cr-foo'", +"input": "<span lang=cr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ady-foo'", +"input": "<span lang=ady-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cv-foo'", +"input": "<span lang=cv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cu-foo'", +"input": "<span lang=cu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ps-foo'", +"input": "<span lang=ps-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fra-foo'", +"input": "<span lang=fra-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dum-foo'", +"input": "<span lang=dum-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pt-foo'", +"input": "<span lang=pt-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'swa-foo'", +"input": "<span lang=swa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dua-foo'", +"input": "<span lang=dua-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fro-foo'", +"input": "<span lang=fro-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yap-foo'", +"input": "<span lang=yap-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'frm-foo'", +"input": "<span lang=frm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tiv-foo'", +"input": "<span lang=tiv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'frs-foo'", +"input": "<span lang=frs-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'frr-foo'", +"input": "<span lang=frr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yao-foo'", +"input": "<span lang=yao-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pa-foo'", +"input": "<span lang=pa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'xal-foo'", +"input": "<span lang=xal-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fry-foo'", +"input": "<span lang=fry-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pi-foo'", +"input": "<span lang=pi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dut-foo'", +"input": "<span lang=dut-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pl-foo'", +"input": "<span lang=pl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gay-foo'", +"input": "<span lang=gay-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oto-foo'", +"input": "<span lang=oto-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sag-foo'", +"input": "<span lang=sag-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hmn-foo'", +"input": "<span lang=hmn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hmo-foo'", +"input": "<span lang=hmo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'an-foo'", +"input": "<span lang=an-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gaa-foo'", +"input": "<span lang=gaa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fur-foo'", +"input": "<span lang=fur-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mlg-foo'", +"input": "<span lang=mlg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'slv-foo'", +"input": "<span lang=slv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ain-foo'", +"input": "<span lang=ain-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fil-foo'", +"input": "<span lang=fil-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mlt-foo'", +"input": "<span lang=mlt-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'slk-foo'", +"input": "<span lang=slk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rar-foo'", +"input": "<span lang=rar-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ful-foo'", +"input": "<span lang=ful-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sla-foo'", +"input": "<span lang=sla-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 've-foo'", +"input": "<span lang=ve-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jpn-foo'", +"input": "<span lang=jpn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vol-foo'", +"input": "<span lang=vol-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vi-foo'", +"input": "<span lang=vi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'is-foo'", +"input": "<span lang=is-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kho-foo'", +"input": "<span lang=kho-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'iu-foo'", +"input": "<span lang=iu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'it-foo'", +"input": "<span lang=it-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'vo-foo'", +"input": "<span lang=vo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ii-foo'", +"input": "<span lang=ii-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ay-foo'", +"input": "<span lang=ay-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ik-foo'", +"input": "<span lang=ik-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'io-foo'", +"input": "<span lang=io-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kha-foo'", +"input": "<span lang=kha-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ia-foo'", +"input": "<span lang=ia-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ave-foo'", +"input": "<span lang=ave-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jpr-foo'", +"input": "<span lang=jpr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ie-foo'", +"input": "<span lang=ie-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ava-foo'", +"input": "<span lang=ava-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ig-foo'", +"input": "<span lang=ig-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pap-foo'", +"input": "<span lang=pap-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ewo-foo'", +"input": "<span lang=ewo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pau-foo'", +"input": "<span lang=pau-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ewe-foo'", +"input": "<span lang=ewe-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'paa-foo'", +"input": "<span lang=paa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'qaa-foo'", +"input": "<span lang=qaa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pag-foo'", +"input": "<span lang=pag-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sat-foo'", +"input": "<span lang=sat-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pal-foo'", +"input": "<span lang=pal-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pam-foo'", +"input": "<span lang=pam-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pan-foo'", +"input": "<span lang=pan-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'phi-foo'", +"input": "<span lang=phi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nog-foo'", +"input": "<span lang=nog-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'phn-foo'", +"input": "<span lang=phn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kir-foo'", +"input": "<span lang=kir-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nia-foo'", +"input": "<span lang=nia-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dgr-foo'", +"input": "<span lang=dgr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'syr-foo'", +"input": "<span lang=syr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kin-foo'", +"input": "<span lang=kin-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tup-foo'", +"input": "<span lang=tup-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'niu-foo'", +"input": "<span lang=niu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gsw-foo'", +"input": "<span lang=gsw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'epo-foo'", +"input": "<span lang=epo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'jbo-foo'", +"input": "<span lang=jbo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mic-foo'", +"input": "<span lang=mic-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tha-foo'", +"input": "<span lang=tha-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sam-foo'", +"input": "<span lang=sam-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hai-foo'", +"input": "<span lang=hai-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gmh-foo'", +"input": "<span lang=gmh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cus-foo'", +"input": "<span lang=cus-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ell-foo'", +"input": "<span lang=ell-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wen-foo'", +"input": "<span lang=wen-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bnt-foo'", +"input": "<span lang=bnt-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fre-foo'", +"input": "<span lang=fre-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'elx-foo'", +"input": "<span lang=elx-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ada-foo'", +"input": "<span lang=ada-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nav-foo'", +"input": "<span lang=nav-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hat-foo'", +"input": "<span lang=hat-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hau-foo'", +"input": "<span lang=hau-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'haw-foo'", +"input": "<span lang=haw-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bin-foo'", +"input": "<span lang=bin-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'amh-foo'", +"input": "<span lang=amh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bik-foo'", +"input": "<span lang=bik-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bih-foo'", +"input": "<span lang=bih-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mos-foo'", +"input": "<span lang=mos-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'moh-foo'", +"input": "<span lang=moh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mon-foo'", +"input": "<span lang=mon-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mol-foo'", +"input": "<span lang=mol-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bis-foo'", +"input": "<span lang=bis-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bla-foo'", +"input": "<span lang=bla-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pol-foo'", +"input": "<span lang=pol-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tib-foo'", +"input": "<span lang=tib-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tvl-foo'", +"input": "<span lang=tvl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tgk-foo'", +"input": "<span lang=tgk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ijo-foo'", +"input": "<span lang=ijo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'est-foo'", +"input": "<span lang=est-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kmb-foo'", +"input": "<span lang=kmb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ice-foo'", +"input": "<span lang=ice-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'peo-foo'", +"input": "<span lang=peo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tgl-foo'", +"input": "<span lang=tgl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'umb-foo'", +"input": "<span lang=umb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tmh-foo'", +"input": "<span lang=tmh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'fon-foo'", +"input": "<span lang=fon-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hsb-foo'", +"input": "<span lang=hsb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'be-foo'", +"input": "<span lang=be-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bg-foo'", +"input": "<span lang=bg-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'run-foo'", +"input": "<span lang=run-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ba-foo'", +"input": "<span lang=ba-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rum-foo'", +"input": "<span lang=rum-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bm-foo'", +"input": "<span lang=bm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bn-foo'", +"input": "<span lang=bn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bo-foo'", +"input": "<span lang=bo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bh-foo'", +"input": "<span lang=bh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bi-foo'", +"input": "<span lang=bi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'br-foo'", +"input": "<span lang=br-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bs-foo'", +"input": "<span lang=bs-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rus-foo'", +"input": "<span lang=rus-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'rup-foo'", +"input": "<span lang=rup-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'pli-foo'", +"input": "<span lang=pli-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'om-foo'", +"input": "<span lang=om-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oj-foo'", +"input": "<span lang=oj-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ace-foo'", +"input": "<span lang=ace-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ach-foo'", +"input": "<span lang=ach-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'oc-foo'", +"input": "<span lang=oc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'dzo-foo'", +"input": "<span lang=dzo-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kru-foo'", +"input": "<span lang=kru-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'srr-foo'", +"input": "<span lang=srr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ido-foo'", +"input": "<span lang=ido-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'srp-foo'", +"input": "<span lang=srp-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'kro-foo'", +"input": "<span lang=kro-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'krl-foo'", +"input": "<span lang=krl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'krc-foo'", +"input": "<span lang=krc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nds-foo'", +"input": "<span lang=nds-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'os-foo'", +"input": "<span lang=os-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'or-foo'", +"input": "<span lang=or-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zul-foo'", +"input": "<span lang=zul-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'twi-foo'", +"input": "<span lang=twi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sog-foo'", +"input": "<span lang=sog-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nso-foo'", +"input": "<span lang=nso-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'swe-foo'", +"input": "<span lang=swe-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'som-foo'", +"input": "<span lang=som-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'chm-foo'", +"input": "<span lang=chm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'snd-foo'", +"input": "<span lang=snd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sot-foo'", +"input": "<span lang=sot-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mkd-foo'", +"input": "<span lang=mkd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wak-foo'", +"input": "<span lang=wak-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'her-foo'", +"input": "<span lang=her-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'lol-foo'", +"input": "<span lang=lol-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mkh-foo'", +"input": "<span lang=mkh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'heb-foo'", +"input": "<span lang=heb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'loz-foo'", +"input": "<span lang=loz-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gil-foo'", +"input": "<span lang=gil-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'was-foo'", +"input": "<span lang=was-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'war-foo'", +"input": "<span lang=war-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hz-foo'", +"input": "<span lang=hz-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hy-foo'", +"input": "<span lang=hy-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sid-foo'", +"input": "<span lang=sid-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hr-foo'", +"input": "<span lang=hr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ht-foo'", +"input": "<span lang=ht-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hu-foo'", +"input": "<span lang=hu-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'hi-foo'", +"input": "<span lang=hi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ho-foo'", +"input": "<span lang=ho-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bul-foo'", +"input": "<span lang=bul-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'wal-foo'", +"input": "<span lang=wal-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bua-foo'", +"input": "<span lang=bua-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'bug-foo'", +"input": "<span lang=bug-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'he-foo'", +"input": "<span lang=he-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uz-foo'", +"input": "<span lang=uz-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aze-foo'", +"input": "<span lang=aze-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ur-foo'", +"input": "<span lang=ur-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zha-foo'", +"input": "<span lang=zha-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uk-foo'", +"input": "<span lang=uk-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ug-foo'", +"input": "<span lang=ug-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zho-foo'", +"input": "<span lang=zho-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'aa-foo'", +"input": "<span lang=aa-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ab-foo'", +"input": "<span lang=ab-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ae-foo'", +"input": "<span lang=ae-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'uig-foo'", +"input": "<span lang=uig-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'af-foo'", +"input": "<span lang=af-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ak-foo'", +"input": "<span lang=ak-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'am-foo'", +"input": "<span lang=am-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'myv-foo'", +"input": "<span lang=myv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'khi-foo'", +"input": "<span lang=khi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'as-foo'", +"input": "<span lang=as-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ar-foo'", +"input": "<span lang=ar-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'inh-foo'", +"input": "<span lang=inh-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'khm-foo'", +"input": "<span lang=khm-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'av-foo'", +"input": "<span lang=av-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mya-foo'", +"input": "<span lang=mya-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ine-foo'", +"input": "<span lang=ine-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'az-foo'", +"input": "<span lang=az-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ina-foo'", +"input": "<span lang=ina-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'inc-foo'", +"input": "<span lang=inc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nl-foo'", +"input": "<span lang=nl-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nn-foo'", +"input": "<span lang=nn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'no-foo'", +"input": "<span lang=no-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'na-foo'", +"input": "<span lang=na-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nb-foo'", +"input": "<span lang=nb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nai-foo'", +"input": "<span lang=nai-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nd-foo'", +"input": "<span lang=nd-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ne-foo'", +"input": "<span lang=ne-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tir-foo'", +"input": "<span lang=tir-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ng-foo'", +"input": "<span lang=ng-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ny-foo'", +"input": "<span lang=ny-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nap-foo'", +"input": "<span lang=nap-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gre-foo'", +"input": "<span lang=gre-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'grb-foo'", +"input": "<span lang=grb-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'grc-foo'", +"input": "<span lang=grc-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nau-foo'", +"input": "<span lang=nau-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'grn-foo'", +"input": "<span lang=grn-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nr-foo'", +"input": "<span lang=nr-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'tig-foo'", +"input": "<span lang=tig-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'yor-foo'", +"input": "<span lang=yor-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'nv-foo'", +"input": "<span lang=nv-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'mri-foo'", +"input": "<span lang=mri-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'may-foo'", +"input": "<span lang=may-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'zun-foo'", +"input": "<span lang=zun-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'ile-foo'", +"input": "<span lang=ile-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'sqi-foo'", +"input": "<span lang=sqi-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'gon-foo'", +"input": "<span lang=gon-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cpe-foo'", +"input": "<span lang=cpe-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cpf-foo'", +"input": "<span lang=cpf-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'cpp-foo'", +"input": "<span lang=cpp-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "invalid lang attribute 'foo'", +"input": "<span lang=foo>", +"fail-unless": "invalid-lang-code"}, + +{"description": "valid lang attribute 'EN'", +"input": "<span lang=EN>", +"fail-if": "invalid-lang-code"}, + +{"description": "valid lang attribute 'EN-foo'", +"input": "<span lang=EN-foo>", +"fail-if": "invalid-lang-code"}, + +{"description": "lang attribute can be blank", +"input": "<span lang>", +"fail-if": "invalid-lang-code"}, + +{"description": "lang attribute can be blank (with quotes)", +"input": "<span lang=''>", +"fail-if": "invalid-lang-code"}, + +{"description": "lang attribute can not be just space characters", +"input": "<span lang=' '>", +"fail-unless": "invalid-lang-code"}, + +{"description": "lang attribute can not contain leading spaces", +"input": "<span lang=' en'>", +"fail-unless": "invalid-lang-code"}, + +{"description": "lang attribute can not contain trailing spaces", +"input": "<span lang='en '>", +"fail-unless": "invalid-lang-code"} + +]}
\ No newline at end of file diff --git a/test/data/validator/li-value-attribute.test b/test/data/validator/li-value-attribute.test new file mode 100755 index 0000000..9ef9dcc --- /dev/null +++ b/test/data/validator/li-value-attribute.test @@ -0,0 +1,7 @@ +{"tests": [ + +{"description": "invalid li value attribute value due to leading junk", +"input": "<li value=a1>", +"fail-unless": "invalid-integer-value"} + +]}
\ No newline at end of file diff --git a/test/data/validator/link-href-attribute.test b/test/data/validator/link-href-attribute.test new file mode 100755 index 0000000..950c378 --- /dev/null +++ b/test/data/validator/link-href-attribute.test @@ -0,0 +1,7 @@ +{"tests": [ + +{"description": "link href contains invalid URI due to space in domain", +"input": "<link href='http://www.example. com/'", +"fail-unless": "invalid-uri-char"} + +]}
\ No newline at end of file diff --git a/test/data/validator/link-hreflang-attribute.test b/test/data/validator/link-hreflang-attribute.test new file mode 100755 index 0000000..de39d4d --- /dev/null +++ b/test/data/validator/link-hreflang-attribute.test @@ -0,0 +1,7 @@ +{"tests": [ + +{"description": "invalid lang attribute 'foo'", +"input": "<link hreflang=foo>", +"fail-unless": "invalid-lang-code"} + +]}
\ No newline at end of file diff --git a/test/data/validator/link-rel-attribute.test b/test/data/validator/link-rel-attribute.test new file mode 100755 index 0000000..a436751 --- /dev/null +++ b/test/data/validator/link-rel-attribute.test @@ -0,0 +1,271 @@ +{"tests": [ + +{"description": "invalid link rel value 'foo'", +"input": "<link rel=foo>", +"fail-unless": "invalid-rel"}, + +{"description": "valid link rel value 'alternate stylesheet'", +"input": "<link rel='alternate stylesheet'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading space", +"input": "<link rel=' stylesheet'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with trailing space", +"input": "<link rel='stylesheet '>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading and trailing space", +"input": "<link rel=' stylesheet '>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading tab", +"input": "<link rel='\tstylesheet'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with trailing tab", +"input": "<link rel='stylesheet\t'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading and trailing tab", +"input": "<link rel='\tstylesheet\t'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading LF", +"input": "<link rel='\nstylesheet'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with trailing LF", +"input": "<link rel='stylesheet\n'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading and trailing LF", +"input": "<link rel='\nstylesheet\n'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading LT", +"input": "<link rel='\u000Bstylesheet'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with trailing LT", +"input": "<link rel='stylesheet\u000B'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading and trailing LT", +"input": "<link rel='\u000Bstylesheet\u000B'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading FF", +"input": "<link rel='\u000Cstylesheet'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with trailing FF", +"input": "<link rel='stylesheet\u000C'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading and trailing FF", +"input": "<link rel='\u000Cstylesheet\u000C'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading CR", +"input": "<link rel='\rstylesheet'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with trailing CR", +"input": "<link rel='stylesheet\r'>", +"fail-if": "invalid-rel"}, + +{"description": "valid single link rel value with leading and trailing CR", +"input": "<link rel='\rstylesheet\r'>", +"fail-if": "invalid-rel"}, + +{"description": "valid double link rel value separated by space", +"input": "<link rel='stylesheet alternate'>", +"fail-if": "invalid-rel"}, + +{"description": "valid double link rel value separated by tab", +"input": "<link rel='stylesheet\talternate'>", +"fail-if": "invalid-rel"}, + +{"description": "valid double link rel value separated by LF", +"input": "<link rel='stylesheet\nalternate'>", +"fail-if": "invalid-rel"}, + +{"description": "valid double link rel value separated by LT", +"input": "<link rel='stylesheet\u000Balternate'>", +"fail-if": "invalid-rel"}, + +{"description": "valid double link rel value separated by FF", +"input": "<link rel='stylesheet\u000Calternate'>", +"fail-if": "invalid-rel"}, + +{"description": "valid double link rel value separated by CR", +"input": "<link rel='stylesheet\ralternate'>", +"fail-if": "invalid-rel"}, + +{"description": "invalid duplicated link rel value separated by space", +"input": "<link rel='stylesheet stylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by tab", +"input": "<link rel='stylesheet\tstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by LF", +"input": "<link rel='stylesheet\nstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by LT", +"input": "<link rel='stylesheet\u000Bstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by FF", +"input": "<link rel='stylesheet\u000Cstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by CR", +"input": "<link rel='stylesheet\rstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by space", +"input": "<link rel='stylesheet stylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by tab", +"input": "<link rel='stylesheet\tstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by LF", +"input": "<link rel='stylesheet\nstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by LT", +"input": "<link rel='stylesheet\u000Bstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by FF", +"input": "<link rel='stylesheet\u000Cstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "invalid duplicated link rel value separated by CR", +"input": "<link rel='stylesheet\rstylesheet'>", +"fail-unless": "duplicate-value-in-token-list"}, + +{"description": "valid link rel value 'feed'", +"input": "<link rel=feed>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'help'", +"input": "<link rel=help>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'tag'", +"input": "<link rel=tag>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'sidebar'", +"input": "<link rel=sidebar>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'archive'", +"input": "<link rel=archive>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'contents'", +"input": "<link rel=contents>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'previous'", +"input": "<link rel=previous>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'index'", +"input": "<link rel=index>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'end'", +"input": "<link rel=end>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'copyright'", +"input": "<link rel=copyright>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'author'", +"input": "<link rel=author>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'top'", +"input": "<link rel=top>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'alternate'", +"input": "<link rel=alternate>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'next'", +"input": "<link rel=next>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'start'", +"input": "<link rel=start>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'stylesheet'", +"input": "<link rel=stylesheet>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'archives'", +"input": "<link rel=archives>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'toc'", +"input": "<link rel=toc>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'prev'", +"input": "<link rel=prev>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'begin'", +"input": "<link rel=begin>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'icon'", +"input": "<link rel=icon>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'search'", +"input": "<link rel=search>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'last'", +"input": "<link rel=last>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'license'", +"input": "<link rel=license>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'pingback'", +"input": "<link rel=pingback>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'up'", +"input": "<link rel=up>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'contact'", +"input": "<link rel=contact>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'prefetch'", +"input": "<link rel=prefetch>", +"fail-if": "invalid-rel"}, + +{"description": "valid link rel value 'first'", +"input": "<link rel=first>", +"fail-if": "invalid-rel"} + +]} diff --git a/test/data/validator/ol-start-attribute.test b/test/data/validator/ol-start-attribute.test new file mode 100755 index 0000000..5e18cbe --- /dev/null +++ b/test/data/validator/ol-start-attribute.test @@ -0,0 +1,7 @@ +{"tests": [ + +{"description": "invalid ol start attribute value due to leading junk", +"input": "<ol start=a1>", +"fail-unless": "invalid-integer-value"} + +]}
\ No newline at end of file diff --git a/test/data/validator/starttags.test b/test/data/validator/starttags.test new file mode 100755 index 0000000..0aa5b4d --- /dev/null +++ b/test/data/validator/starttags.test @@ -0,0 +1,375 @@ +{"tests": [ + +{"description": "unknown start tag <foo>", +"input": "<foo>", +"fail-unless": "unknown-start-tag"}, + +{"description": "allowed start tag <code>", +"input": "<code>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <kbd>", +"input": "<kbd>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <aside>", +"input": "<aside>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <datagrid>", +"input": "<datagrid>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <font>", +"input": "<font>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <noscript>", +"input": "<noscript>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <style>", +"input": "<style>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <img>", +"input": "<img>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <title>", +"input": "<title>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <menu>", +"input": "<menu>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <tr>", +"input": "<tr>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <param>", +"input": "<param>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <li>", +"input": "<li>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <source>", +"input": "<source>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <tfoot>", +"input": "<tfoot>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <th>", +"input": "<th>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <td>", +"input": "<td>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <dl>", +"input": "<dl>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <blockquote>", +"input": "<blockquote>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <dd>", +"input": "<dd>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <abbr>", +"input": "<abbr>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <dt>", +"input": "<dt>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <noembed>", +"input": "<noembed>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <p>", +"input": "<p>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <small>", +"input": "<small>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <meter>", +"input": "<meter>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <em>", +"input": "<em>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <meta>", +"input": "<meta>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <video>", +"input": "<video>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <div>", +"input": "<div>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <canvas>", +"input": "<canvas>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <sub>", +"input": "<sub>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <section>", +"input": "<section>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <sup>", +"input": "<sup>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <progress>", +"input": "<progress>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <body>", +"input": "<body>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <base>", +"input": "<base>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <br>", +"input": "<br>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <address>", +"input": "<address>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <article>", +"input": "<article>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <strong>", +"input": "<strong>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <legend>", +"input": "<legend>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <event-source>", +"input": "<event-source>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <ol>", +"input": "<ol>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <script>", +"input": "<script>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <caption>", +"input": "<caption>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <dialog>", +"input": "<dialog>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <col>", +"input": "<col>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <h2>", +"input": "<h2>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <h3>", +"input": "<h3>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <h1>", +"input": "<h1>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <h6>", +"input": "<h6>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <h4>", +"input": "<h4>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <h5>", +"input": "<h5>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <header>", +"input": "<header>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <table>", +"input": "<table>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <span>", +"input": "<span>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <area>", +"input": "<area>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <dfn>", +"input": "<dfn>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <var>", +"input": "<var>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <cite>", +"input": "<cite>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <thead>", +"input": "<thead>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <head>", +"input": "<head>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <hr>", +"input": "<hr>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <link>", +"input": "<link>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <datatemplate>", +"input": "<datatemplate>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <b>", +"input": "<b>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <colgroup>", +"input": "<colgroup>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <ul>", +"input": "<ul>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <del>", +"input": "<del>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <iframe>", +"input": "<iframe>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <pre>", +"input": "<pre>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <figure>", +"input": "<figure>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <ins>", +"input": "<ins>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <tbody>", +"input": "<tbody>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <html>", +"input": "<html>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <nav>", +"input": "<nav>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <details>", +"input": "<details>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <samp>", +"input": "<samp>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <map>", +"input": "<map>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <nest>", +"input": "<nest>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <object>", +"input": "<object>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <a>", +"input": "<a>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <footer>", +"input": "<footer>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <i>", +"input": "<i>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <m>", +"input": "<m>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <rule>", +"input": "<rule>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <q>", +"input": "<q>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <command>", +"input": "<command>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <time>", +"input": "<time>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <audio>", +"input": "<audio>", +"fail-if": "unknown-start-tag"}, + +{"description": "allowed start tag <bdo>", +"input": "<bdo>", +"fail-if": "unknown-start-tag"} + +]} diff --git a/test/data/validator/style-scoped-attribute.test b/test/data/validator/style-scoped-attribute.test new file mode 100755 index 0000000..f47795a --- /dev/null +++ b/test/data/validator/style-scoped-attribute.test @@ -0,0 +1,7 @@ +{"tests": [ + +{"description": "invalid style scoped attribute value 'inherit'", +"input": "<style scoped=inherit>", +"fail-unless": "invalid-boolean-value"} + +]}
\ No newline at end of file diff --git a/test/data/validator/tabindexattribute.test b/test/data/validator/tabindexattribute.test new file mode 100755 index 0000000..0206695 --- /dev/null +++ b/test/data/validator/tabindexattribute.test @@ -0,0 +1,79 @@ +{"tests": [ + +{"description": "valid tabindex attribute value '-1'", +"input": "<span tabindex=-1>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value '0'", +"input": "<span tabindex=0>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value '1'", +"input": "<span tabindex=1>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value '32768'", +"input": "<span tabindex=32768>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value '-32768'", +"input": "<span tabindex=-32768>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value with leading spaces", +"input": "<span tabindex=' -32768'>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value with trailing spaces", +"input": "<span tabindex='-32768 '>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value with trailing junk", +"input": "<span tabindex='32768a'>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value with trailing junk and whitespace", +"input": "<span tabindex='32768a '>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value with trailing whitespace and junk", +"input": "<span tabindex='32768 a'>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value with leading spaces", +"input": "<span tabindex=' 32768'>", +"fail-if": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value with leading spaces (with sign)", +"input": "<span tabindex=' -32768'>", +"fail-if": "invalid-integer-value"}, + +{"description": "invalid tabindex attribute value (blank)", +"input": "<span tabindex>", +"fail-unless": "attribute-value-can-not-be-blank"}, + +{"description": "invalid tabindex attribute value due to leading junk", +"input": "<span tabindex=a1>", +"fail-unless": "invalid-integer-value"}, + +{"description": "invalid tabindex attribute value due to two hyphens", +"input": "<span tabindex=--1>", +"fail-unless": "invalid-integer-value"}, + +{"description": "invalid tabindex attribute value due to non-numeric", +"input": "<span tabindex=foo>", +"fail-unless": "invalid-integer-value"}, + +{"description": "invalid tabindex attribute value due to positive sign", +"input": "<span tabindex=+1>", +"fail-unless": "invalid-integer-value"}, + +{"description": "invalid tabindex attribute value due to decimal point", +"input": "<span tabindex=.1>", +"fail-unless": "invalid-integer-value"}, + +{"description": "valid tabindex attribute value with trailing decimal point", +"input": "<span tabindex=1.0>", +"fail-if": "invalid-integer-value"} + +]}
\ No newline at end of file |