text: (function() {
    var mode = CodeMirror.getMode({tabSize: 4}, "stex");
    function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
  
    MT("word",
       "foo");
  
    MT("twoWords",
       "foo bar");
  
    MT("beginEndDocument",
       "[tag \\begin][bracket {][atom document][bracket }]",
       "[tag \\end][bracket {][atom document][bracket }]");
  
    MT("beginEndEquation",
       "[tag \\begin][bracket {][atom equation][bracket }]",
       "  E=mc^2",
       "[tag \\end][bracket {][atom equation][bracket }]");
  
    MT("beginModule",
       "[tag \\begin][bracket {][atom module][bracket }[[]]]");
  
    MT("beginModuleId",
       "[tag \\begin][bracket {][atom module][bracket }[[]id=bbt-size[bracket ]]]");
  
    MT("importModule",
       "[tag \\importmodule][bracket [[][string b-b-t][bracket ]]{][builtin b-b-t][bracket }]");
  
    MT("importModulePath",
       "[tag \\importmodule][bracket [[][tag \\KWARCslides][bracket {][string dmath/en/cardinality][bracket }]]{][builtin card][bracket }]");
  
    MT("psForPDF",
       "[tag \\PSforPDF][bracket [[][atom 1][bracket ]]{]#1[bracket }]");
  
    MT("comment",
       "[comment % foo]");
  
    MT("tagComment",
       "[tag \\item][comment % bar]");
  
    MT("commentTag",
       " [comment % \\item]");
  
    MT("commentLineBreak",
       "[comment %]",
       "foo");
  
    MT("tagErrorCurly",
       "[tag \\begin][error }][bracket {]");
  
    MT("tagErrorSquare",
       "[tag \\item][error ]]][bracket {]");
  
    MT("commentCurly",
       "[comment % }]");
  
    MT("tagHash",
       "the [tag \\#] key");
  
    MT("tagNumber",
       "a [tag \\$][atom 5] stetson");
  
    MT("tagPercent",
       "[atom 100][tag \\%] beef");
  
    MT("tagAmpersand",
       "L [tag \\&] N");
  
    MT("tagUnderscore",
       "foo[tag \\_]bar");
  
    MT("tagBracketOpen",
       "[tag \\emph][bracket {][tag \\{][bracket }]");
  
    MT("tagBracketClose",
       "[tag \\emph][bracket {][tag \\}][bracket }]");
  
    MT("tagLetterNumber",
       "section [tag \\S][atom 1]");
  
    MT("textTagNumber",
       "para [tag \\P][atom 2]");
  
    MT("thinspace",
       "x[tag \\,]y");
  
    MT("thickspace",
       "x[tag \\;]y");
  
    MT("negativeThinspace",
       "x[tag \\!]y");
  
    MT("periodNotSentence",
       "J.\\ L.\\ is");
  
    MT("periodSentence",
       "X[tag \\@]. The");
  
    MT("italicCorrection",
       "[bracket {][tag \\em] If[tag \\/][bracket }] I");
  
    MT("tagBracket",
       "[tag \\newcommand][bracket {][tag \\pop][bracket }]");
  })();
  