diff --git a/css.jsf b/css.jsf new file mode 100644 index 0000000..c07b684 --- /dev/null +++ b/css.jsf @@ -0,0 +1,102 @@ +# JOE syntax highlight file for CSS +# by Eric Lin + +- + +# Define colors + +=Idle +=Comment green +=Class cyan +=Id red +=Tag magenta +=Keyword bold +=HTML + +:begin Idle + * begin noeat call=.css() + +# +# For +# 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 +=Background +=Text +=TagEdge green +=TagName cyan +=TagParam green +=TagDelim bold green +=TagValue cyan +=TagEntity bold blue +=SGMLtag magenta +=XML_pi yellow +=Entity bold blue +=Mystery bold yellow bg_red inverse + +# Call HTML highlighter subroutine + +:first Background + * call_failed noeat call=.html() + +:call_failed Mystery + * call_failed + +# +# HTML highlighter as a subroutine +# + +.subr html + +:reset Background + * idle noeat +.ifdef mason + "%" reset call=perl.perl(mason_line) +.endif + +# Rules +:idle Background + * idle + "\n" reset + "<" tag_begin recolor=-1 + "&" idle call=.entity() recolor=-1 +:mistake_idle Mystery + * idle noeat + +# Tags +:tag_begin TagEdge + * tag_name_first buffer noeat recolor=-1 + "/" tag_name_first buffer +.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 + +# this state allows php and perl to recolor the ?> %> or &> properly. +:rtn_php TagEdge + * idle noeat + +:tag_name_first Mystery + * tag_idle noeat + "-A-Za-z0-9._:" tag_name recolor=-1 + +:tag_name TagName + * tag_idle noeat strings + "script" stag_enter_idle + "style" ytag_enter_idle +done + "-A-Za-z0-9._:" tag_name + +:tag_idle Background + * 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 Mystery + * tag_idle + "?" tag_call_php recolor=-2 + +:tag_call_php TagEdge + * rtn_php_tag noeat call=php.php() + +:rtn_php_tag TagEdge + * tag_idle noeat + +:tag_param TagParam + * 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 TagValue + * tag_idle noeat recolor=-1 + "-A-Za-z0-9._:" tag_value + +:tag_end TagEdge + * idle + +:mistake_tag Mystery + * tag_idle noeat + +# We're about to entry a script... + +:stag_enter_idle TagName + * stag_idle noeat + +:stag_idle Background + * 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 TagParam + * 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 TagValue + * stag_idle noeat recolor=-1 + "-A-Za-z0-9._:" stag_value + +:stag_end TagEdge +.ifdef php + * tag_begin call=php.php(script) +.else + * tag_begin call=java.java(script) +.endif + +:stag_done TagEdge + * tag_name_first buffer noeat + +:smistake_tag Mystery + * stag_idle noeat + +# We're about to entry a script... + +:ytag_enter_idle TagName + * ytag_idle noeat + +:ytag_idle Background + * 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 TagParam + * 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 TagValue + * ytag_idle noeat recolor=-1 + "-A-Za-z0-9._:" ytag_value + +:ytag_end TagEdge + * tag_begin call=css.css() + +:ytag_done TagEdge + * tag_name_first buffer noeat + +:ymistake_tag Mystery + * ytag_idle noeat + +# SGML and comments +:sgml_tag SGMLtag + * sgml_tag + "-" sgml_tag_maybe_comment + ">" sgml_end noeat recolor=-1 +:sgml_tag_maybe_comment SGMLtag + * sgml_tag + "-" sgml_tag_comment +:sgml_tag_comment SGMLtag + * sgml_tag_comment + "-" sgml_tag_maybe_comment_end +:sgml_tag_maybe_comment_end SGMLtag + * sgml_tag_comment + "-" sgml_tag +:sgml_end SGMLtag + * idle + +# XML processing info +:xml_pi XML_pi + * xml_pi + "?" xml_pi_maybe_end +:xml_pi_maybe_end XML_pi + * xml_pi + "?" xml_pi_maybe_end + ">" xml_pi_end noeat recolor=-1 +:xml_pi_end XML_pi + * idle + +.end + +# +# Quoted string tag values +# + +.subr tag_value_quoted + +:tag_value_quoted TagValue + * 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 TagValue + * tag_value_quoted noeat + "?" tag_value_call_php recolor=-2 + +:tag_value_call_php TagEdge + * tag_value_rtn_php noeat call=php.php() + +:tag_value_rtn_php TagEdge + * 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 Mystery + * 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 Mystery + * 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 Mystery + * idle noeat + +.end