# JOE syntax highlight file for HTML # # Note: # * and # blocks are assumed to be html-encoded, not raw. # To make them raw, you should enclose them within . # # * "#" and "+" are lited as mistakes in unquoted tag values, # although there exist (broken) programs that generate them. # # * Recognizes html-entities and lites mistakes in them. # # * SGML comments are parsed in the SGML way. This means there # must be an even amount of "--" markers within the tag. # # * Recognizes 1018 different named entities. The list has been # copied from some version of Lynx. Most browsers don't recognize # that many. # # Todo: # * tag name recognition # * tag parameter name recognition # * inline stylesheet and javascript highlighting # (hard to do fool-proof, because the value may be entity-encoded). # # Colours =Idle =Tag +DefinedFunction +DefinedIdent =TagName +Tag =TagEnd +Tag =TagScript +TagName =Attr +Type =TagDelim +Attr =Constant =Comment =CommentEdge +Comment =Entity +Escape =Bad =SGMLTag +Statement +Keyword =PIStart +Preproc +Tag =PIBody +Comment =PIEnd +Preproc +Tag # Call HTML highlighter subroutine :first Idle * call_failed noeat call=.html() :call_failed Bad * call_failed # # HTML highlighter as a subroutine # .subr html :reset Idle * idle noeat .ifdef mason "%" reset call=perl.perl(mason_line) .endif # Rules :idle Idle * idle "\n" reset "<" tag_begin recolor=-1 "&" idle call=.entity() recolor=-1 :mistake_idle Bad * idle noeat # Tags :tag_begin Tag * tag_name_first buffer noeat recolor=-1 "/" end_tag recolor=-2 .ifdef mason "&" rtn_php call=perl.perl(mason_block) .endif "!" sgml_tag recolor=-2 .ifdef php "?%" rtn_php call=php.php() .else "?" xml_pi recolor=-2 .endif .ifdef erb "%" maybe_erb_eq .endif # this state allows php and perl to recolor the ?> %> or &> properly. :rtn_php Tag * idle noeat :maybe_erb_eq Tag * rtn_php noeat call=ruby.ruby(erb) "=" rtn_php call=ruby.ruby(erb) :tag_name_first Bad * tag_idle noeat "-A-Za-z0-9._:" tag_name recolor=-1 :end_tag TagEnd "-A-Za-z0-9._: \t" end_tag ">" idle * mistake_idle :tag_name TagName * tag_idle noeat strings "script" stag_enter_idle "style" ytag_enter_idle done "-A-Za-z0-9._:" tag_name :tag_idle Idle * mistake_tag recolor=-1 "<" tag_maybe_php recolor=-1 " \t \n" tag_idle "/" tag_end recolor=-1 ">" tag_end noeat recolor=-1 "-A-Za-z0-9._:" tag_param noeat recolor=-1 :tag_maybe_php Bad * tag_idle "?" tag_call_php recolor=-2 :tag_call_php Tag * rtn_php_tag noeat call=php.php() :rtn_php_tag Tag * tag_idle noeat :tag_param Attr * tag_idle noeat recolor=-1 "-A-Za-z0-9._:" tag_param "=" tag_delim recolor=-1 :tag_delim TagDelim * mistake_tag noeat recolor=-1 "\"" tag_idle call=.tag_value_quoted(dquote) recolor=-1 "'" tag_idle call=.tag_value_quoted(squote) recolor=-1 "-A-Za-z0-9._:" tag_value noeat recolor=-1 :tag_value Constant * tag_idle noeat recolor=-1 "-A-Za-z0-9._:" tag_value :tag_end Tag * idle :mistake_tag Bad * tag_idle noeat # We're about to enter a script... :stag_enter_idle TagScript * stag_idle noeat :stag_idle Idle * smistake_tag recolor=-1 " \t \n" stag_idle "/" stag_end recolor=-1 ">" stag_end noeat recolor=-1 "-A-Za-z0-9._:" stag_param noeat recolor=-1 :stag_param Attr * stag_idle noeat recolor=-1 "-A-Za-z0-9._:" stag_param "=" stag_delim recolor=-1 :stag_delim TagDelim * smistake_tag noeat recolor=-1 "\"" stag_idle call=.tag_value_quoted(dquote) recolor=-1 "'" stag_idle call=.tag_value_quoted(squote) recolor=-1 "-A-Za-z0-9._:" stag_value noeat recolor=-1 :stag_value Constant * stag_idle noeat recolor=-1 "-A-Za-z0-9._:" stag_value :stag_end Tag .ifdef php * tag_begin call=js.js(php) .else * tag_begin call=js.js(html) .endif :stag_done Tag * tag_name_first buffer noeat :smistake_tag Bad * stag_idle noeat # We're about to entry a script... :ytag_enter_idle TagName * ytag_idle noeat :ytag_idle Idle * ymistake_tag recolor=-1 " \t \n" ytag_idle "/" ytag_end recolor=-1 ">" ytag_end noeat recolor=-1 "-A-Za-z0-9._:" ytag_param noeat recolor=-1 :ytag_param Attr * ytag_idle noeat recolor=-1 "-A-Za-z0-9._:" ytag_param "=" ytag_delim recolor=-1 :ytag_delim TagDelim * ymistake_tag noeat recolor=-1 "\"" ytag_idle call=.tag_value_quoted(dquote) recolor=-1 "'" ytag_idle call=.tag_value_quoted(squote) recolor=-1 "-A-Za-z0-9._:" ytag_value noeat recolor=-1 :ytag_value Constant * ytag_idle noeat recolor=-1 "-A-Za-z0-9._:" ytag_value :ytag_end Tag .ifdef php * tag_begin call=css.css(php) .else * tag_begin call=css.css() .endif :ytag_done Tag * tag_name_first buffer noeat :ymistake_tag Bad * ytag_idle noeat # SGML and comments :sgml_tag SGMLTag * sgml_tag "-" sgml_tag_maybe_comment ">" idle :sgml_tag_maybe_comment SGMLTag * sgml_tag "-" sgml_tag_comment recolor=-4 :sgml_tag_comment Comment comment * sgml_tag_comment "-" sgml_tag_maybe_comment_end "BFHNTX" sgml_tag_comment noeat call=comment_todo.comment_todo() :sgml_tag_maybe_comment_end Comment comment * sgml_tag_comment "-" sgml_tag_end_comment :sgml_tag_end_comment Comment comment ">" idle # XML processing info :xml_pi PIStart * xml_pi_body noeat :xml_pi_body PIBody * xml_pi "?" xml_pi_maybe_end :xml_pi_maybe_end PIBody * xml_pi "?" xml_pi_maybe_end ">" xml_pi_end noeat recolor=-2 :xml_pi_end PIEnd * idle .end # # Quoted string tag values # .subr tag_value_quoted :tag_value_quoted Constant * tag_value_quoted .ifdef dquote "\"" tag_value_quoted return .endif .ifdef squote "'" tag_value_quoted return .endif "<" tag_value_maybe_php :tag_value_maybe_php Constant * tag_value_quoted noeat "?" tag_value_call_php recolor=-2 :tag_value_call_php Tag * tag_value_rtn_php noeat call=php.php() :tag_value_rtn_php Tag * tag_value_quoted noeat # Too many non-html things can be in quotes to do this... # "&" tag_value_quoted call=.entity() recolor=-1 :mistake_tag_value Bad * tag_value_quoted noeat .end # # Entity parser # .subr entity # Entities within plain content :entity Entity * entity_name noeat buffer recolor=-1 "#" entity_numeric_begin :entity_numeric_begin Entity * entity_numeric noeat "x" entity_hex :entity_numeric Entity * mistake_idle noeat recolor=-1 "0-9" entity_numeric ";" entity_end noeat recolor=-1 :entity_hex Entity * mistake_idle noeat recolor=-1 "0-9a-fA-F" entity_hex ";" entity_end noeat recolor=-1 :entity_end Entity * entity return :entity_name Bad * mistake_idle noeat recolor=-1 strings "AElig" entity_ok "Aacgr" entity_ok "Aacute" entity_ok "Abreve" entity_ok "Acirc" entity_ok "Acy" entity_ok "Agr" entity_ok "Agrave" entity_ok "Alpha" entity_ok "Amacr" entity_ok "Aogon" entity_ok "Aring" entity_ok "Atilde" entity_ok "Auml" entity_ok "Barwed" entity_ok "Bcy" entity_ok "Beta" entity_ok "Bgr" entity_ok "CHcy" entity_ok "Cacute" entity_ok "Cap" entity_ok "Ccaron" entity_ok "Ccedil" entity_ok "Ccirc" entity_ok "Cdot" entity_ok "Chi" entity_ok "Cup" entity_ok "DJcy" entity_ok "DScy" entity_ok "DZcy" entity_ok "Dagger" entity_ok "Dcaron" entity_ok "Dcy" entity_ok "Delta" entity_ok "Dgr" entity_ok "Dot" entity_ok "DotDot" entity_ok "Dstrok" entity_ok "EEacgr" entity_ok "EEgr" entity_ok "ENG" entity_ok "ETH" entity_ok "Eacgr" entity_ok "Eacute" entity_ok "Ecaron" entity_ok "Ecirc" entity_ok "Ecy" entity_ok "Edot" entity_ok "Egr" entity_ok "Egrave" entity_ok "Emacr" entity_ok "Eogon" entity_ok "Epsilon" entity_ok "Eta" entity_ok "Euml" entity_ok "Fcy" entity_ok "GJcy" entity_ok "Gamma" entity_ok "Gbreve" entity_ok "Gcedil" entity_ok "Gcirc" entity_ok "Gcy" entity_ok "Gdot" entity_ok "Gg" entity_ok "Ggr" entity_ok "Gt" entity_ok "HARDcy" entity_ok "Hcirc" entity_ok "Hstrok" entity_ok "IEcy" entity_ok "IJlig" entity_ok "IOcy" entity_ok "Iacgr" entity_ok "Iacute" entity_ok "Icirc" entity_ok "Icy" entity_ok "Idigr" entity_ok "Idot" entity_ok "Igr" entity_ok "Igrave" entity_ok "Imacr" entity_ok "Iogon" entity_ok "Iota" entity_ok "Itilde" entity_ok "Iukcy" entity_ok "Iuml" entity_ok "Jcirc" entity_ok "Jcy" entity_ok "Jsercy" entity_ok "Jukcy" entity_ok "KHcy" entity_ok "KHgr" entity_ok "KJcy" entity_ok "Kappa" entity_ok "Kcedil" entity_ok "Kcy" entity_ok "Kgr" entity_ok "LJcy" entity_ok "Lacute" entity_ok "Lambda" entity_ok "Larr" entity_ok "Lcaron" entity_ok "Lcedil" entity_ok "Lcy" entity_ok "Lgr" entity_ok "Ll" entity_ok "Lmidot" entity_ok "Lstrok" entity_ok "Lt" entity_ok "Mcy" entity_ok "Mgr" entity_ok "Mu" entity_ok "NJcy" entity_ok "Nacute" entity_ok "Ncaron" entity_ok "Ncedil" entity_ok "Ncy" entity_ok "Ngr" entity_ok "Ntilde" entity_ok "Nu" entity_ok "OElig" entity_ok "OHacgr" entity_ok "OHgr" entity_ok "Oacgr" entity_ok "Oacute" entity_ok "Ocirc" entity_ok "Ocy" entity_ok "Odblac" entity_ok "Ogr" entity_ok "Ograve" entity_ok "Omacr" entity_ok "Omega" entity_ok "Omicron" entity_ok "Oslash" entity_ok "Otilde" entity_ok "Ouml" entity_ok "PHgr" entity_ok "PSgr" entity_ok "Pcy" entity_ok "Pgr" entity_ok "Phi" entity_ok "Pi" entity_ok "Prime" entity_ok "Psi" entity_ok "Racute" entity_ok "Rarr" entity_ok "Rcaron" entity_ok "Rcedil" entity_ok "Rcy" entity_ok "Rgr" entity_ok "Rho" entity_ok "SHCHcy" entity_ok "SHcy" entity_ok "SOFTcy" entity_ok "Sacute" entity_ok "Scaron" entity_ok "Scedil" entity_ok "Scirc" entity_ok "Scy" entity_ok "Sgr" entity_ok "Sigma" entity_ok "Sub" entity_ok "Sup" entity_ok "THORN" entity_ok "THgr" entity_ok "TSHcy" entity_ok "TScy" entity_ok "Tau" entity_ok "Tcaron" entity_ok "Tcedil" entity_ok "Tcy" entity_ok "Tgr" entity_ok "Theta" entity_ok "Tstrok" entity_ok "Uacgr" entity_ok "Uacute" entity_ok "Ubrcy" entity_ok "Ubreve" entity_ok "Ucirc" entity_ok "Ucy" entity_ok "Udblac" entity_ok "Udigr" entity_ok "Ugr" entity_ok "Ugrave" entity_ok "Umacr" entity_ok "Uogon" entity_ok "Upsi" entity_ok "Upsilon" entity_ok "Uring" entity_ok "Utilde" entity_ok "Uuml" entity_ok "Vcy" entity_ok "Vdash" entity_ok "Verbar" entity_ok "Vvdash" entity_ok "Wcirc" entity_ok "Xgr" entity_ok "Xi" entity_ok "YAcy" entity_ok "YIcy" entity_ok "YUcy" entity_ok "Yacute" entity_ok "Ycirc" entity_ok "Ycy" entity_ok "Yuml" entity_ok "ZHcy" entity_ok "Zacute" entity_ok "Zcaron" entity_ok "Zcy" entity_ok "Zdot" entity_ok "Zeta" entity_ok "Zgr" entity_ok "aacgr" entity_ok "aacute" entity_ok "abreve" entity_ok "acirc" entity_ok "acute" entity_ok "acy" entity_ok "aelig" entity_ok "agr" entity_ok "agrave" entity_ok "alefsym" entity_ok "aleph" entity_ok "alpha" entity_ok "amacr" entity_ok "amalg" entity_ok "amp" entity_ok "and" entity_ok "ang" entity_ok "ang90" entity_ok "angmsd" entity_ok "angsph" entity_ok "angst" entity_ok "aogon" entity_ok "ap" entity_ok "ape" entity_ok "apos" entity_ok "aring" entity_ok "ast" entity_ok "asymp" entity_ok "atilde" entity_ok "auml" entity_ok "b.Delta" entity_ok "b.Gamma" entity_ok "b.Lambda" entity_ok "b.Omega" entity_ok "b.Phi" entity_ok "b.Pi" entity_ok "b.Psi" entity_ok "b.Sigma" entity_ok "b.Theta" entity_ok "b.Upsi" entity_ok "b.Xi" entity_ok "b.alpha" entity_ok "b.beta" entity_ok "b.chi" entity_ok "b.delta" entity_ok "b.epsi" entity_ok "b.epsis" entity_ok "b.epsiv" entity_ok "b.eta" entity_ok "b.gamma" entity_ok "b.gammad" entity_ok "b.iota" entity_ok "b.kappa" entity_ok "b.kappav" entity_ok "b.lambda" entity_ok "b.mu" entity_ok "b.nu" entity_ok "b.omega" entity_ok "b.phis" entity_ok "b.phiv" entity_ok "b.pi" entity_ok "b.piv" entity_ok "b.psi" entity_ok "b.rho" entity_ok "b.rhov" entity_ok "b.sigma" entity_ok "b.sigmav" entity_ok "b.tau" entity_ok "b.thetas" entity_ok "b.thetav" entity_ok "b.upsi" entity_ok "b.xi" entity_ok "b.zeta" entity_ok "barwed" entity_ok "bcong" entity_ok "bcy" entity_ok "bdquo" entity_ok "becaus" entity_ok "bepsi" entity_ok "bernou" entity_ok "beta" entity_ok "beth" entity_ok "bgr" entity_ok "blank" entity_ok "blk12" entity_ok "blk14" entity_ok "blk34" entity_ok "block" entity_ok "bottom" entity_ok "bowtie" entity_ok "boxDL" entity_ok "boxDR" entity_ok "boxDl" entity_ok "boxDr" entity_ok "boxH" entity_ok "boxHD" entity_ok "boxHU" entity_ok "boxHd" entity_ok "boxHu" entity_ok "boxUL" entity_ok "boxUR" entity_ok "boxUl" entity_ok "boxUr" entity_ok "boxV" entity_ok "boxVH" entity_ok "boxVL" entity_ok "boxVR" entity_ok "boxVh" entity_ok "boxVl" entity_ok "boxVr" entity_ok "boxdL" entity_ok "boxdR" entity_ok "boxdl" entity_ok "boxdr" entity_ok "boxh" entity_ok "boxhD" entity_ok "boxhU" entity_ok "boxhd" entity_ok "boxhu" entity_ok "boxuL" entity_ok "boxuR" entity_ok "boxul" entity_ok "boxur" entity_ok "boxv" entity_ok "boxvH" entity_ok "boxvL" entity_ok "boxvR" entity_ok "boxvh" entity_ok "boxvl" entity_ok "boxvr" entity_ok "bprime" entity_ok "breve" entity_ok "brkbar" entity_ok "brvbar" entity_ok "bsim" entity_ok "bsime" entity_ok "bsol" entity_ok "bull" entity_ok "bump" entity_ok "bumpe" entity_ok "cacute" entity_ok "cap" entity_ok "caret" entity_ok "caron" entity_ok "ccaron" entity_ok "ccedil" entity_ok "ccirc" entity_ok "cdot" entity_ok "cedil" entity_ok "cent" entity_ok "chcy" entity_ok "check" entity_ok "chi" entity_ok "cir" entity_ok "circ" entity_ok "cire" entity_ok "clubs" entity_ok "colon" entity_ok "colone" entity_ok "comma" entity_ok "commat" entity_ok "comp" entity_ok "compfn" entity_ok "cong" entity_ok "conint" entity_ok "coprod" entity_ok "copy" entity_ok "copysr" entity_ok "crarr" entity_ok "cross" entity_ok "cuepr" entity_ok "cuesc" entity_ok "cularr" entity_ok "cup" entity_ok "cupre" entity_ok "curarr" entity_ok "curren" entity_ok "cuvee" entity_ok "cuwed" entity_ok "dArr" entity_ok "dagger" entity_ok "daleth" entity_ok "darr" entity_ok "darr2" entity_ok "dash" entity_ok "dashv" entity_ok "dblac" entity_ok "dcaron" entity_ok "dcy" entity_ok "deg" entity_ok "delta" entity_ok "dgr" entity_ok "dharl" entity_ok "dharr" entity_ok "diam" entity_ok "diams" entity_ok "die" entity_ok "divide" entity_ok "divonx" entity_ok "djcy" entity_ok "dlarr" entity_ok "dlcorn" entity_ok "dlcrop" entity_ok "dollar" entity_ok "dot" entity_ok "drarr" entity_ok "drcorn" entity_ok "drcrop" entity_ok "dscy" entity_ok "dstrok" entity_ok "dtri" entity_ok "dtrif" entity_ok "dzcy" entity_ok "eDot" entity_ok "eacgr" entity_ok "eacute" entity_ok "ecaron" entity_ok "ecir" entity_ok "ecirc" entity_ok "ecolon" entity_ok "ecy" entity_ok "edot" entity_ok "eeacgr" entity_ok "eegr" entity_ok "efDot" entity_ok "egr" entity_ok "egrave" entity_ok "egs" entity_ok "ell" entity_ok "els" entity_ok "emacr" entity_ok "emdash" entity_ok "empty" entity_ok "emsp" entity_ok "emsp13" entity_ok "emsp14" entity_ok "endash" entity_ok "eng" entity_ok "ensp" entity_ok "eogon" entity_ok "epsi" entity_ok "epsilon" entity_ok "epsis" entity_ok "epsiv" entity_ok "equals" entity_ok "equiv" entity_ok "erDot" entity_ok "esdot" entity_ok "eta" entity_ok "eth" entity_ok "euml" entity_ok "euro" entity_ok "excl" entity_ok "exist" entity_ok "fcy" entity_ok "female" entity_ok "ffilig" entity_ok "fflig" entity_ok "ffllig" entity_ok "filig" entity_ok "fjlig" entity_ok "flat" entity_ok "fllig" entity_ok "fnof" entity_ok "forall" entity_ok "fork" entity_ok "frac12" entity_ok "frac13" entity_ok "frac14" entity_ok "frac15" entity_ok "frac16" entity_ok "frac18" entity_ok "frac23" entity_ok "frac25" entity_ok "frac34" entity_ok "frac35" entity_ok "frac38" entity_ok "frac45" entity_ok "frac56" entity_ok "frac58" entity_ok "frac78" entity_ok "frasl" entity_ok "frown" entity_ok "gE" entity_ok "gEl" entity_ok "gacute" entity_ok "gamma" entity_ok "gammad" entity_ok "gap" entity_ok "gbreve" entity_ok "gcedil" entity_ok "gcirc" entity_ok "gcy" entity_ok "gdot" entity_ok "ge" entity_ok "gel" entity_ok "ges" entity_ok "ggr" entity_ok "gimel" entity_ok "gjcy" entity_ok "gl" entity_ok "gnE" entity_ok "gnap" entity_ok "gne" entity_ok "gnsim" entity_ok "grave" entity_ok "gsdot" entity_ok "gsim" entity_ok "gt" entity_ok "gvnE" entity_ok "hArr" entity_ok "hairsp" entity_ok "half" entity_ok "hamilt" entity_ok "hardcy" entity_ok "harr" entity_ok "harrw" entity_ok "hcirc" entity_ok "hearts" entity_ok "hellip" entity_ok "hibar" entity_ok "horbar" entity_ok "hstrok" entity_ok "hybull" entity_ok "hyphen" entity_ok "iacgr" entity_ok "iacute" entity_ok "icirc" entity_ok "icy" entity_ok "idiagr" entity_ok "idigr" entity_ok "iecy" entity_ok "iexcl" entity_ok "iff" entity_ok "igr" entity_ok "igrave" entity_ok "ijlig" entity_ok "imacr" entity_ok "image" entity_ok "incare" entity_ok "infin" entity_ok "inodot" entity_ok "int" entity_ok "intcal" entity_ok "iocy" entity_ok "iogon" entity_ok "iota" entity_ok "iquest" entity_ok "isin" entity_ok "itilde" entity_ok "iukcy" entity_ok "iuml" entity_ok "jcirc" entity_ok "jcy" entity_ok "jnodot" entity_ok "jsercy" entity_ok "jukcy" entity_ok "kappa" entity_ok "kappav" entity_ok "kcedil" entity_ok "kcy" entity_ok "kgr" entity_ok "kgreen" entity_ok "khcy" entity_ok "khgr" entity_ok "kjcy" entity_ok "lAarr" entity_ok "lArr" entity_ok "lE" entity_ok "lEg" entity_ok "lacute" entity_ok "lagran" entity_ok "lambda" entity_ok "lang" entity_ok "lap" entity_ok "laquo" entity_ok "larr" entity_ok "larr2" entity_ok "larrhk" entity_ok "larrlp" entity_ok "larrtl" entity_ok "lcaron" entity_ok "lcedil" entity_ok "lceil" entity_ok "lcub" entity_ok "lcy" entity_ok "ldot" entity_ok "ldquo" entity_ok "ldquor" entity_ok "le" entity_ok "leg" entity_ok "les" entity_ok "lfloor" entity_ok "lg" entity_ok "lgr" entity_ok "lhard" entity_ok "lharu" entity_ok "lhblk" entity_ok "ljcy" entity_ok "lmidot" entity_ok "lnE" entity_ok "lnap" entity_ok "lne" entity_ok "lnsim" entity_ok "lowast" entity_ok "lowbar" entity_ok "loz" entity_ok "loz" entity_ok "lozf" entity_ok "lpar" entity_ok "lpargt" entity_ok "lrarr2" entity_ok "lrhar2" entity_ok "lrm" entity_ok "lsaquo" entity_ok "lsh" entity_ok "lsim" entity_ok "lsqb" entity_ok "lsquo" entity_ok "lsquor" entity_ok "lstrok" entity_ok "lt" entity_ok "lthree" entity_ok "ltimes" entity_ok "ltri" entity_ok "ltrie" entity_ok "ltrif" entity_ok "lvnE" entity_ok "macr" entity_ok "male" entity_ok "malt" entity_ok "map" entity_ok "marker" entity_ok "mcy" entity_ok "mdash" entity_ok "mgr" entity_ok "micro" entity_ok "mid" entity_ok "middot" entity_ok "minus" entity_ok "minusb" entity_ok "mldr" entity_ok "mnplus" entity_ok "models" entity_ok "mu" entity_ok "mumap" entity_ok "nVDash" entity_ok "nVdash" entity_ok "nabla" entity_ok "nacute" entity_ok "nap" entity_ok "napos" entity_ok "natur" entity_ok "nbsp" entity_ok "ncaron" entity_ok "ncedil" entity_ok "ncong" entity_ok "ncy" entity_ok "ndash" entity_ok "ne" entity_ok "nearr" entity_ok "nequiv" entity_ok "nexist" entity_ok "ngE" entity_ok "nge" entity_ok "nges" entity_ok "ngr" entity_ok "ngt" entity_ok "nhArr" entity_ok "nharr" entity_ok "ni" entity_ok "njcy" entity_ok "nlArr" entity_ok "nlE" entity_ok "nlarr" entity_ok "nldr" entity_ok "nle" entity_ok "nles" entity_ok "nlt" entity_ok "nltri" entity_ok "nltrie" entity_ok "nmid" entity_ok "not" entity_ok "notin" entity_ok "npar" entity_ok "npr" entity_ok "npre" entity_ok "nrArr" entity_ok "nrarr" entity_ok "nrtri" entity_ok "nrtrie" entity_ok "nsc" entity_ok "nsce" entity_ok "nsim" entity_ok "nsime" entity_ok "nsmid" entity_ok "nspar" entity_ok "nsub" entity_ok "nsubE" entity_ok "nsube" entity_ok "nsup" entity_ok "nsupE" entity_ok "nsupe" entity_ok "ntilde" entity_ok "nu" entity_ok "num" entity_ok "numero" entity_ok "numsp" entity_ok "nvDash" entity_ok "nvdash" entity_ok "nwarr" entity_ok "oS" entity_ok "oacgr" entity_ok "oacute" entity_ok "oast" entity_ok "ocir" entity_ok "ocirc" entity_ok "ocy" entity_ok "odash" entity_ok "odblac" entity_ok "odot" entity_ok "oelig" entity_ok "ogon" entity_ok "ogr" entity_ok "ograve" entity_ok "ohacgr" entity_ok "ohgr" entity_ok "ohm" entity_ok "olarr" entity_ok "oline" entity_ok "omacr" entity_ok "omega" entity_ok "omicron" entity_ok "ominus" entity_ok "oplus" entity_ok "or" entity_ok "orarr" entity_ok "order" entity_ok "ordf" entity_ok "ordm" entity_ok "oslash" entity_ok "osol" entity_ok "otilde" entity_ok "otimes" entity_ok "ouml" entity_ok "par" entity_ok "para" entity_ok "part" entity_ok "pcy" entity_ok "percnt" entity_ok "period" entity_ok "permil" entity_ok "perp" entity_ok "pgr" entity_ok "phgr" entity_ok "phi" entity_ok "phis" entity_ok "phiv" entity_ok "phmmat" entity_ok "phone" entity_ok "pi" entity_ok "piv" entity_ok "planck" entity_ok "plus" entity_ok "plusb" entity_ok "plusdo" entity_ok "plusmn" entity_ok "pound" entity_ok "pr" entity_ok "prap" entity_ok "pre" entity_ok "prime" entity_ok "prnE" entity_ok "prnap" entity_ok "prnsim" entity_ok "prod" entity_ok "prop" entity_ok "prsim" entity_ok "psgr" entity_ok "psi" entity_ok "puncsp" entity_ok "quest" entity_ok "quot" entity_ok "rAarr" entity_ok "rArr" entity_ok "racute" entity_ok "radic" entity_ok "rang" entity_ok "raquo" entity_ok "rarr" entity_ok "rarr2" entity_ok "rarrhk" entity_ok "rarrlp" entity_ok "rarrtl" entity_ok "rarrw" entity_ok "rcaron" entity_ok "rcedil" entity_ok "rceil" entity_ok "rcub" entity_ok "rcy" entity_ok "rdquo" entity_ok "rdquor" entity_ok "real" entity_ok "rect" entity_ok "reg" entity_ok "rfloor" entity_ok "rgr" entity_ok "rhard" entity_ok "rharu" entity_ok "rho" entity_ok "rhov" entity_ok "ring" entity_ok "rlarr2" entity_ok "rlhar2" entity_ok "rlm" entity_ok "rpar" entity_ok "rpargt" entity_ok "rsaquo" entity_ok "rsh" entity_ok "rsqb" entity_ok "rsquo" entity_ok "rsquor" entity_ok "rthree" entity_ok "rtimes" entity_ok "rtri" entity_ok "rtrie" entity_ok "rtrif" entity_ok "rx" entity_ok "sacute" entity_ok "samalg" entity_ok "sbquo" entity_ok "sbsol" entity_ok "sc" entity_ok "scap" entity_ok "scaron" entity_ok "sccue" entity_ok "sce" entity_ok "scedil" entity_ok "scirc" entity_ok "scnE" entity_ok "scnap" entity_ok "scnsim" entity_ok "scsim" entity_ok "scy" entity_ok "sdot" entity_ok "sdotb" entity_ok "sect" entity_ok "semi" entity_ok "setmn" entity_ok "sext" entity_ok "sfgr" entity_ok "sfrown" entity_ok "sgr" entity_ok "sharp" entity_ok "shchcy" entity_ok "shcy" entity_ok "shy" entity_ok "sigma" entity_ok "sigmaf" entity_ok "sigmav" entity_ok "sim" entity_ok "sime" entity_ok "smid" entity_ok "smile" entity_ok "softcy" entity_ok "sol" entity_ok "spades" entity_ok "spar" entity_ok "sqcap" entity_ok "sqcup" entity_ok "sqsub" entity_ok "sqsube" entity_ok "sqsup" entity_ok "sqsupe" entity_ok "squ" entity_ok "square" entity_ok "squf" entity_ok "ssetmn" entity_ok "ssmile" entity_ok "sstarf" entity_ok "star" entity_ok "starf" entity_ok "sub" entity_ok "subE" entity_ok "sube" entity_ok "subnE" entity_ok "subne" entity_ok "sum" entity_ok "sung" entity_ok "sup" entity_ok "sup1" entity_ok "sup2" entity_ok "sup3" entity_ok "supE" entity_ok "supe" entity_ok "supnE" entity_ok "supne" entity_ok "szlig" entity_ok "target" entity_ok "tau" entity_ok "tcaron" entity_ok "tcedil" entity_ok "tcy" entity_ok "tdot" entity_ok "telrec" entity_ok "tgr" entity_ok "there4" entity_ok "theta" entity_ok "thetas" entity_ok "thetasym" entity_ok "thetav" entity_ok "thgr" entity_ok "thinsp" entity_ok "thkap" entity_ok "thksim" entity_ok "thorn" entity_ok "tilde" entity_ok "times" entity_ok "timesb" entity_ok "top" entity_ok "tprime" entity_ok "trade" entity_ok "trie" entity_ok "tscy" entity_ok "tshcy" entity_ok "tstrok" entity_ok "twixt" entity_ok "uArr" entity_ok "uacgr" entity_ok "uacute" entity_ok "uarr" entity_ok "uarr2" entity_ok "ubrcy" entity_ok "ubreve" entity_ok "ucirc" entity_ok "ucy" entity_ok "udblac" entity_ok "udiagr" entity_ok "udigr" entity_ok "ugr" entity_ok "ugrave" entity_ok "uharl" entity_ok "uharr" entity_ok "uhblk" entity_ok "ulcorn" entity_ok "ulcrop" entity_ok "umacr" entity_ok "uml" entity_ok "uogon" entity_ok "uplus" entity_ok "upsi" entity_ok "upsih" entity_ok "upsilon" entity_ok "urcorn" entity_ok "urcrop" entity_ok "uring" entity_ok "utilde" entity_ok "utri" entity_ok "utrif" entity_ok "uuml" entity_ok "vArr" entity_ok "vDash" entity_ok "varr" entity_ok "vcy" entity_ok "vdash" entity_ok "veebar" entity_ok "vellip" entity_ok "verbar" entity_ok "vltri" entity_ok "vprime" entity_ok "vprop" entity_ok "vrtri" entity_ok "vsubnE" entity_ok "vsubne" entity_ok "vsupnE" entity_ok "vsupne" entity_ok "wcirc" entity_ok "wedgeq" entity_ok "weierp" entity_ok "wreath" entity_ok "xcirc" entity_ok "xdtri" entity_ok "xgr" entity_ok "xhArr" entity_ok "xharr" entity_ok "xi" entity_ok "xlArr" entity_ok "xrArr" entity_ok "xutri" entity_ok "yacute" entity_ok "yacy" entity_ok "ycirc" entity_ok "ycy" entity_ok "yen" entity_ok "yicy" entity_ok "yucy" entity_ok "yuml" entity_ok "zacute" entity_ok "zcaron" entity_ok "zcy" entity_ok "zdot" entity_ok "zeta" entity_ok "zgr" entity_ok "zhcy" entity_ok "zwj" entity_ok "zwnj" entity_ok done ".0-9A-Za-z" entity_name :entity_ok Entity * mistake_entity noeat recolor=-1 ";" entity_end noeat recolor=-1 :mistake_entity Bad * idle noeat .end