Sophie

Sophie

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

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/Gnuassembler.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 gnuassembler.xml, version 1.05,
<a name="line-2"></a>   by  John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com) -}</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'>Gnuassembler</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'>"GNU Assembler"</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'>"*.s;*.S"</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'>"GNU Assembler"</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"</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'>"GNU Assembler"</span><span class='hs-layout'>,</span><span class='hs-keyglyph'>[</span><span class='hs-str'>"Normal"</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'>"GNU Assembler"</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'>True</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"</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'>"Commentar 1"</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'>"Commentar 2"</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-56"></a>    <span class='hs-str'>"String"</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-57"></a>    <span class='hs-str'>"Preprocessor"</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-58"></a>    <span class='hs-str'>"Define"</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-59"></a>    <span class='hs-str'>"Some Context"</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-60"></a>    <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>pHandleEndLine</span>
<a name="line-61"></a>
<a name="line-62"></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-63"></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-64"></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-65"></a>  <span class='hs-varid'>st</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>getState</span>
<a name="line-66"></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-67"></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-68"></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-69"></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-70"></a>
<a name="line-71"></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'>"Label"</span><span class='hs-layout'>,</span><span class='hs-str'>"kw"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Keyword"</span><span class='hs-layout'>,</span><span class='hs-str'>"kw"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Decimal"</span><span class='hs-layout'>,</span><span class='hs-str'>"dv"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Octal"</span><span class='hs-layout'>,</span><span class='hs-str'>"bn"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Hex"</span><span class='hs-layout'>,</span><span class='hs-str'>"bn"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Binary"</span><span class='hs-layout'>,</span><span class='hs-str'>"bn"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Float"</span><span class='hs-layout'>,</span><span class='hs-str'>"fl"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Char"</span><span class='hs-layout'>,</span><span class='hs-str'>"ch"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"String"</span><span class='hs-layout'>,</span><span class='hs-str'>"st"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"String Char"</span><span class='hs-layout'>,</span><span class='hs-str'>"ch"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"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'>"Preprocessor"</span><span class='hs-layout'>,</span><span class='hs-str'>"ot"</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
<a name="line-72"></a>
<a name="line-73"></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-74"></a>  <span class='hs-varid'>context</span> <span class='hs-keyglyph'>&lt;-</span> <span class='hs-varid'>currentContext</span>
<a name="line-75"></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-76"></a>
<a name="line-77"></a><a name="list_keywords"></a><span class='hs-definition'>list_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'>".abort .align .app-file .appline .ascii .asciz .att_syntax .balign .balignl .balignw .byte .code16 .code32 .comm .common.s .common .data .dc.b .dc.d .dc.l .dc.s .dc.w .dc.x .dc .dcb.b .dcb.d .dcb.l .dcb.s .dcb.w .dcb.x .dcb .debug .def .desc .dim .double .ds.b .ds.d .ds.l .ds.p .ds.s .ds.w .ds.x .ds .dsect .eject .else .elsec .elseif .end .endc .endef .endfunc .endif .endm .endr .equ .equiv .err .exitm .extend .extern .fail .file .fill .float .format .func .global .globl .hidden .hword .ident .if .ifc .ifdef .ifeq .ifeqs .ifge .ifgt .ifle .iflt .ifnc .ifndef .ifne .ifnes .ifnotdef .include .int .intel_syntax .internal .irep .irepc .irp .irpc .lcomm .lflags .line .linkonce .list .llen .ln .long .lsym .macro .mexit .name .noformat .nolist .nopage noprefix .octa .offset .org .p2align .p2alignl .p2alignw .page .plen .popsection .previous .print .protected .psize .purgem .pushsection .quad .rodata .rep .rept .rva .sbttl .scl .sect.s .sect .section.s .section .set .short .single .size .skip .sleb128 .space .spc .stabd .stabn .stabs .string .struct .subsection .symver .tag .text .title .ttl .type .uleb128 .use .val .version .vtable_entry .vtable_inherit .weak .word .xcom .xdef .xref .xstabs .zero .arm .bss .code .even .force_thumb .ldouble .loc .ltorg .packed .pool .req .thumb .thumb_func .thumb_set"</span>
<a name="line-78"></a>
<a name="line-79"></a><a name="regex_'5b'5f'5cw'5cd'2d'5d'2a'5cs'2a'3a"></a><span class='hs-definition'>regex_'5b'5f'5cw'5cd'2d'5d'2a'5cs'2a'3a</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"[_\\w\\d-]*\\s*:"</span>
<a name="line-80"></a><a name="regex_0'5bbB'5d'5b01'5d'2b"></a><span class='hs-definition'>regex_0'5bbB'5d'5b01'5d'2b</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"0[bB][01]+"</span>
<a name="line-81"></a><a name="regex_0'5bfFeEdD'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'2a'5c'2e'3f'5b0'2d9'5d'2a'5beE'5d'3f'5b'2d'2b'5d'3f'5b0'2d9'5d'2b"></a><span class='hs-definition'>regex_0'5bfFeEdD'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'2a'5c'2e'3f'5b0'2d9'5d'2a'5beE'5d'3f'5b'2d'2b'5d'3f'5b0'2d9'5d'2b</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"0[fFeEdD][-+]?[0-9]*\\.?[0-9]*[eE]?[-+]?[0-9]+"</span>
<a name="line-82"></a><a name="regex_'5bA'2dZa'2dz'5f'2e'24'5d'5bA'2dZa'2dz0'2d9'5f'2e'24'5d'2a"></a><span class='hs-definition'>regex_'5bA'2dZa'2dz'5f'2e'24'5d'5bA'2dZa'2dz0'2d9'5f'2e'24'5d'2a</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"[A-Za-z_.$][A-Za-z0-9_.$]*"</span>
<a name="line-83"></a><a name="regex_'27'28'5c'5cx'5b0'2d9a'2dfA'2dF'5d'5b0'2d9a'2dfA'2dF'5d'3f'7c'5c'5c'5b0'2d7'5d'3f'5b0'2d7'5d'3f'5b0'2d7'5d'3f'7c'5c'5c'2e'7c'2e'29"></a><span class='hs-definition'>regex_'27'28'5c'5cx'5b0'2d9a'2dfA'2dF'5d'5b0'2d9a'2dfA'2dF'5d'3f'7c'5c'5c'5b0'2d7'5d'3f'5b0'2d7'5d'3f'5b0'2d7'5d'3f'7c'5c'5c'2e'7c'2e'29</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"'(\\\\x[0-9a-fA-F][0-9a-fA-F]?|\\\\[0-7]?[0-7]?[0-7]?|\\\\.|.)"</span>
<a name="line-84"></a><a name="regex_'23'5cs'2aif'28'3f'3adef'7cndef'29'3f'28'3f'3d'5cs'2b'5cS'29"></a><span class='hs-definition'>regex_'23'5cs'2aif'28'3f'3adef'7cndef'29'3f'28'3f'3d'5cs'2b'5cS'29</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"#\\s*if(?:def|ndef)?(?=\\s+\\S)"</span>
<a name="line-85"></a><a name="regex_'23'5cs'2aendif"></a><span class='hs-definition'>regex_'23'5cs'2aendif</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"#\\s*endif"</span>
<a name="line-86"></a><a name="regex_'23'5cs'2adefine'2e'2a'28'28'3f'3d'5c'5c'29'29"></a><span class='hs-definition'>regex_'23'5cs'2adefine'2e'2a'28'28'3f'3d'5c'5c'29'29</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"#\\s*define.*((?=\\\\))"</span>
<a name="line-87"></a><a name="regex_'23'5cs'2a'28'3f'3ael'28'3f'3ase'7cif'29'7cinclude'28'3f'3a'5fnext'29'3f'7cdefine'7cundef'7cline'7cerror'7cwarning'7cpragma'29"></a><span class='hs-definition'>regex_'23'5cs'2a'28'3f'3ael'28'3f'3ase'7cif'29'7cinclude'28'3f'3a'5fnext'29'3f'7cdefine'7cundef'7cline'7cerror'7cwarning'7cpragma'29</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>compileRegex</span> <span class='hs-str'>"#\\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)"</span>
<a name="line-88"></a>
<a name="line-89"></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"</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'>"Commentar 1"</span><span class='hs-layout'>,</span><span class='hs-str'>"Comment"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Commentar 2"</span><span class='hs-layout'>,</span><span class='hs-str'>"Comment"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"String"</span><span class='hs-layout'>,</span><span class='hs-str'>"String"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>,</span><span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Define"</span><span class='hs-layout'>,</span><span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span><span class='hs-layout'>(</span><span class='hs-str'>"Some Context"</span><span class='hs-layout'>,</span><span class='hs-str'>"Normal Text"</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>
<a name="line-90"></a>
<a name="line-91"></a><a name="parseRules"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"Normal"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-92"></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'>pRegExpr</span> <span class='hs-varid'>regex_'5b'5f'5cw'5cd'2d'5d'2a'5cs'2a'3a</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Label"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-93"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-94"></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_keywords</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Keyword"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-95"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-96"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pHlCOct</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Octal"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-97"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-98"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pHlCHex</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Hex"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-99"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-100"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_0'5bbB'5d'5b01'5d'2b</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Binary"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-101"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-102"></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'>"Decimal"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-103"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-104"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_0'5bfFeEdD'5d'5b'2d'2b'5d'3f'5b0'2d9'5d'2a'5c'2e'3f'5b0'2d9'5d'2a'5beE'5d'3f'5b'2d'2b'5d'3f'5b0'2d9'5d'2b</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Float"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-105"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-106"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'5bA'2dZa'2dz'5f'2e'24'5d'5bA'2dZa'2dz0'2d9'5f'2e'24'5d'2a</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-107"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-108"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pHlCChar</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Char"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-109"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-110"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'27'28'5c'5cx'5b0'2d9a'2dfA'2dF'5d'5b0'2d9a'2dfA'2dF'5d'3f'7c'5c'5c'5b0'2d7'5d'3f'5b0'2d7'5d'3f'5b0'2d7'5d'3f'7c'5c'5c'2e'7c'2e'29</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Char"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-111"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-112"></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'>"String"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"String"</span><span class='hs-layout'>)</span>
<a name="line-113"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-114"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pFirstNonSpace</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'23'5cs'2aif'28'3f'3adef'7cndef'29'3f'28'3f'3d'5cs'2b'5cS'29</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span>
<a name="line-115"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-116"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pFirstNonSpace</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'23'5cs'2aendif</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span>
<a name="line-117"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-118"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pFirstNonSpace</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'23'5cs'2adefine'2e'2a'28'28'3f'3d'5c'5c'29'29</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"Define"</span><span class='hs-layout'>)</span>
<a name="line-119"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-120"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pFirstNonSpace</span> <span class='hs-varop'>&gt;&gt;</span> <span class='hs-varid'>pRegExpr</span> <span class='hs-varid'>regex_'23'5cs'2a'28'3f'3ael'28'3f'3ase'7cif'29'7cinclude'28'3f'3a'5fnext'29'3f'7cdefine'7cundef'7cline'7cerror'7cwarning'7cpragma'29</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span>
<a name="line-121"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-122"></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'>"Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"Commentar 1"</span><span class='hs-layout'>)</span>
<a name="line-123"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-124"></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'>"Comment"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"Commentar 2"</span><span class='hs-layout'>)</span>
<a name="line-125"></a>                        <span class='hs-varop'>&lt;|&gt;</span>
<a name="line-126"></a>                        <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>pAnyChar</span> <span class='hs-str'>"!#%&amp;*()+,-&lt;=&gt;?/:[]^{|}~"</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Symbol"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-127"></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-128"></a>
<a name="line-129"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"Commentar 1"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-130"></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'>"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-131"></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-132"></a>
<a name="line-133"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"Commentar 2"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-134"></a>  <span class='hs-varid'>pzero</span>
<a name="line-135"></a>
<a name="line-136"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"String"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-137"></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'>pLineContinue</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"String"</span><span class='hs-layout'>)</span> <span class='hs-varop'>&gt;&gt;~</span> <span class='hs-varid'>pushContext</span> <span class='hs-str'>"Some Context"</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'>pHlCStringChar</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"String Char"</span><span class='hs-layout'>)</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'>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'>"String"</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-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'>"Preprocessor"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-145"></a>  <span class='hs-varid'>pzero</span>
<a name="line-146"></a>
<a name="line-147"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"Define"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-148"></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'>pLineContinue</span> <span class='hs-varop'>&gt;&gt;=</span> <span class='hs-varid'>withAttribute</span> <span class='hs-str'>"Preprocessor"</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
<a name="line-149"></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-150"></a>
<a name="line-151"></a><span class='hs-definition'>parseRules</span> <span class='hs-str'>"Some Context"</span> <span class='hs-keyglyph'>=</span> 
<a name="line-152"></a>  <span class='hs-varid'>pzero</span>
<a name="line-153"></a>
<a name="line-154"></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>