use Test::More 'no_plan';
use Test::Exception;
use Test::File;
use utf8;
use strict;
use Getopt::Long;
use warnings;

my %simple_errors = (
    'span-dan.xml' => {
        "" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-l dan" => "\"Fornuftigt Madstel\" ",
        "-l nob" => "I 1864 ga han ut boka . ¶\n",
        "-a" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-C" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-ort" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-ortreal" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-morphsyn" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-syn" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-lex" => "I 1864 ga han ut boka \"Fornuftigt Madstel\" . ¶\n",
        "-typos" => "",
        "-f -typos" => "",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-f -S" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-S -C" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-S -ort" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-S -ort -C" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-S -ortreal" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-S -morphsyn" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-S -syn" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-S -lex" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
        "-a -S" => "I\n1864\nga\nhan\nut\nboka\n\"Fornuftigt\nMadstel\"\n.\n",
    },
    'list-sme.xml' => {
        "" => "",
        "-l sme" => "",
        "-l nob" => "",
        "-a" => "Ole Henrik Magga, Guovdageaidnu (1989–1997) ¶\nSven-Roald Nystø, Dievtasvuotna/Tysfjord (1997–2005) ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "Ole Henrik Magga, Guovdageaidnu (1989–1997) ¶\nSven-Roald Nystø, Dievtasvuotna/Tysfjord (1997–2005) ¶\n",
        "-t" => "",
        "-c" => "",
        "-C" => "",
        "-ort" => "",
        "-ortreal" => "",
        "-morphsyn" => "",
        "-syn" => "",
        "-lex" => "",
        "-typos" => "",
        "-f -typos" => "",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "",
        "-f -S" => "",
        "-S -C" => "",
        "-S -ort" => "",
        "-S -ort -C" => "",
        "-S -ortreal" => "",
        "-S -morphsyn" => "",
        "-S -syn" => "",
        "-S -lex" => "",
        "-a -S" => "Ole\nHenrik\nMagga,\nGuovdageaidnu\n(1989–1997)\nSven-Roald\nNystø,\nDievtasvuotna/Tysfjord\n(1997–2005)\n",
    },
    'p-sme-errorlex.xml' => {
        "" => "Dánmárkku olgoáššiidministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-l sme" => "Dánmárkku olgoáššiidministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-l nob" => "",
        "-a" => "Dánmárkku olgoáššiidministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "Dánmárkku olgoriikaministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-C" => "Dánmárkku olgoáššiidministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-ort" => "Dánmárkku olgoáššiidministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-ortreal" => "Dánmárkku olgoáššiidministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-morphsyn" => "Dánmárkku olgoáššiidministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-syn" => "Dánmárkku olgoáššiidministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-lex" => "Dánmárkku olgoriikaministtar Lene Espersen muitalii čoakkáma álggus Dánmárkku árktalaš ráđi ságadoalli áigodaga ulbmiliin. ¶\n",
        "-typos" => "olgoáššiidministtar\tolgoriikaministtar\n",
        "-f -typos" => "olgoáššiidministtar\tolgoriikaministtar\t#file: p-sme-errorlex.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "olgoáššiidministtar\tolgoriikaministtar\n",
        "-S" => "Dánmárkku\nolgoáššiidministtar\tolgoriikaministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-f -S" => "Dánmárkku\nolgoáššiidministtar\tolgoriikaministtar\t#file: p-sme-errorlex.xml\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-S -C" => "Dánmárkku\nolgoáššiidministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-S -ort" => "Dánmárkku\nolgoáššiidministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-S -ort -C" => "Dánmárkku\nolgoáššiidministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-S -ortreal" => "Dánmárkku\nolgoáššiidministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-S -morphsyn" => "Dánmárkku\nolgoáššiidministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-S -syn" => "Dánmárkku\nolgoáššiidministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-S -lex" => "Dánmárkku\nolgoáššiidministtar\tolgoriikaministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
        "-a -S" => "Dánmárkku\nolgoáššiidministtar\tolgoriikaministtar\nLene\nEspersen\nmuitalii\nčoakkáma\nálggus\nDánmárkku\nárktalaš\nráđi\nságadoalli\náigodaga\nulbmiliin.\n",
    },
    'p-sme-errorort.xml' => {
        "" => "sohkabealli mearreduvvo árbbi mielde. ¶\n",
        "-l sme" => "sohkabealli mearreduvvo árbbi mielde. ¶\n",
        "-l nob" => "",
        "-a" => "sohkabealli mearreduvvo árbbi mielde. ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "sohkabealli mearriduvvo árbbi mielde. ¶\n",
        "-C" => "sohkabealli mearreduvvo árbbi mielde. ¶\n",
        "-ort" => "sohkabealli mearriduvvo árbbi mielde. ¶\n",
        "-ortreal" => "sohkabealli mearreduvvo árbbi mielde. ¶\n",
        "-morphsyn" => "sohkabealli mearreduvvo árbbi mielde. ¶\n",
        "-syn" => "sohkabealli mearreduvvo árbbi mielde. ¶\n",
        "-lex" => "sohkabealli mearreduvvo árbbi mielde. ¶\n",
        "-typos" => "mearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb\n",
        "-f -typos" => "mearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb, file: p-sme-errorort.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "mearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb\n",
        "-typos -ort -C" => "mearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "sohkabealli\nmearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb\nárbbi\nmielde.\n",
        "-f -S" => "sohkabealli\nmearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb, file: p-sme-errorort.xml\nárbbi\nmielde.\n",
        "-S -C" => "sohkabealli\nmearreduvvo\nárbbi\nmielde.\n",
        "-S -ort" => "sohkabealli\nmearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb\nárbbi\nmielde.\n",
        "-S -ort -C" => "sohkabealli\nmearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb\nárbbi\nmielde.\n",
        "-S -ortreal" => "sohkabealli\nmearreduvvo\nárbbi\nmielde.\n",
        "-S -morphsyn" => "sohkabealli\nmearreduvvo\nárbbi\nmielde.\n",
        "-S -syn" => "sohkabealli\nmearreduvvo\nárbbi\nmielde.\n",
        "-S -lex" => "sohkabealli\nmearreduvvo\nárbbi\nmielde.\n",
        "-a -S" => "sohkabealli\nmearreduvvo\tmearriduvvo\t#errtype=soggi,pos=verb\nárbbi\nmielde.\n",
    },
    'p-sme.xml' => {
        "" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-l sme" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-l nob" => "",
        "-a" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-C" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-ort" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-ortreal" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-morphsyn" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-syn" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-lex" => "Ihtin lea ruohttabeaivi. ¶\n",
        "-typos" => "",
        "-f -typos" => "",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-f -S" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-S -C" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-S -ort" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-S -ort -C" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-S -ortreal" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-S -morphsyn" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-S -syn" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-S -lex" => "Ihtin\nlea\nruohttabeaivi.\n",
        "-a -S" => "Ihtin\nlea\nruohttabeaivi.\n",
    },
    'p-sme-errormorphsyn.xml' => {
        "" => "nu ahte varrásat leat x0-tiippa . ¶\n",
        "-l sme" => "nu ahte varrásat leat x0-tiippa . ¶\n",
        "-l nob" => "",
        "-a" => "nu ahte varrásat leat x0-tiippa . ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "nu ahte varrásat leat x0-tiippat . ¶\n",
        "-C" => "nu ahte varrásat leat x0-tiippa . ¶\n",
        "-ort" => "nu ahte varrásat leat x0-tiippa . ¶\n",
        "-ortreal" => "nu ahte varrásat leat x0-tiippa . ¶\n",
        "-morphsyn" => "nu ahte varrásat leat x0-tiippat . ¶\n",
        "-syn" => "nu ahte varrásat leat x0-tiippa . ¶\n",
        "-lex" => "nu ahte varrásat leat x0-tiippa . ¶\n",
        "-typos" => "varrásat leat x0-tiippa\tvarrásat leat x0-tiippat\t#cat=nomsg,const=spred,errtype=num,orig=nompl,pos=noun\n",
        "-f -typos" => "varrásat leat x0-tiippa\tvarrásat leat x0-tiippat\t#cat=nomsg,const=spred,errtype=num,orig=nompl,pos=noun, file: p-sme-errormorphsyn.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "varrásat leat x0-tiippa\tvarrásat leat x0-tiippat\t#cat=nomsg,const=spred,errtype=num,orig=nompl,pos=noun\n",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "nu\nahte\nvarrásat leat x0-tiippa\tvarrásat leat x0-tiippat\t#cat=nomsg,const=spred,errtype=num,orig=nompl,pos=noun\n.\n",
        "-f -S" => "nu\nahte\nvarrásat leat x0-tiippa\tvarrásat leat x0-tiippat\t#cat=nomsg,const=spred,errtype=num,orig=nompl,pos=noun, file: p-sme-errormorphsyn.xml\n.\n",
        "-S -C" => "nu\nahte\nvarrásat\nleat\nx0-tiippa\n.\n",
        "-S -ort" => "nu\nahte\nvarrásat\nleat\nx0-tiippa\n.\n",
        "-S -ort -C" => "nu\nahte\nvarrásat\nleat\nx0-tiippa\n.\n",
        "-S -ortreal" => "nu\nahte\nvarrásat\nleat\nx0-tiippa\n.\n",
        "-S -morphsyn" => "nu\nahte\nvarrásat leat x0-tiippa\tvarrásat leat x0-tiippat\t#cat=nomsg,const=spred,errtype=num,orig=nompl,pos=noun\n.\n",
        "-S -syn" => "nu\nahte\nvarrásat\nleat\nx0-tiippa\n.\n",
        "-S -lex" => "nu\nahte\nvarrásat\nleat\nx0-tiippa\n.\n",
        "-a -S" => "nu\nahte\nvarrásat leat x0-tiippa\tvarrásat leat x0-tiippat\t#cat=nomsg,const=spred,errtype=num,orig=nompl,pos=noun\n.\n",
    },
    'p-sme-errorsyn.xml' => {
        "" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul ahte movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-l sme" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul ahte movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-l nob" => "",
        "-a" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul ahte movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul   movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-C" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul ahte movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-ort" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul ahte movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-ortreal" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul ahte movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-morphsyn" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul ahte movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-syn" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul   movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-lex" => "Sivilisašuvdna definerejuvvo dávjá dan vuođul ahte movt dat meannuda iežas geahnohepmosiid. ¶\n",
        "-typos" => "ahte\t \t#errtype=redun,pos=cs\n",
        "-f -typos" => "ahte\t \t#errtype=redun,pos=cs, file: p-sme-errorsyn.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "ahte\t \t#errtype=redun,pos=cs\n",
        "-typos -lex" => "",
        "-S" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\t \t#errtype=redun,pos=cs\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-f -S" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\t \t#errtype=redun,pos=cs, file: p-sme-errorsyn.xml\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-S -C" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-S -ort" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-S -ort -C" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-S -ortreal" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-S -morphsyn" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-S -syn" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\t \t#errtype=redun,pos=cs\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-S -lex" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
        "-a -S" => "Sivilisašuvdna\ndefinerejuvvo\ndávjá\ndan\nvuođul\nahte\t \t#errtype=redun,pos=cs\nmovt\ndat\nmeannuda\niežas\ngeahnohepmosiid.\n",
    },
# 'table.xml',
    'p-sme-errorortreal.xml' => {
        "" => "begynner å borre noen ¶\nJus dat leačča duohta de eat leat beare guhkás joavdan. ¶\n",
        "-l sme" => "begynner å borre noen ¶\nJus dat leačča duohta de eat leat beare guhkás joavdan. ¶\n",
        "-l nob" => "",
        "-a" => "begynner å borre noen ¶\nJus dat leačča duohta de eat leat beare guhkás joavdan. ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "begynner å bore noen ¶\nJus dat leačča duohta de eat leat beare guhkas joavdan. ¶\n",
        "-C" => "begynner å borre noen ¶\nJus dat leačča duohta de eat leat beare guhkás joavdan. ¶\n",
        "-ort" => "begynner å bore noen ¶\nJus dat leačča duohta de eat leat beare guhkás joavdan. ¶\n",
        "-ortreal" => "begynner å borre noen ¶\nJus dat leačča duohta de eat leat beare guhkas joavdan. ¶\n",
        "-morphsyn" => "begynner å borre noen ¶\nJus dat leačča duohta de eat leat beare guhkás joavdan. ¶\n",
        "-syn" => "begynner å borre noen ¶\nJus dat leačča duohta de eat leat beare guhkás joavdan. ¶\n",
        "-lex" => "begynner å borre noen ¶\nJus dat leačča duohta de eat leat beare guhkás joavdan. ¶\n",
        "-typos" => "å borre\tå bore\t#errtype=onec,pos=verb\nguhkás\tguhkas\t#errtype=á,pos=adv\n",
        "-f -typos" => "å borre\tå bore\t#errtype=onec,pos=verb, file: p-sme-errorortreal.xml\nguhkás\tguhkas\t#errtype=á,pos=adv, file: p-sme-errorortreal.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "å borre\tå bore\t#errtype=onec,pos=verb\n",
        "-typos -ort -C" => "å borre\tå bore\t#errtype=onec,pos=verb\n",
        "-typos -ortreal" => "guhkás\tguhkas\t#errtype=á,pos=adv\n",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "begynner\nå borre\tå bore\t#errtype=onec,pos=verb\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\tguhkas\t#errtype=á,pos=adv\njoavdan.\n",
        "-f -S" => "begynner\nå borre\tå bore\t#errtype=onec,pos=verb, file: p-sme-errorortreal.xml\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\tguhkas\t#errtype=á,pos=adv, file: p-sme-errorortreal.xml\njoavdan.\n",
        "-S -C" => "begynner\nå\nborre\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\njoavdan.\n",
        "-S -ort" => "begynner\nå borre\tå bore\t#errtype=onec,pos=verb\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\njoavdan.\n",
        "-S -ort -C" => "begynner\nå borre\tå bore\t#errtype=onec,pos=verb\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\njoavdan.\n",
        "-S -ortreal" => "begynner\nå\nborre\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\tguhkas\t#errtype=á,pos=adv\njoavdan.\n",
        "-S -morphsyn" => "begynner\nå\nborre\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\njoavdan.\n",
        "-S -syn" => "begynner\nå\nborre\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\njoavdan.\n",
        "-S -lex" => "begynner\nå\nborre\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\njoavdan.\n",
        "-a -S" => "begynner\nå borre\tå bore\t#errtype=onec,pos=verb\nnoen\nJus\ndat\nleačča\nduohta\nde\neat\nleat\nbeare\nguhkás\tguhkas\t#errtype=á,pos=adv\njoavdan.\n",
    },
    'p-sme-error.xml' => {
        "" => "MáRKANSLUSKA ¶\n",
        "-l sme" => "MáRKANSLUSKA ¶\n",
        "-l nob" => "",
        "-a" => "MáRKANSLUSKA ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "MÁRKANSLUSKA ¶\n",
        "-C" => "MÁRKANSLUSKA ¶\n",
        "-ort" => "MáRKANSLUSKA ¶\n",
        "-ortreal" => "MáRKANSLUSKA ¶\n",
        "-morphsyn" => "MáRKANSLUSKA ¶\n",
        "-syn" => "MáRKANSLUSKA ¶\n",
        "-lex" => "MáRKANSLUSKA ¶\n",
        "-typos" => "MáRKANSLUSKA\tMÁRKANSLUSKA\n",
        "-f -typos" => "MáRKANSLUSKA\tMÁRKANSLUSKA\t#file: p-sme-error.xml\n",
        "-typos -C" => "MáRKANSLUSKA\tMÁRKANSLUSKA\n",
        "-typos -ort" => "",
        "-typos -ort -C" => "MáRKANSLUSKA\tMÁRKANSLUSKA\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "MáRKANSLUSKA\tMÁRKANSLUSKA\n",
        "-f -S" => "MáRKANSLUSKA\tMÁRKANSLUSKA\t#file: p-sme-error.xml\n",
        "-S -C" => "MáRKANSLUSKA\tMÁRKANSLUSKA\n",
        "-S -ort" => "MáRKANSLUSKA\n",
        "-S -ort -C" => "MáRKANSLUSKA\tMÁRKANSLUSKA\n",
        "-S -ortreal" => "MáRKANSLUSKA\n",
        "-S -morphsyn" => "MáRKANSLUSKA\n",
        "-S -syn" => "MáRKANSLUSKA\n",
        "-S -lex" => "MáRKANSLUSKA\n",
        "-a -S" => "MáRKANSLUSKA\tMÁRKANSLUSKA\n",
    },
    'p-nob.xml' => {
        "" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-l sme" => "",
        "-l nob" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-a" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-C" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-ort" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-ortreal" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-morphsyn" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-syn" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-lex" => "TINGRIK OG TIDFATTIG..? ¶\n",
        "-typos" => "",
        "-f -typos" => "",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-f -S" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-S -C" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-S -ort" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-S -ort -C" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-S -ortreal" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-S -morphsyn" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-S -syn" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-S -lex" => "TINGRIK\nOG\nTIDFATTIG..?\n",
        "-a -S" => "TINGRIK\nOG\nTIDFATTIG..?\n",
    },
    'p-sma-title.xml' => {
        "" => "",
        "-l sme" => "",
        "-l nob" => "",
        "-a" => "1. MAADTHVUAJNOE JÏH VISJOVNH 5 ¶\n",
        "-T" => "1. MAADTHVUAJNOE JÏH VISJOVNH 5 ¶\n",
        "-T -l sma" => "1. MAADTHVUAJNOE JÏH VISJOVNH 5 ¶\n",
        "-L" => "",
        "-t" => "",
        "-c" => "",
        "-C" => "",
        "-ort" => "",
        "-ortreal" => "",
        "-morphsyn" => "",
        "-syn" => "",
        "-lex" => "",
        "-typos" => "",
        "-f -typos" => "",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "",
        "-f -S" => "",
        "-S -C" => "",
        "-S -ort" => "",
        "-S -ort -C" => "",
        "-S -ortreal" => "",
        "-S -morphsyn" => "",
        "-S -syn" => "",
        "-S -lex" => "",
        "-a -S" => "1.\nMAADTHVUAJNOE\nJÏH\nVISJOVNH\n5\n",
    },
    'p-nob-with-nno.xml' => {
        "" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppsluning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgelige side fant sine idealer i italia og tyskland . ¶\n",
        "-l nno" => "De ytterliggående på borgelige side fant sine idealer i italia og tyskland . ¶\n",
        "-l nob" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppsluning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\n",
        "-a" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppsluning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgelige side fant sine idealer i italia og tyskland . ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppslutning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgerlige side fant sine idealer i Italia og Tyskland . ¶\n",
        "-C" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppsluning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgelige side fant sine idealer i italia og tyskland . ¶\n",
        "-ort" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppslutning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgerlige side fant sine idealer i Italia og Tyskland . ¶\n",
        "-ortreal" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppsluning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgelige side fant sine idealer i italia og tyskland . ¶\n",
        "-morphsyn" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppsluning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgelige side fant sine idealer i italia og tyskland . ¶\n",
        "-syn" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppsluning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgelige side fant sine idealer i italia og tyskland . ¶\n",
        "-lex" => "Et stykke av Norge som er lite kjent - Litt om Norge i mellomkrigstiden ¶\nAntidemokratiske strømninger ¶\nI den urolige mellomkrigstiden fikk ytterfløyene i politikken økt oppsluning . De som mistet troen på det politiske systemet og ønsket å svekke eller avskaffe regjering og storting fikk vind i seilene. ¶\nDe ytterliggående på borgelige side fant sine idealer i italia og tyskland . ¶\n",
        "-typos" => "oppsluning\toppslutning\t#errtype=con,pos=noun\nborgelige\tborgerlige\t#errtype=con,pos=adj\nitalia\tItalia\t#errtype=cap,pos=noun\ntyskland\tTyskland\t#errtype=cap,pos=noun\n",
        "-f -typos" => "oppsluning\toppslutning\t#errtype=con,pos=noun, file: p-nob-with-nno.xml\nborgelige\tborgerlige\t#errtype=con,pos=adj, file: p-nob-with-nno.xml\nitalia\tItalia\t#errtype=cap,pos=noun, file: p-nob-with-nno.xml\ntyskland\tTyskland\t#errtype=cap,pos=noun, file: p-nob-with-nno.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "oppsluning\toppslutning\t#errtype=con,pos=noun\nborgelige\tborgerlige\t#errtype=con,pos=adj\nitalia\tItalia\t#errtype=cap,pos=noun\ntyskland\tTyskland\t#errtype=cap,pos=noun\n",
        "-typos -ort -C" => "oppsluning\toppslutning\t#errtype=con,pos=noun\nborgelige\tborgerlige\t#errtype=con,pos=adj\nitalia\tItalia\t#errtype=cap,pos=noun\ntyskland\tTyskland\t#errtype=cap,pos=noun\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\toppslutning\t#errtype=con,pos=noun\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\tborgerlige\t#errtype=con,pos=adj\nside\nfant\nsine\nidealer\ni\nitalia\tItalia\t#errtype=cap,pos=noun\nog\ntyskland\tTyskland\t#errtype=cap,pos=noun\n.\n",
        "-f -S" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\toppslutning\t#errtype=con,pos=noun, file: p-nob-with-nno.xml\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\tborgerlige\t#errtype=con,pos=adj, file: p-nob-with-nno.xml\nside\nfant\nsine\nidealer\ni\nitalia\tItalia\t#errtype=cap,pos=noun, file: p-nob-with-nno.xml\nog\ntyskland\tTyskland\t#errtype=cap,pos=noun, file: p-nob-with-nno.xml\n.\n",
        "-S -C" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\nside\nfant\nsine\nidealer\ni\nitalia\nog\ntyskland\n.\n",
        "-S -ort" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\toppslutning\t#errtype=con,pos=noun\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\tborgerlige\t#errtype=con,pos=adj\nside\nfant\nsine\nidealer\ni\nitalia\tItalia\t#errtype=cap,pos=noun\nog\ntyskland\tTyskland\t#errtype=cap,pos=noun\n.\n",
        "-S -ort -C" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\toppslutning\t#errtype=con,pos=noun\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\tborgerlige\t#errtype=con,pos=adj\nside\nfant\nsine\nidealer\ni\nitalia\tItalia\t#errtype=cap,pos=noun\nog\ntyskland\tTyskland\t#errtype=cap,pos=noun\n.\n",
        "-S -ortreal" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\nside\nfant\nsine\nidealer\ni\nitalia\nog\ntyskland\n.\n",
        "-S -morphsyn" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\nside\nfant\nsine\nidealer\ni\nitalia\nog\ntyskland\n.\n",
        "-S -syn" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\nside\nfant\nsine\nidealer\ni\nitalia\nog\ntyskland\n.\n",
        "-S -lex" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\nside\nfant\nsine\nidealer\ni\nitalia\nog\ntyskland\n.\n",
        "-a -S" => "Et\nstykke\nav\nNorge\nsom\ner\nlite\nkjent\n-\nLitt\nom\nNorge\ni\nmellomkrigstiden\nAntidemokratiske\nstrømninger\nI\nden\nurolige\nmellomkrigstiden\nfikk\nytterfløyene\ni\npolitikken\nøkt\noppsluning\toppslutning\t#errtype=con,pos=noun\n.\nDe\nsom\nmistet\ntroen\npå\ndet\npolitiske\nsystemet\nog\nønsket\nå\nsvekke\neller\navskaffe\nregjering\nog\nstorting\nfikk\nvind\ni\nseilene.\nDe\nytterliggående\npå\nborgelige\tborgerlige\t#errtype=con,pos=adj\nside\nfant\nsine\nidealer\ni\nitalia\tItalia\t#errtype=cap,pos=noun\nog\ntyskland\tTyskland\t#errtype=cap,pos=noun\n.\n",
    },
    'p-errorortreal-with-multiword-error.xml' => {
        "" => "fiske leting ¶\n",
        "-l sme" => "",
        "-l nob" => "fiske leting ¶\n",
        "-a" => "fiske leting ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "fiskeleting ¶\n",
        "-C" => "fiske leting ¶\n",
        "-ort" => "fiske leting ¶\n",
        "-ortreal" => "fiskeleting ¶\n",
        "-morphsyn" => "fiske leting ¶\n",
        "-syn" => "fiske leting ¶\n",
        "-lex" => "fiske leting ¶\n",
        "-typos" => "fiske leting\tfiskeleting\t#errtype=nosplit,pos=noun\n",
        "-f -typos" => "fiske leting\tfiskeleting\t#errtype=nosplit,pos=noun, file: p-errorortreal-with-multiword-error.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "fiske leting\tfiskeleting\t#errtype=nosplit,pos=noun\n",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "fiske leting\tfiskeleting\t#errtype=nosplit,pos=noun\n",
        "-f -S" => "fiske leting\tfiskeleting\t#errtype=nosplit,pos=noun, file: p-errorortreal-with-multiword-error.xml\n",
        "-S -C" => "fiske\nleting\n",
        "-S -ort" => "fiske\nleting\n",
        "-S -ort -C" => "fiske\nleting\n",
        "-S -ortreal" => "fiske leting\tfiskeleting\t#errtype=nosplit,pos=noun\n",
        "-S -morphsyn" => "fiske\nleting\n",
        "-S -syn" => "fiske\nleting\n",
        "-S -lex" => "fiske\nleting\n",
        "-a -S" => "fiske leting\tfiskeleting\t#errtype=nosplit,pos=noun\n",
    },
);

my %nested_errors = (
# <p type="text">
#     men 
#     <errormorphsyn cat="x" const="spred" correct="skoledagene er så vanskelige" errtype="agr" orig="x" pos="adj">
#         skoledagene er så
#         <errorort correct="vanskelig" errtype="nosilent" pos="adj">
#             vanskerlig
#         </errorort>
#     </errormorphsyn>
#     å komme igjennom,
# </p>
    'p-with-errorort-inside-errormorphsyn.xml' => {
        "" => "men skoledagene er så vanskerlig å komme igjennom, ¶\n",
        "-l sme" => "",
        "-l nob" => "men skoledagene er så vanskerlig å komme igjennom, ¶\n",
        "-a" => "men skoledagene er så vanskerlig å komme igjennom, ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "men skoledagene er så vanskelige å komme igjennom, ¶\n",
        "-C" => "men skoledagene er så vanskerlig å komme igjennom, ¶\n",
        "-ort" => "men skoledagene er så vanskelig å komme igjennom, ¶\n",
        "-ortreal" => "men skoledagene er så vanskerlig å komme igjennom, ¶\n",
        "-morphsyn" => "men skoledagene er så vanskelige vanskerlig å komme igjennom, ¶\n",
        "-syn" => "men skoledagene er så vanskerlig å komme igjennom, ¶\n",
        "-lex" => "men skoledagene er så vanskerlig å komme igjennom, ¶\n",
        "-f -typos" => "skoledagene er så vanskelig\tskoledagene er så vanskelige\t#cat=x,const=spred,errtype=agr,orig=x,pos=adj, file: p-with-errorort-inside-errormorphsyn.xml\nvanskerlig\tvanskelig\t#errtype=nosilent,pos=adj, file: p-with-errorort-inside-errormorphsyn.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "vanskerlig\tvanskelig\t#errtype=nosilent,pos=adj\n",
        "-typos -ort -C" => "vanskerlig\tvanskelig\t#errtype=nosilent,pos=adj\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "skoledagene er så vanskelig\tskoledagene er så vanskelige\t#cat=x,const=spred,errtype=agr,orig=x,pos=adj\n",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "men\nskoledagene er så vanskelig\tskoledagene er så vanskelige\t#cat=x,const=spred,errtype=agr,orig=x,pos=adj\nvanskerlig\tvanskelig\t#errtype=nosilent,pos=adj\nå\nkomme\nigjennom,\n",
        "-f -S" => "men\nskoledagene er så vanskelig\tskoledagene er så vanskelige\t#cat=x,const=spred,errtype=agr,orig=x,pos=adj, file: p-with-errorort-inside-errormorphsyn.xml\nvanskerlig\tvanskelig\t#errtype=nosilent,pos=adj, file: p-with-errorort-inside-errormorphsyn.xml\nå\nkomme\nigjennom,\n",
        "-S -C" => "men\nskoledagene\ner\nså\nvanskerlig\nå\nkomme\nigjennom,\n",
        "-S -ort" =>    "men\nskoledagene\ner\nså\nvanskerlig\tvanskelig\t#errtype=nosilent,pos=adj\nå\nkomme\nigjennom,\n",
        "-S -ort -C" => "men\nskoledagene\ner\nså\nvanskerlig\tvanskelig\t#errtype=nosilent,pos=adj\nå\nkomme\nigjennom,\n",
        "-S -ortreal" => "men\nskoledagene\ner\nså\nvanskerlig\nå\nkomme\nigjennom,\n",
        "-S -morphsyn" => "men\nskoledagene er så vanskelig\tskoledagene er så vanskelige\t#cat=x,const=spred,errtype=agr,orig=x,pos=adj\nvanskerlig\nå\nkomme\nigjennom,\n",
        "-S -syn" => "men\nskoledagene\ner\nså\nvanskerlig\nå\nkomme\nigjennom,\n",
        "-S -lex" => "men\nskoledagene\ner\nså\nvanskerlig\nå\nkomme\nigjennom,\n",
        "-a -S" => "men\nskoledagene er så vanskelig\tskoledagene er så vanskelige\t#cat=x,const=spred,errtype=agr,orig=x,pos=adj\nvanskerlig\tvanskelig\t#errtype=nosilent,pos=adj\nå\nkomme\nigjennom,\n",
    },
    
# <p>
#     <errormorphsyn cat="pl3prs" const="fin" correct="šadde ollu áššit" errtype="tense" orig="sg3prs" pos="verb">
#         <errorort correct="šattai" errtype="conc" pos="verb">
#             šaddai
#         </errorort> 
#         ollu áššit
#     </errormorphsyn>
# </p>
    'p-with-errorort-inside-errormorphsyn-2.xml' => {
        "" => "šaddai ollu áššit ¶\n",
        "-l sme" => "šaddai ollu áššit ¶\n",
        "-l nob" => "",
        "-a" => "šaddai ollu áššit ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "šadde ollu áššit ¶\n",
        "-C" => "šaddai ollu áššit ¶\n",
        "-ort" => "šattai ollu áššit ¶\n",
        "-ortreal" => "šaddai ollu áššit ¶\n",
        "-morphsyn" => "šaddai šadde ollu áššit ¶\n",
        "-syn" => "šaddai ollu áššit ¶\n",
        "-lex" => "šaddai ollu áššit ¶\n",
        "-typos" => "šaddai\tšattai\t#errtype=conc,pos=verb\nšattai ollu áššit\tšadde ollu áššit\t#cat=pl3prs,const=fin,errtype=tense,orig=sg3prs,pos=verb\n",
        "-f -typos" => "šaddai\tšattai\t#errtype=conc,pos=verb, file: p-with-errorort-inside-errormorphsyn-2.xml\nšattai ollu áššit\tšadde ollu áššit\t#cat=pl3prs,const=fin,errtype=tense,orig=sg3prs,pos=verb, file: p-with-errorort-inside-errormorphsyn-2.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "šaddai\tšattai\t#errtype=conc,pos=verb\n",
        "-typos -ort -C" => "šaddai\tšattai\t#errtype=conc,pos=verb\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "šattai ollu áššit\tšadde ollu áššit\t#cat=pl3prs,const=fin,errtype=tense,orig=sg3prs,pos=verb\n",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "šaddai\tšattai\t#errtype=conc,pos=verb\nšattai ollu áššit\tšadde ollu áššit\t#cat=pl3prs,const=fin,errtype=tense,orig=sg3prs,pos=verb\n",
        "-f -S" => "šaddai\tšattai\t#errtype=conc,pos=verb, file: p-with-errorort-inside-errormorphsyn-2.xml\nšattai ollu áššit\tšadde ollu áššit\t#cat=pl3prs,const=fin,errtype=tense,orig=sg3prs,pos=verb, file: p-with-errorort-inside-errormorphsyn-2.xml\n",
        "-S -C" => "šaddai\nollu\náššit\n",
        "-S -ort" => "šaddai\tšattai\t#errtype=conc,pos=verb\nollu\náššit\n",
        "-S -ort -C" => "šaddai\tšattai\t#errtype=conc,pos=verb\nollu\náššit\n",
        "-S -ortreal" => "šaddai\nollu\náššit\n",
        "-S -morphsyn" => "šaddai\nšattai ollu áššit\tšadde ollu áššit\t#cat=pl3prs,const=fin,errtype=tense,orig=sg3prs,pos=verb\n",
        "-S -syn" => "šaddai\nollu\náššit\n",
        "-S -lex" => "šaddai\nollu\náššit\n",
        "-a -S" => "šaddai\tšattai\t#errtype=conc,pos=verb\nšattai ollu áššit\tšadde ollu áššit\t#cat=pl3prs,const=fin,errtype=tense,orig=sg3prs,pos=verb\n",
    },
# <p>
#     <errormorphsyn cat="gensg" const="nump" correct="guokte gándda" errtype="case" orig="nompl" pos="n">
#         guokte 
#         <error correct="gánddat">
#             ganddat
#         </error>
#     </errormorphsyn>
# </p>
    'p-with-error-inside-errormorphsyn.xml' => {
        "" => "guokte ganddat ¶\n",
        "-l sme" => "guokte ganddat ¶\n",
        "-l nob" => "",
        "-a" => "guokte ganddat ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "guokte gándda ¶\n",
        "-C" => "guokte gánddat ¶\n",
        "-ort" => "guokte ganddat ¶\n",
        "-ortreal" => "guokte ganddat ¶\n",
        "-morphsyn" => "guokte gándda ganddat ¶\n",
        "-syn" => "guokte ganddat ¶\n",
        "-lex" => "guokte ganddat ¶\n",
        "-typos" => "guokte gánddat\tguokte gándda\t#cat=gensg,const=nump,errtype=case,orig=nompl,pos=n\nganddat\tgánddat\n",
        "-f -typos" => "guokte gánddat\tguokte gándda\t#cat=gensg,const=nump,errtype=case,orig=nompl,pos=n, file: p-with-error-inside-errormorphsyn.xml\nganddat\tgánddat\t#file: p-with-error-inside-errormorphsyn.xml\n",
        "-typos -C" => "ganddat\tgánddat\n",
        "-typos -ort" => "",
        "-typos -ort -C" => "ganddat\tgánddat\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "guokte gánddat\tguokte gándda\t#cat=gensg,const=nump,errtype=case,orig=nompl,pos=n\n",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "guokte gánddat\tguokte gándda\t#cat=gensg,const=nump,errtype=case,orig=nompl,pos=n\nganddat\tgánddat\n",
        "-f -S" => "guokte gánddat\tguokte gándda\t#cat=gensg,const=nump,errtype=case,orig=nompl,pos=n, file: p-with-error-inside-errormorphsyn.xml\nganddat\tgánddat\t#file: p-with-error-inside-errormorphsyn.xml\n",
        "-S -C" => "guokte\nganddat\tgánddat\n",
        "-S -ort" => "guokte\nganddat\n",
        "-S -ort -C" => "guokte\nganddat\tgánddat\n",
        "-S -ortreal" => "guokte\nganddat\n",
        "-S -morphsyn" => "guokte gánddat\tguokte gándda\t#cat=gensg,const=nump,errtype=case,orig=nompl,pos=n\n\ganddat\n",
        "-S -syn" => "guokte\nganddat\n",
        "-S -lex" => "guokte\nganddat\n",
        "-a -S" => "guokte gánddat\tguokte gándda\t#cat=gensg,const=nump,errtype=case,orig=nompl,pos=n\nganddat\tgánddat\n",
    },
# <p>
#     <errormorphsyn cat="sg3prs" const="v" correct="lea okta mánná" errtype="agr" orig="pl3prs" pos="v">
#         leat 
#         <errormorphsyn cat="nomsg" const="spred" correct="okta mánná" errtype="case" orig="gensg" pos="n">
#             okta máná
#         </errormorphsyn>
#     </errormorphsyn>
# </p>
    'p-with-errormorphsyn-inside-errormorphsyn.xml' => {
        "" => "leat okta máná ¶\n",
        "-l sme" => "leat okta máná ¶\n",
        "-l nob" => "",
        "-a" => "leat okta máná ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "lea okta mánná ¶\n",
        "-C" => "leat okta máná ¶\n",
        "-ort" => "leat okta máná ¶\n",
        "-ortreal" => "leat okta máná ¶\n",
        "-morphsyn" => "lea okta mánná okta mánná ¶\n",
        "-syn" => "leat okta máná ¶\n",
        "-lex" => "leat okta máná ¶\n",
        "-typos" => "leat okta mánná\tlea okta mánná\t#cat=sg3prs,const=v,errtype=agr,orig=pl3prs,pos=v\nokta máná\tokta mánná\t#cat=nomsg,const=spred,errtype=case,orig=gensg,pos=n\n",
        "-f -typos" => "leat okta mánná\tlea okta mánná\t#cat=sg3prs,const=v,errtype=agr,orig=pl3prs,pos=v, file: p-with-errormorphsyn-inside-errormorphsyn.xml\nokta máná\tokta mánná\t#cat=nomsg,const=spred,errtype=case,orig=gensg,pos=n, file: p-with-errormorphsyn-inside-errormorphsyn.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "leat okta mánná\tlea okta mánná\t#cat=sg3prs,const=v,errtype=agr,orig=pl3prs,pos=v\nokta máná\tokta mánná\t#cat=nomsg,const=spred,errtype=case,orig=gensg,pos=n\n",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "leat okta mánná\tlea okta mánná\t#cat=sg3prs,const=v,errtype=agr,orig=pl3prs,pos=v\nokta máná\tokta mánná\t#cat=nomsg,const=spred,errtype=case,orig=gensg,pos=n\n",
        "-f -S" => "leat okta mánná\tlea okta mánná\t#cat=sg3prs,const=v,errtype=agr,orig=pl3prs,pos=v, file: p-with-errormorphsyn-inside-errormorphsyn.xml\nokta máná\tokta mánná\t#cat=nomsg,const=spred,errtype=case,orig=gensg,pos=n, file: p-with-errormorphsyn-inside-errormorphsyn.xml\n",
        "-S -C" => "leat\nokta\nmáná\n",
        "-S -ort" => "leat\nokta\nmáná\n",
        "-S -ort -C" => "leat\nokta\nmáná\n",
        "-S -ortreal" => "leat\nokta\nmáná\n",
        "-S -morphsyn" => "leat okta mánná\tlea okta mánná\t#cat=sg3prs,const=v,errtype=agr,orig=pl3prs,pos=v\nokta máná\tokta mánná\t#cat=nomsg,const=spred,errtype=case,orig=gensg,pos=n\n",
        "-S -syn" => "leat\nokta\nmáná\n",
        "-S -lex" => "leat\nokta\nmáná\n",
        "-a -S" => "leat okta mánná\tlea okta mánná\t#cat=sg3prs,const=v,errtype=agr,orig=pl3prs,pos=v\nokta máná\tokta mánná\t#cat=nomsg,const=spred,errtype=case,orig=gensg,pos=n\n",
    },
# <p>
#     livččii 
#     <errorort correct="makkárge" errtype="á" pos="adv">
#         makkarge
#     </errorort> 
#     politihkka, muhto rahpasit baicca muitalivčče 
#     <errorlex correct="man soga">
#         <errorort correct="makkár" errtype="á" pos="interr">
#             makkar
#         </errorort>
#         soga
#     </errorlex>
#     sii
# </p>
    'p-with-errorort-inside-errorlex.xml' => {
        "" => "livččii makkarge politihkka, muhto rahpasit baicca muitalivčče makkar soga sii ¶\n",
        "-l sme" => "livččii makkarge politihkka, muhto rahpasit baicca muitalivčče makkar soga sii ¶\n",
        "-l nob" => "",
        "-a" => "livččii makkarge politihkka, muhto rahpasit baicca muitalivčče makkar soga sii ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "livččii makkárge politihkka, muhto rahpasit baicca muitalivčče man soga sii ¶\n",
        "-C" => "livččii makkarge politihkka, muhto rahpasit baicca muitalivčče makkar soga sii ¶\n",
        "-ort" => "livččii makkárge politihkka, muhto rahpasit baicca muitalivčče makkár soga sii ¶\n",
        "-ortreal" => "livččii makkarge politihkka, muhto rahpasit baicca muitalivčče makkar soga sii ¶\n",
        "-morphsyn" => "livččii makkarge politihkka, muhto rahpasit baicca muitalivčče makkar soga sii ¶\n",
        "-syn" => "livččii makkarge politihkka, muhto rahpasit baicca muitalivčče makkar soga sii ¶\n",
        "-lex" => "livččii makkarge politihkka, muhto rahpasit baicca muitalivčče makkar man soga sii ¶\n",
        "-typos" => "makkarge\tmakkárge\t#errtype=á,pos=adv\nmakkar\tmakkár\t#errtype=á,pos=interr\nmakkár soga\tman soga\n", 
        "-f -typos" => "makkarge\tmakkárge\t#errtype=á,pos=adv, file: p-with-errorort-inside-errorlex.xml\nmakkar\tmakkár\t#errtype=á,pos=interr, file: p-with-errorort-inside-errorlex.xml\nmakkár soga\tman soga\t#file: p-with-errorort-inside-errorlex.xml\n", 
        "-typos -C" => "",
        "-typos -ort" => "makkarge\tmakkárge\t#errtype=á,pos=adv\nmakkar\tmakkár\t#errtype=á,pos=interr\n",
        "-typos -ort -C" => "makkarge\tmakkárge\t#errtype=á,pos=adv\nmakkar\tmakkár\t#errtype=á,pos=interr\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "makkár soga\tman soga\n",
        "-S" => "livččii\nmakkarge\tmakkárge\t#errtype=á,pos=adv\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\tmakkár\t#errtype=á,pos=interr\nmakkár soga\tman soga\nsii\n", 
        "-f -S" => "livččii\nmakkarge\tmakkárge\t#errtype=á,pos=adv, file: p-with-errorort-inside-errorlex.xml\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\tmakkár\t#errtype=á,pos=interr, file: p-with-errorort-inside-errorlex.xml\nmakkár soga\tman soga\t#file: p-with-errorort-inside-errorlex.xml\nsii\n", 
        "-S -C" => "livččii\nmakkarge\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\nsoga\nsii\n",
        "-S -ort" => "livččii\nmakkarge\tmakkárge\t#errtype=á,pos=adv\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\tmakkár\t#errtype=á,pos=interr\nsoga\nsii\n",
        "-S -ort -C" => "livččii\nmakkarge\tmakkárge\t#errtype=á,pos=adv\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\tmakkár\t#errtype=á,pos=interr\nsoga\nsii\n",
        "-S -ortreal" => "livččii\nmakkarge\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\nsoga\nsii\n",
        "-S -morphsyn" => "livččii\nmakkarge\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\nsoga\nsii\n",
        "-S -syn" => "livččii\nmakkarge\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\nsoga\nsii\n",
        "-S -lex" => "livččii\nmakkarge\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\nmakkár soga\tman soga\nsii\n",
        "-a -S" => "livččii\nmakkarge\tmakkárge\t#errtype=á,pos=adv\npolitihkka,\nmuhto\nrahpasit\nbaicca\nmuitalivčče\nmakkar\tmakkár\t#errtype=á,pos=interr\nmakkár soga\tman soga\nsii\n", 
    },
# <p>
#     <errorlex correct="gulahallanolbmot">
#         <errorortreal correct="gulahallanolbmožat" errtype="cmp" pos="noun">
#             gulahallan olbmožat
#         </errorortreal>
#     </errorlex>
# </p>
    'p-with-errorortreal-inside-errorlex.xml' => {
        "" => "gulahallan olbmožat ¶\n",
        "-l sme" => "gulahallan olbmožat ¶\n",
        "-l nob" => "",
        "-a" => "gulahallan olbmožat ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "gulahallanolbmot ¶\n",
        "-C" => "gulahallan olbmožat ¶\n",
        "-ort" => "gulahallan olbmožat ¶\n",
        "-ortreal" => "gulahallanolbmožat ¶\n",
        "-morphsyn" => "gulahallan olbmožat ¶\n",
        "-syn" => "gulahallan olbmožat ¶\n",
        "-lex" => "gulahallanolbmot gulahallan olbmožat ¶\n",
        "-typos" => "gulahallanolbmožat\tgulahallanolbmot\ngulahallan olbmožat\tgulahallanolbmožat\t#errtype=cmp,pos=noun\n", 
        "-f -typos" => "gulahallanolbmožat\tgulahallanolbmot\t#file: p-with-errorortreal-inside-errorlex.xml\ngulahallan olbmožat\tgulahallanolbmožat\t#errtype=cmp,pos=noun, file: p-with-errorortreal-inside-errorlex.xml\n", 
        "-typos -C" => "",
        "-typos -ort" => "",
        "-typos -ort -C" => "",
        "-typos -ortreal" => "gulahallan olbmožat\tgulahallanolbmožat\t#errtype=cmp,pos=noun\n",
        "-typos -morphsyn" => "",
        "-typos -syn" => "",
        "-typos -lex" => "gulahallanolbmožat\tgulahallanolbmot\n",
        "-S" => "gulahallanolbmožat\tgulahallanolbmot\ngulahallan olbmožat\tgulahallanolbmožat\t#errtype=cmp,pos=noun\n", 
        "-f -S" => "gulahallanolbmožat\tgulahallanolbmot\t#file: p-with-errorortreal-inside-errorlex.xml\ngulahallan olbmožat\tgulahallanolbmožat\t#errtype=cmp,pos=noun, file: p-with-errorortreal-inside-errorlex.xml\n", 
        "-S -C" => "gulahallan\nolbmožat\n",
        "-S -ort" => "gulahallan\nolbmožat\n",
        "-S -ort -C" => "gulahallan\nolbmožat\n",
        "-S -ortreal" => "gulahallan olbmožat\tgulahallanolbmožat\t#errtype=cmp,pos=noun\n",
        "-S -morphsyn" => "gulahallan\nolbmožat\n",
        "-S -syn" => "gulahallan\nolbmožat\n",
        "-S -lex" => "gulahallanolbmožat\tgulahallanolbmot\ngulahallan\nolbmožat\n",
        "-a -S" => "gulahallanolbmožat\tgulahallanolbmot\ngulahallan olbmožat\tgulahallanolbmožat\t#errtype=cmp,pos=noun\n",
    },
# <p>
#     <errormorphsyn cat="genpl" const="obj" correct="čoggen ollu joŋaid ja sarridiid" errtype="case" orig="nompl" pos="noun">
#         <errormorphsyn cat="genpl" const="obj" correct="čoggen ollu joŋaid" errtype="case" orig="nompl" pos="noun">
#             <errorort correct="čoggen" errtype="mono" pos="verb">
#                 čoaggen
#             </errorort> 
#             ollu jokŋat
#         </errormorphsyn>
#         ja sarridat
#     </errormorphsyn>
# </p>
    'p-with-errorort-inside-errormorphsyn-inside-errormorphsyn.xml' => {
        "" => "čoaggen ollu jokŋat ja sarridat ¶\n",
        "-l sme" => "čoaggen ollu jokŋat ja sarridat ¶\n",
        "-l nob" => "",
        "-a" => "čoaggen ollu jokŋat ja sarridat ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "čoggen ollu joŋaid ja sarridiid ¶\n",
        "-C" => "čoaggen ollu jokŋat ja sarridat ¶\n",
        "-ort" => "čoggen ollu jokŋat ja sarridat ¶\n",
        "-ortreal" => "čoaggen ollu jokŋat ja sarridat ¶\n",
        "-morphsyn" => "čoaggen čoggen ollu joŋaid čoggen ollu joŋaid ja sarridiid ¶\n",
        "-syn" => "čoaggen ollu jokŋat ja sarridat ¶\n",
        "-lex" => "čoaggen ollu jokŋat ja sarridat ¶\n",
        "-typos" => "čoaggen\tčoggen\t#errtype=mono,pos=verb\nčoggen ollu jokŋat\tčoggen ollu joŋaid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\nčoggen ollu joŋaid ja sarridat\tčoggen ollu joŋaid ja sarridiid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\n",
        "-f -typos" => "čoaggen\tčoggen\t#errtype=mono,pos=verb, file: p-with-errorort-inside-errormorphsyn-inside-errormorphsyn.xml\nčoggen ollu jokŋat\tčoggen ollu joŋaid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun, file: p-with-errorort-inside-errormorphsyn-inside-errormorphsyn.xml\nčoggen ollu joŋaid ja sarridat\tčoggen ollu joŋaid ja sarridiid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun, file: p-with-errorort-inside-errormorphsyn-inside-errormorphsyn.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "čoaggen\tčoggen\t#errtype=mono,pos=verb\n",
        "-typos -ort -C" => "čoaggen\tčoggen\t#errtype=mono,pos=verb\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "čoggen ollu jokŋat\tčoggen ollu joŋaid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\nčoggen ollu joŋaid ja sarridat\tčoggen ollu joŋaid ja sarridiid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\n",
        "-typos -syn" => "",
        "-typos -lex" => "",
        "-S" => "čoaggen\tčoggen\t#errtype=mono,pos=verb\nčoggen ollu jokŋat\tčoggen ollu joŋaid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\nčoggen ollu joŋaid ja sarridat\tčoggen ollu joŋaid ja sarridiid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\n",
        "-f -S" => "čoaggen\tčoggen\t#errtype=mono,pos=verb, file: p-with-errorort-inside-errormorphsyn-inside-errormorphsyn.xml\nčoggen ollu jokŋat\tčoggen ollu joŋaid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun, file: p-with-errorort-inside-errormorphsyn-inside-errormorphsyn.xml\nčoggen ollu joŋaid ja sarridat\tčoggen ollu joŋaid ja sarridiid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun, file: p-with-errorort-inside-errormorphsyn-inside-errormorphsyn.xml\n",
        "-S -C" => "čoaggen\nollu\njokŋat\nja\nsarridat\n",
        "-S -ort" => "čoaggen\tčoggen\t#errtype=mono,pos=verb\nollu\njokŋat\nja\nsarridat\n",
        "-S -ort -C" => "čoaggen\tčoggen\t#errtype=mono,pos=verb\nollu\njokŋat\nja\nsarridat\n",
        "-S -ortreal" => "čoaggen\nollu\njokŋat\nja\nsarridat\n",
        "-S -morphsyn" => "čoaggen\nčoggen ollu jokŋat\tčoggen ollu joŋaid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\nčoggen ollu joŋaid ja sarridat\tčoggen ollu joŋaid ja sarridiid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\n",
        "-S -syn" => "čoaggen\nollu\njokŋat\nja\nsarridat\n",
        "-S -lex" => "čoaggen\nollu\njokŋat\nja\nsarridat\n",
        "-a -S" => "čoaggen\tčoggen\t#errtype=mono,pos=verb\nčoggen ollu jokŋat\tčoggen ollu joŋaid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\nčoggen ollu joŋaid ja sarridat\tčoggen ollu joŋaid ja sarridiid\t#cat=genpl,const=obj,errtype=case,orig=nompl,pos=noun\n",
    },
# <p>
#     <errormorphsyn cat="pl3prs" const="fin" correct="Bearpmehat sirrejit" errtype="agr" orig="sg3prs" pos="verb">
#         <errorort correct="Bearpmehat" errtype="svow" pos="noun">
#             Bearpmahat
#         </errorort> 
#         <errorlex correct="sirre" errtype="w" origpos="v" pos="verb">
#             earuha
#         </errorlex>
#     </errormorphsyn>
#     uskki ja loaiddu.
# </p>
    'p-with-errorort-and-errorlex-inside-errormorphsyn.xml' => {
        "" => "Bearpmahat earuha uskki ja loaiddu. ¶\n",
        "-l nob" => "",
        "-l sme" => "Bearpmahat earuha uskki ja loaiddu. ¶\n",
        "-a" => "Bearpmahat earuha uskki ja loaiddu. ¶\n",
        "-T" => "",
        "-T -l sma" => "",
        "-L" => "",
        "-t" => "",
        "-c" => "Bearpmehat sirrejit uskki ja loaiddu. ¶\n",
        "-C" => "Bearpmahat earuha uskki ja loaiddu. ¶\n",
        "-ort" => "Bearpmehat earuha uskki ja loaiddu. ¶\n",
        "-ortreal" => "Bearpmahat earuha uskki ja loaiddu. ¶\n",
        "-morphsyn" => "Bearpmehat sirrejit Bearpmahat earuha uskki ja loaiddu. ¶\n",
        "-syn" => "Bearpmahat earuha uskki ja loaiddu. ¶\n",
        "-lex" => "Bearpmahat sirre uskki ja loaiddu. ¶\n",
        "-typos" => "Bearpmehat sirre\tBearpmehat sirrejit\t#cat=pl3prs,const=fin,errtype=agr,orig=sg3prs,pos=verb\nBearpmahat\tBearpmehat\t#errtype=svow,pos=noun\nearuha\tsirre\t#errtype=w,origpos=v,pos=verb\n",
        "-f -typos" => "Bearpmehat sirre\tBearpmehat sirrejit\t#cat=pl3prs,const=fin,errtype=agr,orig=sg3prs,pos=verb, file: p-with-errorort-and-errorlex-inside-errormorphsyn.xml\nBearpmahat\tBearpmehat\t#errtype=svow,pos=noun, file: p-with-errorort-and-errorlex-inside-errormorphsyn.xml\nearuha\tsirre\t#errtype=w,origpos=v,pos=verb, file: p-with-errorort-and-errorlex-inside-errormorphsyn.xml\n",
        "-typos -C" => "",
        "-typos -ort" => "Bearpmahat\tBearpmehat\t#errtype=svow,pos=noun\n",
        "-typos -ort -C" => "Bearpmahat\tBearpmehat\t#errtype=svow,pos=noun\n",
        "-typos -ortreal" => "",
        "-typos -morphsyn" => "Bearpmehat sirre\tBearpmehat sirrejit\t#cat=pl3prs,const=fin,errtype=agr,orig=sg3prs,pos=verb\n",
        "-typos -syn" => "",
        "-typos -lex" => "earuha\tsirre\t#errtype=w,origpos=v,pos=verb\n",
        "-S" => "Bearpmehat sirre\tBearpmehat sirrejit\t#cat=pl3prs,const=fin,errtype=agr,orig=sg3prs,pos=verb\nBearpmahat\tBearpmehat\t#errtype=svow,pos=noun\nearuha\tsirre\t#errtype=w,origpos=v,pos=verb\nuskki\nja\nloaiddu.\n",
        "-f -S" => "Bearpmehat sirre\tBearpmehat sirrejit\t#cat=pl3prs,const=fin,errtype=agr,orig=sg3prs,pos=verb, file: p-with-errorort-and-errorlex-inside-errormorphsyn.xml\nBearpmahat\tBearpmehat\t#errtype=svow,pos=noun, file: p-with-errorort-and-errorlex-inside-errormorphsyn.xml\nearuha\tsirre\t#errtype=w,origpos=v,pos=verb, file: p-with-errorort-and-errorlex-inside-errormorphsyn.xml\nuskki\nja\nloaiddu.\n",
        "-S -C" => "Bearpmahat\nearuha\nuskki\nja\nloaiddu.\n",
        "-S -ort" => "Bearpmahat\tBearpmehat\t#errtype=svow,pos=noun\nearuha\nuskki\nja\nloaiddu.\n",
        "-S -ort -C" => "Bearpmahat\tBearpmehat\t#errtype=svow,pos=noun\nearuha\nuskki\nja\nloaiddu.\n",
        "-S -ortreal" => "Bearpmahat\nearuha\nuskki\nja\nloaiddu.\n",
        "-S -morphsyn" => "Bearpmehat sirre\tBearpmehat sirrejit\t#cat=pl3prs,const=fin,errtype=agr,orig=sg3prs,pos=verb\nBearpmahat\nearuha\nuskki\nja\nloaiddu.\n",
        "-S -syn" => "Bearpmahat\nearuha\nuskki\nja\nloaiddu.\n",
        "-S -lex" => "Bearpmahat\nearuha\tsirre\t#errtype=w,origpos=v,pos=verb\nuskki\nja\nloaiddu.\n",
        "-a -S" => "Bearpmehat sirre\tBearpmehat sirrejit\t#cat=pl3prs,const=fin,errtype=agr,orig=sg3prs,pos=verb\nBearpmahat\tBearpmehat\t#errtype=svow,pos=noun\nearuha\tsirre\t#errtype=w,origpos=v,pos=verb\nuskki\nja\nloaiddu.\n",
    },
);

if (!system('make')) {
    print "###\n###\n###\tSimple errors to plain text\n###\n###\n";
    for my $name (keys %simple_errors) {
        if (-e $name) {
            for my $option (keys % {$simple_errors{$name}}) {
                my $command = "./ccat " . $option . " " . $name;
                my $ccat = `$command`;
                is($ccat, $simple_errors{$name}{$option}, "testing option «" . $option . "» on file «" . $name . "»");
            }
            print "\n\n"; 
        } else {
            die "Testing file «$name» doesn't exist.\nPlease create it to be able to complete this test.";
        }
    }
    
    print "###\n###\n###\tNested errors to plain text\n###\n###\n";
    for my $name (keys %nested_errors) {
        if (-e $name) {
            for my $option (keys % {$nested_errors{$name}}) {
                my $command = "./ccat " . $option . " " . $name;
                my $ccat = `$command`;
                is($ccat, $nested_errors{$name}{$option}, "testing option «" . $option . "» on file «" . $name . "»");
            }
        print "\n\n";
        } else {
            die "Test file «$name» doesn't exist.\nPlease create it to be able to complete this test.";
        }
    }

    my $result = `./ccat -l nob -f -typos -ort -C -r $ENV{'GTFREE'}/stable/goldstandard/converted/nob/facta/ | grep .svn-base | head -1`;
    is($result, '', "Check that svn internal files aren't among the files ccat tries to open");
    $result = `./ccat -l nob -f -typos -ort -C -r $ENV{'GTFREE'}/stable/goldstandard/converted/nob/facta/ | egrep \.xml\$ | head -1`;
    isnt($result, '', "Check that we find some files");
    $result = `./ccat -l nob -S -r $ENV{'GTFREE'}/stable/goldstandard/converted/nob | grep XSLtemplate | head -1`;
    is($result, '', "Check metadata info isn't included in");
} else {
    print "Can't compile ccat\n";
}
