Sophie

Sophie

distrib > Fedora > 14 > x86_64 > by-pkgid > 36f0d913b965f635bbe529e17e315066 > files > 593

ghc-highlighting-kate-devel-0.2.9-2.fc14.i686.rpm

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<!-- Generated by HsColour, http://www.cs.york.ac.uk/fp/darcs/hscolour/ -->
<title>Text/Highlighting/Kate/Syntax/Coldfusion.hs</title>
<link type='text/css' rel='stylesheet' href='hscolour.css' />
</head>
<body>
<pre><a name="line-1"></a><span class='hs-comment'>{- This module was generated from data in the Kate syntax highlighting file coldfusion.xml, version 1.04,
<a name="line-2"></a>   by   -}</span>
<a name="line-3"></a>
<a name="line-4"></a><span class='hs-keyword'>module</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Highlighting</span><span class='hs-varop'>.</span><span class='hs-conid'>Kate</span><span class='hs-varop'>.</span><span class='hs-conid'>Syntax</span><span class='hs-varop'>.</span><span class='hs-conid'>Coldfusion</span> <span class='hs-layout'>(</span> <span class='hs-varid'>highlight</span><span class='hs-layout'>,</span> <span class='hs-varid'>parseExpression</span><span class='hs-layout'>,</span> <span class='hs-varid'>syntaxName</span><span class='hs-layout'>,</span> <span class='hs-varid'>syntaxExtensions</span> <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
<a name="line-5"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Highlighting</span><span class='hs-varop'>.</span><span class='hs-conid'>Kate</span><span class='hs-varop'>.</span><span class='hs-conid'>Definitions</span>
<a name="line-6"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>Highlighting</span><span class='hs-varop'>.</span><span class='hs-conid'>Kate</span><span class='hs-varop'>.</span><span class='hs-conid'>Common</span>
<a name="line-7"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Text</span><span class='hs-varop'>.</span><span class='hs-conid'>ParserCombinators</span><span class='hs-varop'>.</span><span class='hs-conid'>Parsec</span>
<a name="line-8"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Control</span><span class='hs-varop'>.</span><span class='hs-conid'>Monad</span> <span class='hs-layout'>(</span><span class='hs-varid'>when</span><span class='hs-layout'>)</span>
<a name="line-9"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Map</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromList</span><span class='hs-layout'>)</span>
<a name="line-10"></a><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Maybe</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromMaybe</span><span class='hs-layout'>,</span> <span class='hs-varid'>maybeToList</span><span class='hs-layout'>)</span>
<a name="line-11"></a>
<a name="line-12"></a><span class='hs-keyword'>import</span> <span class='hs-keyword'>qualified</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Set</span>
<a name="line-13"></a><a name="syntaxName"></a><span class='hs-comment'>-- | Full name of language.</span>
<a name="line-14"></a><span class='hs-definition'>syntaxName</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span>
<a name="line-15"></a><span class='hs-definition'>syntaxName</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>"ColdFusion"</span>
<a name="line-16"></a>
<a name="line-17"></a><a name="syntaxExtensions"></a><span class='hs-comment'>-- | Filename extensions for this language.</span>
<a name="line-18"></a><span class='hs-definition'>syntaxExtensions</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span>
<a name="line-19"></a><span class='hs-definition'>syntaxExtensions</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>"*.cfm;*.cfc;*.cfml;*.dbm"</span>
<a name="line-20"></a>
<a name="line-21"></a><a name="highlight"></a><span class='hs-comment'>-- | Highlight source code using this syntax definition.</span>
<a name="line-22"></a><span class='hs-definition'>highlight</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Either</span> <span class='hs-conid'>String</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>SourceLine</span><span class='hs-keyglyph'>]</span>
<a name="line-23"></a><span class='hs-definition'>highlight</span> <span class='hs-varid'>input</span> <span class='hs-keyglyph'>=</span>
<a name="line-24"></a>  <span class='hs-keyword'>case</span> <span class='hs-varid'>runParser</span> <span class='hs-varid'>parseSource</span> <span class='hs-varid'>startingState</span> <span class='hs-str'>"source"</span> <span class='hs-varid'>input</span> <span class='hs-keyword'>of</span>
<a name="line-25"></a>    <span class='hs-conid'>Left</span> <span class='hs-varid'>err</span>     <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Left</span> <span class='hs-varop'>$</span> <span class='hs-varid'>show</span> <span class='hs-varid'>err</span>
<a name="line-26"></a>    <span class='hs-conid'>Right</span> <span class='hs-varid'>result</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Right</span> <span class='hs-varid'>result</span>
<a name="line-27"></a>
<a name="line-28"></a><a name="parseExpression"></a><span class='hs-comment'>-- | Parse an expression using appropriate local context.</span>
<a name="line-29"></a><span class='hs-definition'>parseExpression</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>GenParser</span> <span class='hs-conid'>Char</span> <span class='hs-conid'>SyntaxState</span> <span class='hs-conid'>LabeledSource</span>
<a name="line-30"></a><span class='hs-definition'>parseExpression</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-31"></a>  <span class='hs-varid'>st</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>getState</span>
<a name="line-32"></a>  <span class='hs-keyword'>let</span> <span class='hs-varid'>oldLang</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>synStLanguage</span> <span class='hs-varid'>st</span>
<a name="line-33"></a>  <span class='hs-varid'>setState</span> <span class='hs-varop'>$</span> <span class='hs-varid'>st</span> <span class='hs-layout'>{</span> <span class='hs-varid'>synStLanguage</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>"ColdFusion"</span> <span class='hs-layout'>}</span>
<a name="line-34"></a>  <span class='hs-varid'>context</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>currentContext</span> <span class='hs-varop'>&lt;|&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>pushContext</span> <span class='hs-str'>"Normal Text"</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>currentContext</span><span class='hs-layout'>)</span>
<a name="line-35"></a>  <span class='hs-varid'>result</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>parseRules</span> <span class='hs-varid'>context</span>
<a name="line-36"></a>  <span class='hs-varid'>updateState</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>st</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>st</span> <span class='hs-layout'>{</span> <span class='hs-varid'>synStLanguage</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>oldLang</span> <span class='hs-layout'>}</span>
<a name="line-37"></a>  <span class='hs-varid'>return</span> <span class='hs-varid'>result</span>
<a name="line-38"></a>
<a name="line-39"></a><a name="parseSource"></a><span class='hs-definition'>parseSource</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span> 
<a name="line-40"></a>  <span class='hs-varid'>lineContents</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>lookAhead</span> <span class='hs-varid'>wholeLine</span>
<a name="line-41"></a>  <span class='hs-varid'>updateState</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>st</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>st</span> <span class='hs-layout'>{</span> <span class='hs-varid'>synStCurrentLine</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>lineContents</span> <span class='hs-layout'>}</span>
<a name="line-42"></a>  <span class='hs-varid'>result</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>manyTill</span> <span class='hs-varid'>parseSourceLine</span> <span class='hs-varid'>eof</span>
<a name="line-43"></a>  <span class='hs-varid'>return</span> <span class='hs-varop'>$</span> <span class='hs-varid'>map</span> <span class='hs-varid'>normalizeHighlighting</span> <span class='hs-varid'>result</span>
<a name="line-44"></a>
<a name="line-45"></a><a name="startingState"></a><span class='hs-definition'>startingState</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>SyntaxState</span> <span class='hs-layout'>{</span><span class='hs-varid'>synStContexts</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fromList</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-str'>"ColdFusion"</span><span class='hs-layout'>,</span><span class='hs-keyglyph'>[</span><span class='hs-str'>"Normal Text"</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span><span class='hs-layout'>,</span> <span class='hs-varid'>synStLanguage</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>"ColdFusion"</span><span class='hs-layout'>,</span> <span class='hs-varid'>synStCurrentLine</span> <span class='hs-keyglyph'>=</span> <span class='hs-str'>""</span><span class='hs-layout'>,</span> <span class='hs-varid'>synStCharsParsedInLine</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span><span class='hs-layout'>,</span> <span class='hs-varid'>synStPrevChar</span> <span class='hs-keyglyph'>=</span> <span class='hs-chr'>'\n'</span><span class='hs-layout'>,</span> <span class='hs-varid'>synStCaseSensitive</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>True</span><span class='hs-layout'>,</span> <span class='hs-varid'>synStKeywordCaseSensitive</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>False</span><span class='hs-layout'>,</span> <span class='hs-varid'>synStCaptures</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>[]</span><span class='hs-layout'>}</span>
<a name="line-46"></a>
<a name="line-47"></a><a name="parseSourceLine"></a><span class='hs-definition'>parseSourceLine</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>manyTill</span> <span class='hs-varid'>parseExpressionInternal</span> <span class='hs-varid'>pEndLine</span>
<a name="line-48"></a>
<a name="line-49"></a><a name="pEndLine"></a><span class='hs-definition'>pEndLine</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-50"></a>  <span class='hs-varid'>lookAhead</span> <span class='hs-varop'>$</span> <span class='hs-varid'>newline</span> <span class='hs-varop'>&lt;|&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>eof</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>return</span> <span class='hs-chr'>'\n'</span><span class='hs-layout'>)</span>
<a name="line-51"></a>  <span class='hs-varid'>context</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>currentContext</span>
<a name="line-52"></a>  <span class='hs-keyword'>case</span> <span class='hs-varid'>context</span> <span class='hs-keyword'>of</span>
<a name="line-53"></a>    <span class='hs-str'>"Normal Text"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-54"></a>    <span class='hs-str'>"ctxCFSCRIPT Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-55"></a>    <span class='hs-str'>"ctxSCRIPT Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-56"></a>    <span class='hs-str'>"ctxSTYLE Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-57"></a>    <span class='hs-str'>"ctxTag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-58"></a>    <span class='hs-str'>"ctxTable Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-59"></a>    <span class='hs-str'>"ctxAnchor Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-60"></a>    <span class='hs-str'>"ctxImage Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-61"></a>    <span class='hs-str'>"ctxCF Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-62"></a>    <span class='hs-str'>"ctxCustom Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-63"></a>    <span class='hs-str'>"ctxCFX Tag"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-64"></a>    <span class='hs-str'>"ctxHTML Comment"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-65"></a>    <span class='hs-str'>"ctxCF Comment"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-66"></a>    <span class='hs-str'>"ctxC Style Comment"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-67"></a>    <span class='hs-str'>"ctxOne Line Comment"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pEndLine</span>
<a name="line-68"></a>    <span class='hs-str'>"ctxHTML Entities"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pEndLine</span>
<a name="line-69"></a>    <span class='hs-str'>"ctxCFSCRIPT Block"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-70"></a>    <span class='hs-str'>"ctxSCRIPT Block"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-71"></a>    <span class='hs-str'>"ctxSTYLE Block"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-72"></a>    <span class='hs-str'>"ctxStyle Properties"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>return</span> <span class='hs-conid'>()</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-73"></a>    <span class='hs-str'>"ctxStyle Values"</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pEndLine</span>
<a name="line-74"></a>    <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-75"></a>
<a name="line-76"></a><a name="withAttribute"></a><span class='hs-definition'>withAttribute</span> <span class='hs-varid'>attr</span> <span class='hs-varid'>txt</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-77"></a>  <span class='hs-varid'>when</span> <span class='hs-layout'>(</span><span class='hs-varid'>null</span> <span class='hs-varid'>txt</span><span class='hs-layout'>)</span> <span class='hs-varop'>$</span> <span class='hs-varid'>fail</span> <span class='hs-str'>"Parser matched no text"</span>
<a name="line-78"></a>  <span class='hs-keyword'>let</span> <span class='hs-varid'>labs</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>attr</span> <span class='hs-conop'>:</span> <span class='hs-varid'>maybeToList</span> <span class='hs-layout'>(</span><span class='hs-varid'>lookup</span> <span class='hs-varid'>attr</span> <span class='hs-varid'>styles</span><span class='hs-layout'>)</span>
<a name="line-79"></a>  <span class='hs-varid'>st</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>getState</span>
<a name="line-80"></a>  <span class='hs-keyword'>let</span> <span class='hs-varid'>oldCharsParsed</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>synStCharsParsedInLine</span> <span class='hs-varid'>st</span>
<a name="line-81"></a>  <span class='hs-keyword'>let</span> <span class='hs-varid'>prevchar</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>null</span> <span class='hs-varid'>txt</span> <span class='hs-keyword'>then</span> <span class='hs-chr'>'\n'</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>last</span> <span class='hs-varid'>txt</span>
<a name="line-82"></a>  <span class='hs-varid'>updateState</span> <span class='hs-varop'>$</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>st</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>st</span> <span class='hs-layout'>{</span> <span class='hs-varid'>synStCharsParsedInLine</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>oldCharsParsed</span> <span class='hs-varop'>+</span> <span class='hs-varid'>length</span> <span class='hs-varid'>txt</span><span class='hs-layout'>,</span> <span class='hs-varid'>synStPrevChar</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>prevchar</span> <span class='hs-layout'>}</span> 
<a name="line-83"></a>  <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>labs</span><span class='hs-layout'>,</span> <span class='hs-varid'>txt</span><span class='hs-layout'>)</span>
<a name="line-84"></a>
<a name="line-85"></a><a name="styles"></a><span class='hs-definition'>styles</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-str'>"HTML Comment"</span><span class='hs-layout'>,</span><span class='hs-str'>"co"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"CF Comment"</span><span class='hs-layout'>,</span><span class='hs-str'>"co"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Script Comment"</span><span class='hs-layout'>,</span><span class='hs-str'>"co"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Script Functions"</span><span class='hs-layout'>,</span><span class='hs-str'>"fu"</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
<a name="line-86"></a>
<a name="line-87"></a><a name="parseExpressionInternal"></a><span class='hs-definition'>parseExpressionInternal</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>do</span>
<a name="line-88"></a>  <span class='hs-varid'>context</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>currentContext</span>
<a name="line-89"></a>  <span class='hs-varid'>parseRules</span> <span class='hs-varid'>context</span> <span class='hs-varop'>&lt;|&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>pDefault</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-layout'>(</span><span class='hs-varid'>fromMaybe</span> <span class='hs-str'>""</span> <span class='hs-varop'>$</span> <span class='hs-varid'>lookup</span> <span class='hs-varid'>context</span> <span class='hs-varid'>defaultAttributes</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-90"></a>
<a name="line-91"></a><a name="list_Script_Keywords"></a><span class='hs-definition'>list_Script_Keywords</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Set</span><span class='hs-varop'>.</span><span class='hs-varid'>fromList</span> <span class='hs-varop'>$</span> <span class='hs-varid'>words</span> <span class='hs-varop'>$</span> <span class='hs-str'>"if else for in while do continue break with try catch switch case new var function return this delete true false void throw typeof const default"</span>
<a name="line-92"></a><a name="list_Script_Objects"></a><span class='hs-definition'>list_Script_Objects</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Set</span><span class='hs-varop'>.</span><span class='hs-varid'>fromList</span> <span class='hs-varop'>$</span> <span class='hs-varid'>words</span> <span class='hs-varop'>$</span> <span class='hs-str'>"anchor applet area array boolean button checkbox date document event fileupload form frame function hidden history image layer linke location math navigator number object option password radio regexp reset screen select string submit text textarea window"</span>
<a name="line-93"></a><a name="list_Script_Methods"></a><span class='hs-definition'>list_Script_Methods</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Set</span><span class='hs-varop'>.</span><span class='hs-varid'>fromList</span> <span class='hs-varop'>$</span> <span class='hs-varid'>words</span> <span class='hs-varop'>$</span> <span class='hs-str'>"abs acos alert anchor apply asin atan atan2 back blur call captureevents ceil charat charcodeat clearinterval cleartimeout click close compile concat confirm cos disableexternalcapture enableexternalcapture eval exec exp find floor focus forward fromcharcode getdate getday getfullyear gethours getmilliseconds getminutes getmonth getseconds getselection gettime gettimezoneoffset getutcdate getutcday getutcfullyear getutchours getutcmilliseconds getutcminutes getutcmonth getutcseconds go handleevent home indexof javaenabled join lastindexof link load log match max min moveabove movebelow moveby moveto movetoabsolute open parse plugins.refresh pop pow preference print prompt push random releaseevents reload replace reset resizeby resizeto reverse round routeevent scrollby scrollto search select setdate setfullyear sethours setinterval setmilliseconds setminutes setmonth setseconds settime settimeout setutcdate setutcfullyear setutchours setutcmilliseconds setutcminutes setutcmonth setutcseconds shift sin slice sort splice split sqrt stop string formatting submit substr substring taintenabled tan test tolocalestring tolowercase tosource tostring touppercase toutcstring unshift unwatch utc valueof watch write writeln"</span>
<a name="line-94"></a><a name="list_CFSCRIPT_Keywords"></a><span class='hs-definition'>list_CFSCRIPT_Keywords</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Set</span><span class='hs-varop'>.</span><span class='hs-varid'>fromList</span> <span class='hs-varop'>$</span> <span class='hs-varid'>words</span> <span class='hs-varop'>$</span> <span class='hs-str'>"break case catch continue default do else for function if in return switch try var while"</span>
<a name="line-95"></a><a name="list_CFSCRIPT_Functions"></a><span class='hs-definition'>list_CFSCRIPT_Functions</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Set</span><span class='hs-varop'>.</span><span class='hs-varid'>fromList</span> <span class='hs-varop'>$</span> <span class='hs-varid'>words</span> <span class='hs-varop'>$</span> <span class='hs-str'>"abs acos arrayappend arrayavg arrayclear arraydeleteat arrayinsertat arrayisempty arraylen arraymax arraymin arraynew arrayprepend arrayresize arrayset arraysort arraysum arrayswap arraytolist asc asin atn bitand bitmaskclear bitmaskread bitmaskset bitnot bitor bitshln bitshrn bitxor ceiling chr cjustify compare comparenocase cos createdate createdatetime createobject createodbcdate createodbcdatetime createodbctime createtime createtimespan createuuid dateadd datecompare dateconvert datediff dateformat datepart day dayofweek dayofweekasstring dayofyear daysinmonth daysinyear de decimalformat decrementvalue decrypt deleteclientvariable directoryexists dollarformat duplicate encrypt evaluate exp expandpath fileexists find findnocase findoneof firstdayofmonth fix formatbasen getauthuser getbasetagdata getbasetaglist getbasetemplatepath getclientvariableslist getcurrenttemplatepath getdirectoryfrompath getexception getfilefrompath getfunctionlist gethttprequestdata gethttptimestring getk2serverdoccount getk2serverdoccountlimit getlocale getmetadata getmetricdata getpagecontext getprofilesections getprofilestring getservicesettings gettempdirectory gettempfile gettemplatepath gettickcount gettimezoneinfo gettoken hash hour htmlcodeformat htmleditformat iif incrementvalue inputbasen insert int isarray isbinary isboolean iscustomfunction isdate isdebugmode isdefined isk2serverabroker isk2serverdoccountexceeded isk2serveronline isleapyear isnumeric isnumericdate isobject isquery issimplevalue isstruct isuserinrole iswddx isxmldoc isxmlelement isxmlroot javacast jsstringformat lcase left len listappend listchangedelims listcontains listcontainsnocase listdeleteat listfind listfindnocase listfirst listgetat listinsertat listlast listlen listprepend listqualify listrest listsetat listsort listtoarray listvaluecount listvaluecountnocase ljustify log log10 lscurrencyformat lsdateformat lseurocurrencyformat lsiscurrency lsisdate lsisnumeric lsnumberformat lsparsecurrency lsparsedatetime lsparseeurocurrency lsparsenumber lstimeformat ltrim max mid min minute month monthasstring now numberformat paragraphformat parameterexists parsedatetime pi preservesinglequotes quarter queryaddcolumn queryaddrow querynew querysetcell quotedvaluelist rand randomize randrange refind refindnocase removechars repeatstring replace replacelist replacenocase rereplace rereplacenocase reverse right rjustify round rtrim second setencoding setlocale setprofilestring setvariable sgn sin spanexcluding spanincluding sqr stripcr structappend structclear structcopy structcount structdelete structfind structfindkey structfindvalue structget structinsert structisempty structkeyarray structkeyexists structkeylist structnew structsort structupdate tan timeformat tobase64 tobinary tostring trim ucase urldecode urlencodedformat urlsessionformat val valuelist week writeoutput xmlchildpos xmlelemnew xmlformat xmlnew xmlparse xmlsearch xmltransform year yesnoformat"</span>
<a name="line-96"></a>
<a name="line-97"></a><a name="regex_'3c'5bcC'5d'5bfF'5d'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d"></a><span class='hs-definition'>regex_'3c'5bcC'5d'5bfF'5d'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;[cC][fF][sS][cC][rR][iI][pP][tT]"</span>
<a name="line-98"></a><a name="regex_'3c'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d"></a><span class='hs-definition'>regex_'3c'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;[sS][cC][rR][iI][pP][tT]"</span>
<a name="line-99"></a><a name="regex_'3c'5bsS'5d'5btT'5d'5byY'5d'5blL'5d'5beE'5d"></a><span class='hs-definition'>regex_'3c'5bsS'5d'5btT'5d'5byY'5d'5blL'5d'5beE'5d</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;[sS][tT][yY][lL][eE]"</span>
<a name="line-100"></a><a name="regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d'5f"></a><span class='hs-definition'>regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d'5f</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;\\/?[cC][fF]_"</span>
<a name="line-101"></a><a name="regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d'5bxX'5d'5f"></a><span class='hs-definition'>regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d'5bxX'5d'5f</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;\\/?[cC][fF][xX]_"</span>
<a name="line-102"></a><a name="regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d"></a><span class='hs-definition'>regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;\\/?[cC][fF]"</span>
<a name="line-103"></a><a name="regex_'3c'5c'2f'3f'28'5btT'5d'5baAhHbBfFrRdD'5d'29'7c'28'5bcC'5d'5baA'5d'5bpP'5d'5btT'5d'29"></a><span class='hs-definition'>regex_'3c'5c'2f'3f'28'5btT'5d'5baAhHbBfFrRdD'5d'29'7c'28'5bcC'5d'5baA'5d'5bpP'5d'5btT'5d'29</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;\\/?([tT][aAhHbBfFrRdD])|([cC][aA][pP][tT])"</span>
<a name="line-104"></a><a name="regex_'3c'5c'2f'3f'5baA'5d_"></a><span class='hs-definition'>regex_'3c'5c'2f'3f'5baA'5d_</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;\\/?[aA] "</span>
<a name="line-105"></a><a name="regex_'3c'5c'2f'3f'5biI'5d'5bmM'5d'5bgG'5d_"></a><span class='hs-definition'>regex_'3c'5c'2f'3f'5biI'5d'5bmM'5d'5bgG'5d_</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;\\/?[iI][mM][gG] "</span>
<a name="line-106"></a><a name="regex_'3c'21'3f'5c'2f'3f'5ba'2dzA'2dZ0'2d9'5f'5d'2b"></a><span class='hs-definition'>regex_'3c'21'3f'5c'2f'3f'5ba'2dzA'2dZ0'2d9'5f'5d'2b</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;!?\\/?[a-zA-Z0-9_]+"</span>
<a name="line-107"></a><a name="regex_'22'5b'5e'22'5d'2a'22"></a><span class='hs-definition'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"\"[^\"]*\""</span>
<a name="line-108"></a><a name="regex_'27'5b'5e'27'5d'2a'27"></a><span class='hs-definition'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"'[^']*'"</span>
<a name="line-109"></a><a name="regex_'3c'2f'5bcC'5d'5bfF'5d'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d'3e"></a><span class='hs-definition'>regex_'3c'2f'5bcC'5d'5bfF'5d'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d'3e</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;/[cC][fF][sS][cC][rR][iI][pP][tT]&gt;"</span>
<a name="line-110"></a><a name="regex_'3c'2f'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d'3e"></a><span class='hs-definition'>regex_'3c'2f'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d'3e</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;/[sS][cC][rR][iI][pP][tT]&gt;"</span>
<a name="line-111"></a><a name="regex_'3c'2f'5bsS'5d'5btT'5d'5byY'5d'5blL'5d'5beE'5d'3e"></a><span class='hs-definition'>regex_'3c'2f'5bsS'5d'5btT'5d'5byY'5d'5blL'5d'5beE'5d'3e</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"&lt;/[sS][tT][yY][lL][eE]&gt;"</span>
<a name="line-112"></a><a name="regex_'23'28'5b0'2d9a'2dfA'2dF'5d'7b3'7d'29'7c'28'5b0'2d9a'2dfA'2dF'5d'7b6'7d'29"></a><span class='hs-definition'>regex_'23'28'5b0'2d9a'2dfA'2dF'5d'7b3'7d'29'7c'28'5b0'2d9a'2dfA'2dF'5d'7b6'7d'29</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"#([0-9a-fA-F]{3})|([0-9a-fA-F]{6})"</span>
<a name="line-113"></a>
<a name="line-114"></a><a name="defaultAttributes"></a><span class='hs-definition'>defaultAttributes</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-str'>"Normal Text"</span><span class='hs-layout'>,</span><span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxCFSCRIPT Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"Script Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxSCRIPT Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"Script Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxSTYLE Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"Style Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxTag"</span><span class='hs-layout'>,</span><span class='hs-str'>"Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxTable Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"Table Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxAnchor Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"Anchor Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxImage Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"Image Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxCF Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"CF Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxCustom Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"Custom Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxCFX Tag"</span><span class='hs-layout'>,</span><span class='hs-str'>"CFX Tags"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxHTML Comment"</span><span class='hs-layout'>,</span><span class='hs-str'>"HTML Comment"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxCF Comment"</span><span class='hs-layout'>,</span><span class='hs-str'>"CF Comment"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxC Style Comment"</span><span class='hs-layout'>,</span><span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxOne Line Comment"</span><span class='hs-layout'>,</span><span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxHTML Entities"</span><span class='hs-layout'>,</span><span class='hs-str'>"HTML Entities"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxCFSCRIPT Block"</span><span class='hs-layout'>,</span><span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxSCRIPT Block"</span><span class='hs-layout'>,</span><span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxSTYLE Block"</span><span class='hs-layout'>,</span><span class='hs-str'>"Style Selectors"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxStyle Properties"</span><span class='hs-layout'>,</span><span class='hs-str'>"Style Properties"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"ctxStyle Values"</span><span class='hs-layout'>,</span><span class='hs-str'>"Style Values"</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
<a name="line-115"></a>
<a name="line-116"></a><a name="parseRules"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"Normal Text"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-117"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pString</span> <span class='hs-conid'>False</span> <span class='hs-str'>"&lt;!---"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"CF Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxCF Comment"</span><span class='hs-layout'>)</span>
<a name="line-118"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-119"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pString</span> <span class='hs-conid'>False</span> <span class='hs-str'>"&lt;!--"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"HTML Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxHTML Comment"</span><span class='hs-layout'>)</span>
<a name="line-120"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-121"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5bcC'5d'5bfF'5d'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxCFSCRIPT Tag"</span><span class='hs-layout'>)</span>
<a name="line-122"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-123"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxSCRIPT Tag"</span><span class='hs-layout'>)</span>
<a name="line-124"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-125"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5bsS'5d'5btT'5d'5byY'5d'5blL'5d'5beE'5d</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Style Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxSTYLE Tag"</span><span class='hs-layout'>)</span>
<a name="line-126"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-127"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&amp;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"HTML Entities"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxHTML Entities"</span><span class='hs-layout'>)</span>
<a name="line-128"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-129"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d'5f</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Custom Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxCustom Tag"</span><span class='hs-layout'>)</span>
<a name="line-130"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-131"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d'5bxX'5d'5f</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"CFX Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxCFX Tag"</span><span class='hs-layout'>)</span>
<a name="line-132"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-133"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5c'2f'3f'5bcC'5d'5bfF'5d</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"CF Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxCF Tag"</span><span class='hs-layout'>)</span>
<a name="line-134"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-135"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5c'2f'3f'28'5btT'5d'5baAhHbBfFrRdD'5d'29'7c'28'5bcC'5d'5baA'5d'5bpP'5d'5btT'5d'29</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Table Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxTable Tag"</span><span class='hs-layout'>)</span>
<a name="line-136"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-137"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5c'2f'3f'5baA'5d_</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Anchor Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxAnchor Tag"</span><span class='hs-layout'>)</span>
<a name="line-138"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-139"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'5c'2f'3f'5biI'5d'5bmM'5d'5bgG'5d_</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Image Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxImage Tag"</span><span class='hs-layout'>)</span>
<a name="line-140"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-141"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'21'3f'5c'2f'3f'5ba'2dzA'2dZ0'2d9'5f'5d'2b</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxTag"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-142"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-143"></a>
<a name="line-144"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxCFSCRIPT Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-145"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxCFSCRIPT Block"</span><span class='hs-layout'>)</span>
<a name="line-146"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-147"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-148"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-149"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-150"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-151"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-152"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-153"></a>
<a name="line-154"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxSCRIPT Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-155"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxSCRIPT Block"</span><span class='hs-layout'>)</span>
<a name="line-156"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-157"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-158"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-159"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-160"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-161"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-162"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-163"></a>
<a name="line-164"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxSTYLE Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-165"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Style Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxSTYLE Block"</span><span class='hs-layout'>)</span>
<a name="line-166"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-167"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-168"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-169"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-170"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-171"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-172"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-173"></a>
<a name="line-174"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxTag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-175"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-176"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-177"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-178"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-179"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-180"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-181"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-182"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-183"></a>
<a name="line-184"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxTable Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-185"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Table Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-186"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-187"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-188"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-189"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-190"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-191"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-192"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-193"></a>
<a name="line-194"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxAnchor Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-195"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Anchor Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-196"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-197"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-198"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-199"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-200"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-201"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-202"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-203"></a>
<a name="line-204"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxImage Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-205"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Image Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-206"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-207"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-208"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-209"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-210"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-211"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-212"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-213"></a>
<a name="line-214"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxCF Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-215"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"CF Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-216"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-217"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-218"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-219"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-220"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-221"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-222"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-223"></a>
<a name="line-224"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxCustom Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-225"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Custom Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-226"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-227"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-228"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-229"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-230"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-231"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-232"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-233"></a>
<a name="line-234"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxCFX Tag"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-235"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'&gt;'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"CFX Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-236"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-237"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'='</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-238"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-239"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-240"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-241"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-242"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-243"></a>
<a name="line-244"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxHTML Comment"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-245"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pString</span> <span class='hs-conid'>False</span> <span class='hs-str'>"&lt;!---"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"CF Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxCF Comment"</span><span class='hs-layout'>)</span>
<a name="line-246"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-247"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pString</span> <span class='hs-conid'>False</span> <span class='hs-str'>"--&gt;"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"HTML Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-248"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-249"></a>
<a name="line-250"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxCF Comment"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-251"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pString</span> <span class='hs-conid'>False</span> <span class='hs-str'>"---&gt;"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"CF Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-252"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-253"></a>
<a name="line-254"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxC Style Comment"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-255"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetect2Chars</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'*'</span> <span class='hs-chr'>'/'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-256"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-257"></a>
<a name="line-258"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxOne Line Comment"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-259"></a>  <span class='hs-varid'>pzero</span>
<a name="line-260"></a>
<a name="line-261"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxHTML Entities"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-262"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>';'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"HTML Entities"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-263"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-264"></a>
<a name="line-265"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxCFSCRIPT Block"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-266"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetect2Chars</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'/'</span> <span class='hs-chr'>'*'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxC Style Comment"</span><span class='hs-layout'>)</span>
<a name="line-267"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-268"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetect2Chars</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'/'</span> <span class='hs-chr'>'/'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxOne Line Comment"</span><span class='hs-layout'>)</span>
<a name="line-269"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-270"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Strings"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-271"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-272"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Strings"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-273"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-274"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pInt</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Numbers"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-275"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-276"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pFloat</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Numbers"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-277"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-278"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pAnyChar</span> <span class='hs-str'>"[()[\\]=+-*/]+"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Operators"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-279"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-280"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pAnyChar</span> <span class='hs-str'>"{}"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Brackets"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-281"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-282"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pKeyword</span> <span class='hs-str'>" \n\t.():!+,&lt;=&gt;%&amp;*/;?[]^{|}~\\"</span> <span class='hs-varid'>list_CFSCRIPT_Keywords</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Keywords"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-283"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-284"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pKeyword</span> <span class='hs-str'>" \n\t.():!+,&lt;=&gt;%&amp;*/;?[]^{|}~\\"</span> <span class='hs-varid'>list_CFSCRIPT_Functions</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Functions"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-285"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-286"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'2f'5bcC'5d'5bfF'5d'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d'3e</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-287"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-288"></a>
<a name="line-289"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxSCRIPT Block"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-290"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetect2Chars</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'/'</span> <span class='hs-chr'>'*'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxC Style Comment"</span><span class='hs-layout'>)</span>
<a name="line-291"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-292"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetect2Chars</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'/'</span> <span class='hs-chr'>'/'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxOne Line Comment"</span><span class='hs-layout'>)</span>
<a name="line-293"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-294"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Strings"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-295"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-296"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Strings"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-297"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-298"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pInt</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Numbers"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-299"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-300"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pFloat</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Numbers"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-301"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-302"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pAnyChar</span> <span class='hs-str'>"[()[\\]=+-*/]+"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Operators"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-303"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-304"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pAnyChar</span> <span class='hs-str'>"{}"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Brackets"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-305"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-306"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pKeyword</span> <span class='hs-str'>" \n\t.():!+,&lt;=&gt;%&amp;*/;?[]^{|}~\\"</span> <span class='hs-varid'>list_Script_Keywords</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Keywords"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-307"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-308"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pKeyword</span> <span class='hs-str'>" \n\t.():!+,&lt;=&gt;%&amp;*/;?[]^{|}~\\"</span> <span class='hs-varid'>list_Script_Objects</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Objects"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-309"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-310"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pKeyword</span> <span class='hs-str'>" \n\t.():!+,&lt;=&gt;%&amp;*/;?[]^{|}~\\"</span> <span class='hs-varid'>list_Script_Methods</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Functions"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-311"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-312"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'2f'5bsS'5d'5bcC'5d'5brR'5d'5biI'5d'5bpP'5d'5btT'5d'3e</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-313"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-314"></a>
<a name="line-315"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxSTYLE Block"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-316"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetect2Chars</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'/'</span> <span class='hs-chr'>'*'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxC Style Comment"</span><span class='hs-layout'>)</span>
<a name="line-317"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-318"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'{'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Brackets"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxStyle Properties"</span><span class='hs-layout'>)</span>
<a name="line-319"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-320"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'3c'2f'5bsS'5d'5btT'5d'5byY'5d'5blL'5d'5beE'5d'3e</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Style Tags"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-321"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-322"></a>
<a name="line-323"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxStyle Properties"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-324"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'}'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Brackets"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-325"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-326"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetect2Chars</span> <span class='hs-conid'>False</span> <span class='hs-chr'>'/'</span> <span class='hs-chr'>'*'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Script Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxC Style Comment"</span><span class='hs-layout'>)</span>
<a name="line-327"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-328"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>':'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"ctxStyle Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-329"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-330"></a>
<a name="line-331"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"ctxStyle Values"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-332"></a>  <span class='hs-keyword'>do</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>';'</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-layout'>(</span><span class='hs-varid'>popContext</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-333"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-334"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pDetectChar</span> <span class='hs-conid'>False</span> <span class='hs-chr'>','</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-335"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-336"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pInt</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Numbers"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-337"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-338"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pFloat</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Numbers"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-339"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-340"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'23'28'5b0'2d9a'2dfA'2dF'5d'7b3'7d'29'7c'28'5b0'2d9a'2dfA'2dF'5d'7b6'7d'29</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Numbers"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-341"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-342"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'22'5b'5e'22'5d'2a'22</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-343"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-344"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'5b'5e'27'5d'2a'27</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Attribute Values"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-345"></a>     <span class='hs-varid'>return</span> <span class='hs-layout'>(</span><span class='hs-varid'>attr</span><span class='hs-layout'>,</span> <span class='hs-varid'>result</span><span class='hs-layout'>)</span>
<a name="line-346"></a>
<a name="line-347"></a><span class='hs-definition'>parseRules</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>fail</span> <span class='hs-varop'>$</span> <span class='hs-str'>"Unknown context"</span> <span class='hs-varop'>++</span> <span class='hs-varid'>x</span>
</pre></body>
</html>