comunic/3rdparty/luminous/docs/html/classLuminousEmbeddedWebScript.html

593 lines
61 KiB
HTML
Raw Permalink Normal View History

2016-11-19 11:08:12 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Luminous: LuminousEmbeddedWebScript Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td style="padding-left: 0.5em;">
<div id="projectname">Luminous
&#160;<span id="projectnumber">git-master</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.1.2 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main&#160;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Classes</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="annotated.html"><span>Class&#160;List</span></a></li>
<li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
<li><a href="functions.html"><span>Class&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
</div><!-- top -->
<div class="header">
<div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classLuminousEmbeddedWebScript-members.html">List of all members</a> </div>
<div class="headertitle">
<div class="title">LuminousEmbeddedWebScript Class Reference</div> </div>
</div><!--header-->
<div class="contents">
<p>Superclass for languages which may nest, i.e. web languages.
<a href="classLuminousEmbeddedWebScript.html#details">More...</a></p>
<div class="dynheader">
Inheritance diagram for LuminousEmbeddedWebScript:</div>
<div class="dyncontent">
<div class="center"><img src="classLuminousEmbeddedWebScript__inherit__graph.png" border="0" usemap="#LuminousEmbeddedWebScript_inherit__map" alt="Inheritance graph"/></div>
<map name="LuminousEmbeddedWebScript_inherit__map" id="LuminousEmbeddedWebScript_inherit__map">
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<div class="dynheader">
Collaboration diagram for LuminousEmbeddedWebScript:</div>
<div class="dyncontent">
<div class="center"><img src="classLuminousEmbeddedWebScript__coll__graph.png" border="0" usemap="#LuminousEmbeddedWebScript_coll__map" alt="Collaboration graph"/></div>
<map name="LuminousEmbeddedWebScript_coll__map" id="LuminousEmbeddedWebScript_coll__map">
</map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a6d78a3253fb12358ce13ca7650c6629b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6d78a3253fb12358ce13ca7650c6629b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a6d78a3253fb12358ce13ca7650c6629b">add_child_scanner</a> ($name, $scanner)</td></tr>
<tr class="memdesc:a6d78a3253fb12358ce13ca7650c6629b"><td class="mdescLeft">&#160;</td><td class="mdescRight">adds a child scanner Adds a child scanner and indexes it against a name, convenience function <br/></td></tr>
<tr class="memitem:a77deb48d41b8a791900a3d5c50813faf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a77deb48d41b8a791900a3d5c50813faf">dirty_exit</a> ($token_name)</td></tr>
<tr class="memdesc:a77deb48d41b8a791900a3d5c50813faf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the exit data to signify the exit is dirty and will need recovering from. <a href="#a77deb48d41b8a791900a3d5c50813faf"></a><br/></td></tr>
<tr class="memitem:aa5f8bbf0166d4d6531d33ad3319f85e5"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#aa5f8bbf0166d4d6531d33ad3319f85e5">resume</a> ()</td></tr>
<tr class="memdesc:aa5f8bbf0166d4d6531d33ad3319f85e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Attempts to recover from a dirty exit. <a href="#aa5f8bbf0166d4d6531d33ad3319f85e5"></a><br/></td></tr>
<tr class="memitem:a08ce3d66e8ff9217903f68c2a2aa6120"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a08ce3d66e8ff9217903f68c2a2aa6120">script_break</a> ($token_name, $<a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e">match</a>=null, $<a class="el" href="classScanner.html#a546cafdcfc3adeb19959ae14dff10996">pos</a>=null)</td></tr>
<tr class="memdesc:a08ce3d66e8ff9217903f68c2a2aa6120"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks for a script terminator tag inside a matched token. <a href="#a08ce3d66e8ff9217903f68c2a2aa6120"></a><br/></td></tr>
<tr class="memitem:a9725d508c1411b029b43feeab9491af4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a9725d508c1411b029b43feeab9491af4">server_break</a> ($token_name, $<a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e">match</a>=null, $<a class="el" href="classScanner.html#a546cafdcfc3adeb19959ae14dff10996">pos</a>=null)</td></tr>
<tr class="memdesc:a9725d508c1411b029b43feeab9491af4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Checks for a server-side script inside a matched token. <a href="#a9725d508c1411b029b43feeab9491af4"></a><br/></td></tr>
<tr class="memitem:a468d0f77b948817731d32f866b360586"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a468d0f77b948817731d32f866b360586">string</a> ($str=null)</td></tr>
<tr class="memdesc:a468d0f77b948817731d32f866b360586"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter and setter for the source string. <a href="#a468d0f77b948817731d32f866b360586"></a><br/></td></tr>
<tr class="inherit_header pub_methods_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classLuminousScanner')"><img src="closed.png" alt="-"/>&nbsp;Public Member Functions inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
<tr class="memitem:a493a069a6ba279b279865111b8e8ffd4 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a493a069a6ba279b279865111b8e8ffd4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a493a069a6ba279b279865111b8e8ffd4">__construct</a> ($src=null)</td></tr>
<tr class="memdesc:a493a069a6ba279b279865111b8e8ffd4 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">constructor <br/></td></tr>
<tr class="memitem:a17a50bdadaa49f0638638d5c6da7090c inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a17a50bdadaa49f0638638d5c6da7090c">add_filter</a> ($arg1, $arg2, $arg3=null)</td></tr>
<tr class="memdesc:a17a50bdadaa49f0638638d5c6da7090c inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add an individual token filter. <a href="#a17a50bdadaa49f0638638d5c6da7090c"></a><br/></td></tr>
<tr class="memitem:a047ae1afbf5563184e3dc67ecfb90a8c inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a047ae1afbf5563184e3dc67ecfb90a8c">add_identifier_mapping</a> ($name, $matches)</td></tr>
<tr class="memdesc:a047ae1afbf5563184e3dc67ecfb90a8c inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds an identifier mapping which is later analysed by map_identifier_filter. <a href="#a047ae1afbf5563184e3dc67ecfb90a8c"></a><br/></td></tr>
<tr class="memitem:a32eb459cd8ad20b8ea3403907d7f2e52 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a32eb459cd8ad20b8ea3403907d7f2e52">add_stream_filter</a> ($arg1, $arg2=null)</td></tr>
<tr class="memdesc:a32eb459cd8ad20b8ea3403907d7f2e52 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds a stream filter. <a href="#a32eb459cd8ad20b8ea3403907d7f2e52"></a><br/></td></tr>
<tr class="memitem:a0a7907663241caffb546ef22bb35d870 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a0a7907663241caffb546ef22bb35d870">highlight</a> ($src)</td></tr>
<tr class="memdesc:a0a7907663241caffb546ef22bb35d870 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Public convenience function for setting the string and highlighting it. <a href="#a0a7907663241caffb546ef22bb35d870"></a><br/></td></tr>
<tr class="memitem:af0aecba631e56a3005157cfbe84d6b67 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#af0aecba631e56a3005157cfbe84d6b67">init</a> ()</td></tr>
<tr class="memdesc:af0aecba631e56a3005157cfbe84d6b67 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up the scanner immediately prior to tokenization. <a href="#af0aecba631e56a3005157cfbe84d6b67"></a><br/></td></tr>
<tr class="memitem:a12220a789d49b7e8f42cf873966b6756 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756">main</a> ()</td></tr>
<tr class="memdesc:a12220a789d49b7e8f42cf873966b6756 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">the method responsible for tokenization <a href="#a12220a789d49b7e8f42cf873966b6756"></a><br/></td></tr>
<tr class="memitem:a6efd3dada50a424d7f30b7f9afac5fc0 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a6efd3dada50a424d7f30b7f9afac5fc0">map_identifier_filter</a> ($token)</td></tr>
<tr class="memdesc:a6efd3dada50a424d7f30b7f9afac5fc0 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identifier mapping filter. <a href="#a6efd3dada50a424d7f30b7f9afac5fc0"></a><br/></td></tr>
<tr class="memitem:ae974cbfb732f008a79482ffc4f11d398 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ae974cbfb732f008a79482ffc4f11d398">nestable_token</a> ($token_name, $open, $close)</td></tr>
<tr class="memdesc:ae974cbfb732f008a79482ffc4f11d398 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Handles tokens that may nest inside themselves. <a href="#ae974cbfb732f008a79482ffc4f11d398"></a><br/></td></tr>
<tr class="memitem:a614e490335cf64375c52d57edfb398ad inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a614e490335cf64375c52d57edfb398ad">pop</a> ()</td></tr>
<tr class="memdesc:a614e490335cf64375c52d57edfb398ad inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pops the top element of the stack, and returns it. <a href="#a614e490335cf64375c52d57edfb398ad"></a><br/></td></tr>
<tr class="memitem:add1da033592e8f944660b9e29088a2ac inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="add1da033592e8f944660b9e29088a2ac"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#add1da033592e8f944660b9e29088a2ac">push</a> ($<a class="el" href="classLuminousScanner.html#a23e2cf34969c3d39cd34a4b5ce6810ca">state</a>)</td></tr>
<tr class="memdesc:add1da033592e8f944660b9e29088a2ac inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pushes some data onto the stack. <br/></td></tr>
<tr class="memitem:aa61dbaafd8801e40094cbff52f7b22f1 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#aa61dbaafd8801e40094cbff52f7b22f1">record</a> ($<a class="el" href="classScanner.html#a577a70297f4d3da0aa2ce4decc66eeea">string</a>, $type, $pre_escaped=false)</td></tr>
<tr class="memdesc:aa61dbaafd8801e40094cbff52f7b22f1 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Records a string as a given token type. <a href="#aa61dbaafd8801e40094cbff52f7b22f1"></a><br/></td></tr>
<tr class="memitem:a48fabeb9791b36ace2b46dd8f91a4afa inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a48fabeb9791b36ace2b46dd8f91a4afa">record_range</a> ($from, $to, $type)</td></tr>
<tr class="memdesc:a48fabeb9791b36ace2b46dd8f91a4afa inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Helper function to record a range of the string. <a href="#a48fabeb9791b36ace2b46dd8f91a4afa"></a><br/></td></tr>
<tr class="memitem:a80c4b9fff3a38e90e04cda38eb075040 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80c4b9fff3a38e90e04cda38eb075040"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a80c4b9fff3a38e90e04cda38eb075040">remove_filter</a> ($name)</td></tr>
<tr class="memdesc:a80c4b9fff3a38e90e04cda38eb075040 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the individual filter(s) with the given name. <br/></td></tr>
<tr class="memitem:a25c4c1f42c64a07ce87c19f3992a0fba inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a25c4c1f42c64a07ce87c19f3992a0fba"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a25c4c1f42c64a07ce87c19f3992a0fba">remove_stream_filter</a> ($name)</td></tr>
<tr class="memdesc:a25c4c1f42c64a07ce87c19f3992a0fba inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Removes the stream filter(s) with the given name. <br/></td></tr>
<tr class="memitem:ab06dcdea11ff9a78168547b4c84c650c inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ab06dcdea11ff9a78168547b4c84c650c">skip_whitespace</a> ()</td></tr>
<tr class="memdesc:ab06dcdea11ff9a78168547b4c84c650c inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Skips whitespace, and records it as a null token. <a href="#ab06dcdea11ff9a78168547b4c84c650c"></a><br/></td></tr>
<tr class="memitem:a4156922baa33783377f7904fd2d4cee5 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4156922baa33783377f7904fd2d4cee5"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a4156922baa33783377f7904fd2d4cee5">start</a> ()</td></tr>
<tr class="memdesc:a4156922baa33783377f7904fd2d4cee5 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Flushes the token stream. <br/></td></tr>
<tr class="memitem:a23e2cf34969c3d39cd34a4b5ce6810ca inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a23e2cf34969c3d39cd34a4b5ce6810ca"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a23e2cf34969c3d39cd34a4b5ce6810ca">state</a> ()</td></tr>
<tr class="memdesc:a23e2cf34969c3d39cd34a4b5ce6810ca inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the top element on $state_ or null if it is empty. <br/></td></tr>
<tr class="memitem:a809c11561c650c7784edd3d06243b8b5 inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a809c11561c650c7784edd3d06243b8b5">tagged</a> ()</td></tr>
<tr class="memdesc:a809c11561c650c7784edd3d06243b8b5 inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the XML representation of the token stream. <a href="#a809c11561c650c7784edd3d06243b8b5"></a><br/></td></tr>
<tr class="memitem:ae381e3000c83ae4cb2259d0ae77a14ab inherit pub_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ae381e3000c83ae4cb2259d0ae77a14ab">token_array</a> ()</td></tr>
<tr class="memdesc:ae381e3000c83ae4cb2259d0ae77a14ab inherit pub_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the token array. <a href="#ae381e3000c83ae4cb2259d0ae77a14ab"></a><br/></td></tr>
<tr class="inherit_header pub_methods_classScanner"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classScanner')"><img src="closed.png" alt="-"/>&nbsp;Public Member Functions inherited from <a class="el" href="classScanner.html">Scanner</a></td></tr>
<tr class="memitem:a4cb6935d759ee0c75fa01b75e2d0ec04 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a4cb6935d759ee0c75fa01b75e2d0ec04">add_pattern</a> ($name, $pattern)</td></tr>
<tr class="memdesc:a4cb6935d759ee0c75fa01b75e2d0ec04 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the caller to add a predefined named pattern. <a href="#a4cb6935d759ee0c75fa01b75e2d0ec04"></a><br/></td></tr>
<tr class="memitem:a77abc2d2de424e73d1ee659fd9001e4a inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a77abc2d2de424e73d1ee659fd9001e4a">bol</a> ()</td></tr>
<tr class="memdesc:a77abc2d2de424e73d1ee659fd9001e4a inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Beginning of line? <a href="#a77abc2d2de424e73d1ee659fd9001e4a"></a><br/></td></tr>
<tr class="memitem:ae483fc35eae064c75f8b5ca105826757 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#ae483fc35eae064c75f8b5ca105826757">check</a> ($pattern)</td></tr>
<tr class="memdesc:ae483fc35eae064c75f8b5ca105826757 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Non-consuming lookahead. <a href="#ae483fc35eae064c75f8b5ca105826757"></a><br/></td></tr>
<tr class="memitem:a8ad6032d3a1f955608905c10a864aee6 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a8ad6032d3a1f955608905c10a864aee6">eol</a> ()</td></tr>
<tr class="memdesc:a8ad6032d3a1f955608905c10a864aee6 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">End of line? <a href="#a8ad6032d3a1f955608905c10a864aee6"></a><br/></td></tr>
<tr class="memitem:a23543739aee09e2e1961a556a9672c7d inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a23543739aee09e2e1961a556a9672c7d">eos</a> ()</td></tr>
<tr class="memdesc:a23543739aee09e2e1961a556a9672c7d inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">End of string? <a href="#a23543739aee09e2e1961a556a9672c7d"></a><br/></td></tr>
<tr class="memitem:a154d424c925ed0d58e033f1e71ceef03 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a154d424c925ed0d58e033f1e71ceef03">get</a> ($n=1)</td></tr>
<tr class="memdesc:a154d424c925ed0d58e033f1e71ceef03 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Consume a given number of bytes. <a href="#a154d424c925ed0d58e033f1e71ceef03"></a><br/></td></tr>
<tr class="memitem:ac8beec743c18d54cec51273b3bb7f3b5 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#ac8beec743c18d54cec51273b3bb7f3b5">get_next</a> ($patterns)</td></tr>
<tr class="memdesc:ac8beec743c18d54cec51273b3bb7f3b5 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look for the next occurrence of a set of patterns. <a href="#ac8beec743c18d54cec51273b3bb7f3b5"></a><br/></td></tr>
<tr class="memitem:a21f59cd38d7ed3ccd43955386b6aa14e inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a21f59cd38d7ed3ccd43955386b6aa14e">get_next_named</a> ($patterns)</td></tr>
<tr class="memdesc:a21f59cd38d7ed3ccd43955386b6aa14e inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the index of the next occurrence of a named pattern. <a href="#a21f59cd38d7ed3ccd43955386b6aa14e"></a><br/></td></tr>
<tr class="memitem:a57774c7a298bb43c1c4406a830d386a6 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a57774c7a298bb43c1c4406a830d386a6">get_next_strpos</a> ($patterns)</td></tr>
<tr class="memdesc:a57774c7a298bb43c1c4406a830d386a6 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Look for the next occurrence of a set of substrings. <a href="#a57774c7a298bb43c1c4406a830d386a6"></a><br/></td></tr>
<tr class="memitem:a90bacd70c30eb1d76659c0586f0683d2 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a90bacd70c30eb1d76659c0586f0683d2">index</a> ($pattern)</td></tr>
<tr class="memdesc:a90bacd70c30eb1d76659c0586f0683d2 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Find the index of the next occurrence of a pattern. <a href="#a90bacd70c30eb1d76659c0586f0683d2"></a><br/></td></tr>
<tr class="memitem:a17ac6e2abcb54a6dfaa9abaf95ed839e inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e">match</a> ()</td></tr>
<tr class="memdesc:a17ac6e2abcb54a6dfaa9abaf95ed839e inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the result of the most recent match operation. <a href="#a17ac6e2abcb54a6dfaa9abaf95ed839e"></a><br/></td></tr>
<tr class="memitem:aa933ee80eb310785c75ab7b03ed01885 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#aa933ee80eb310785c75ab7b03ed01885">match_group</a> ($g=0)</td></tr>
<tr class="memdesc:aa933ee80eb310785c75ab7b03ed01885 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a group from the most recent match operation. <a href="#aa933ee80eb310785c75ab7b03ed01885"></a><br/></td></tr>
<tr class="memitem:a9271f0acf8d19f83fa45ee3ee1d3eab5 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a9271f0acf8d19f83fa45ee3ee1d3eab5">match_groups</a> ()</td></tr>
<tr class="memdesc:a9271f0acf8d19f83fa45ee3ee1d3eab5 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the match groups of the most recent match operation. <a href="#a9271f0acf8d19f83fa45ee3ee1d3eab5"></a><br/></td></tr>
<tr class="memitem:aa5520e0fc7df54d7a25d75037e6cdc8a inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#aa5520e0fc7df54d7a25d75037e6cdc8a">match_pos</a> ()</td></tr>
<tr class="memdesc:aa5520e0fc7df54d7a25d75037e6cdc8a inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the position (offset) of the most recent match. <a href="#aa5520e0fc7df54d7a25d75037e6cdc8a"></a><br/></td></tr>
<tr class="memitem:a5e03667fd1cdc1d1fd40a4bc15570b12 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a5e03667fd1cdc1d1fd40a4bc15570b12">next_match</a> ($consume_and_log=true)</td></tr>
<tr class="memdesc:a5e03667fd1cdc1d1fd40a4bc15570b12 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Automation function: returns the next occurrence of any known patterns. <a href="#a5e03667fd1cdc1d1fd40a4bc15570b12"></a><br/></td></tr>
<tr class="memitem:a3028e787442cf1ed9252397ed029b223 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a3028e787442cf1ed9252397ed029b223">peek</a> ($n=1)</td></tr>
<tr class="memdesc:a3028e787442cf1ed9252397ed029b223 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Lookahead into the string a given number of bytes. <a href="#a3028e787442cf1ed9252397ed029b223"></a><br/></td></tr>
<tr class="memitem:a546cafdcfc3adeb19959ae14dff10996 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a546cafdcfc3adeb19959ae14dff10996">pos</a> ($new_pos=null)</td></tr>
<tr class="memdesc:a546cafdcfc3adeb19959ae14dff10996 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter and setter for the current position (string pointer). <a href="#a546cafdcfc3adeb19959ae14dff10996"></a><br/></td></tr>
<tr class="memitem:a947d15fe4bd13b64afd5eaba8d4d3819 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a947d15fe4bd13b64afd5eaba8d4d3819">pos_shift</a> ($offset)</td></tr>
<tr class="memdesc:a947d15fe4bd13b64afd5eaba8d4d3819 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Moves the string pointer by a given offset. <a href="#a947d15fe4bd13b64afd5eaba8d4d3819"></a><br/></td></tr>
<tr class="memitem:a79c559549e2dd73c3f1892e7609e84a6 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a79c559549e2dd73c3f1892e7609e84a6">remove_pattern</a> ($name)</td></tr>
<tr class="memdesc:a79c559549e2dd73c3f1892e7609e84a6 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allows the caller to remove a named pattern. <a href="#a79c559549e2dd73c3f1892e7609e84a6"></a><br/></td></tr>
<tr class="memitem:a89d1448f666d1be3d5037c69f24eb516 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a89d1448f666d1be3d5037c69f24eb516">reset</a> ()</td></tr>
<tr class="memdesc:a89d1448f666d1be3d5037c69f24eb516 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reset the scanner. <a href="#a89d1448f666d1be3d5037c69f24eb516"></a><br/></td></tr>
<tr class="memitem:aeae50ecaf6b98a0b76f47c3d04b8deb3 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#aeae50ecaf6b98a0b76f47c3d04b8deb3">rest</a> ()</td></tr>
<tr class="memdesc:aeae50ecaf6b98a0b76f47c3d04b8deb3 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the remaining string. <a href="#aeae50ecaf6b98a0b76f47c3d04b8deb3"></a><br/></td></tr>
<tr class="memitem:a78ddb203c30c2f9e69755ec00c341add inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a78ddb203c30c2f9e69755ec00c341add">scan</a> ($pattern)</td></tr>
<tr class="memdesc:a78ddb203c30c2f9e69755ec00c341add inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scans at the current pointer. <a href="#a78ddb203c30c2f9e69755ec00c341add"></a><br/></td></tr>
<tr class="memitem:aa0e261d4b0c2fce43ba3c264036afd72 inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#aa0e261d4b0c2fce43ba3c264036afd72">scan_until</a> ($pattern)</td></tr>
<tr class="memdesc:aa0e261d4b0c2fce43ba3c264036afd72 inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scans until the start of a pattern. <a href="#aa0e261d4b0c2fce43ba3c264036afd72"></a><br/></td></tr>
<tr class="memitem:a185d6e780752848cb282add6d9f936bb inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a185d6e780752848cb282add6d9f936bb">terminate</a> ()</td></tr>
<tr class="memdesc:a185d6e780752848cb282add6d9f936bb inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Ends scanning of a string. <a href="#a185d6e780752848cb282add6d9f936bb"></a><br/></td></tr>
<tr class="memitem:a6f6665b8df561788b1b2dea40bb394ae inherit pub_methods_classScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classScanner.html#a6f6665b8df561788b1b2dea40bb394ae">unscan</a> ()</td></tr>
<tr class="memdesc:a6f6665b8df561788b1b2dea40bb394ae inherit pub_methods_classScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Revert the most recent scanning operation. <a href="#a6f6665b8df561788b1b2dea40bb394ae"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:a278925946650e3c9e2094283512697d1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a278925946650e3c9e2094283512697d1">$clean_exit</a> = true</td></tr>
<tr class="memdesc:a278925946650e3c9e2094283512697d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clean exit or inconvenient, mid-token forced exit. <a href="#a278925946650e3c9e2094283512697d1"></a><br/></td></tr>
<tr class="memitem:a9627fb0cc01060902259ee3c9212fad2"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a9627fb0cc01060902259ee3c9212fad2">$embedded_html</a> = false</td></tr>
<tr class="memdesc:a9627fb0cc01060902259ee3c9212fad2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the source embedded in HTML? <a href="#a9627fb0cc01060902259ee3c9212fad2"></a><br/></td></tr>
<tr class="memitem:a5fdc96de06443379f9dd48de9b80040b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a5fdc96de06443379f9dd48de9b80040b">$embedded_server</a> = false</td></tr>
<tr class="memdesc:a5fdc96de06443379f9dd48de9b80040b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Is the source embedded in a server-side script (e.g. PHP)? <a href="#a5fdc96de06443379f9dd48de9b80040b"></a><br/></td></tr>
<tr class="memitem:aa33f76adc9164f8160785e8f70ff2420"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa33f76adc9164f8160785e8f70ff2420"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#aa33f76adc9164f8160785e8f70ff2420">$interrupt</a> = false</td></tr>
<tr class="memdesc:aa33f76adc9164f8160785e8f70ff2420"><td class="mdescLeft">&#160;</td><td class="mdescRight">I think this is ignored and obsolete. <br/></td></tr>
<tr class="memitem:a298f32256c797af02dbb7dbf3b2d2040"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a298f32256c797af02dbb7dbf3b2d2040"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a298f32256c797af02dbb7dbf3b2d2040">$script_tags</a></td></tr>
<tr class="memdesc:a298f32256c797af02dbb7dbf3b2d2040"><td class="mdescLeft">&#160;</td><td class="mdescRight">closing HTML tag for our code, e.g &lt;/script&gt; <br/></td></tr>
<tr class="memitem:a11065fbf564b463206673a07a0498457"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a11065fbf564b463206673a07a0498457"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a11065fbf564b463206673a07a0498457">$server_tags</a> = '/&lt;\?/'</td></tr>
<tr class="memdesc:a11065fbf564b463206673a07a0498457"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opening tag for server-side code. This is a regular expression. <br/></td></tr>
<tr class="inherit_header pub_attribs_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classLuminousScanner')"><img src="closed.png" alt="-"/>&nbsp;Public Attributes inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
<tr class="memitem:a22a1e366c9fbe4e837de693258c5c739 inherit pub_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a22a1e366c9fbe4e837de693258c5c739"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a22a1e366c9fbe4e837de693258c5c739">$version</a> = 'master'</td></tr>
<tr class="memdesc:a22a1e366c9fbe4e837de693258c5c739 inherit pub_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">scanner version. <br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:aba37db3108b9a5ec0fda7f18a66fb317"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#aba37db3108b9a5ec0fda7f18a66fb317">$child_scanners</a> = array()</td></tr>
<tr class="memdesc:aba37db3108b9a5ec0fda7f18a66fb317"><td class="mdescLeft">&#160;</td><td class="mdescRight">Child scanners. <a href="#aba37db3108b9a5ec0fda7f18a66fb317"></a><br/></td></tr>
<tr class="memitem:ace2c028e88c2c295c9f92214eff51f2b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#ace2c028e88c2c295c9f92214eff51f2b">$dirty_exit_recovery</a> = array()</td></tr>
<tr class="memdesc:ace2c028e88c2c295c9f92214eff51f2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recovery patterns for when we reach an untimely interrupt. <a href="#ace2c028e88c2c295c9f92214eff51f2b"></a><br/></td></tr>
<tr class="memitem:a463a354548b9e9bf913ca47faf03808a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousEmbeddedWebScript.html#a463a354548b9e9bf913ca47faf03808a">$exit_state</a> = null</td></tr>
<tr class="memdesc:a463a354548b9e9bf913ca47faf03808a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Name of interrupted token, in case of a dirty exit. <a href="#a463a354548b9e9bf913ca47faf03808a"></a><br/></td></tr>
<tr class="inherit_header pro_attribs_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classLuminousScanner')"><img src="closed.png" alt="-"/>&nbsp;Protected Attributes inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
<tr class="memitem:af3887911498a250b2cb1fe737dd87df1 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#af3887911498a250b2cb1fe737dd87df1">$case_sensitive</a> = true</td></tr>
<tr class="memdesc:af3887911498a250b2cb1fe737dd87df1 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether or not the language is case sensitive. <a href="#af3887911498a250b2cb1fe737dd87df1"></a><br/></td></tr>
<tr class="memitem:aca257c4da52076f42c6e53d9d0d33dd1 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#aca257c4da52076f42c6e53d9d0d33dd1">$filters</a> = array()</td></tr>
<tr class="memdesc:aca257c4da52076f42c6e53d9d0d33dd1 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Individual token filters. <a href="#aca257c4da52076f42c6e53d9d0d33dd1"></a><br/></td></tr>
<tr class="memitem:adb13455bbeb076cd0f031f050ef31a82 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#adb13455bbeb076cd0f031f050ef31a82">$ident_map</a> = array()</td></tr>
<tr class="memdesc:adb13455bbeb076cd0f031f050ef31a82 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">A map of identifiers and their corresponding token names. <a href="#adb13455bbeb076cd0f031f050ef31a82"></a><br/></td></tr>
<tr class="memitem:a30aaa5d3076a9f28d00f167a1c4eac34 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a30aaa5d3076a9f28d00f167a1c4eac34">$rule_tag_map</a> = array()</td></tr>
<tr class="memdesc:a30aaa5d3076a9f28d00f167a1c4eac34 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule remappings. <a href="#a30aaa5d3076a9f28d00f167a1c4eac34"></a><br/></td></tr>
<tr class="memitem:ab5a30262ceb4324fdfaac1a7d217ba36 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ab5a30262ceb4324fdfaac1a7d217ba36">$state_</a> = array()</td></tr>
<tr class="memdesc:ab5a30262ceb4324fdfaac1a7d217ba36 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">State stack. <a href="#ab5a30262ceb4324fdfaac1a7d217ba36"></a><br/></td></tr>
<tr class="memitem:ad3d9ad7f7f14bc9de3dd6b68225ce21c inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ad3d9ad7f7f14bc9de3dd6b68225ce21c">$stream_filters</a> = array()</td></tr>
<tr class="memdesc:ad3d9ad7f7f14bc9de3dd6b68225ce21c inherit pro_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Token stream filters. <a href="#ad3d9ad7f7f14bc9de3dd6b68225ce21c"></a><br/></td></tr>
<tr class="memitem:ab29032700812b580e5d09b6128202286 inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#ab29032700812b580e5d09b6128202286">$tokens</a> = array()</td></tr>
<tr class="memdesc:ab29032700812b580e5d09b6128202286 inherit pro_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">The token stream. <a href="#ab29032700812b580e5d09b6128202286"></a><br/></td></tr>
<tr class="memitem:a615d93f42d9290b9fad4d84cc2fd84ec inherit pro_attribs_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a615d93f42d9290b9fad4d84cc2fd84ec">$user_defs</a></td></tr>
<tr class="memdesc:a615d93f42d9290b9fad4d84cc2fd84ec inherit pro_attribs_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Identifier remappings based on definitions identified in the source code. <a href="#a615d93f42d9290b9fad4d84cc2fd84ec"></a><br/></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2><a name="inherited"></a>
Additional Inherited Members</h2></td></tr>
<tr class="inherit_header pub_static_methods_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pub_static_methods_classLuminousScanner')"><img src="closed.png" alt="-"/>&nbsp;Static Public Member Functions inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
<tr class="memitem:a094a64c9eb09e38ab43c865e1a4482c9 inherit pub_static_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">static&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a094a64c9eb09e38ab43c865e1a4482c9">guess_language</a> ($src, $info)</td></tr>
<tr class="memdesc:a094a64c9eb09e38ab43c865e1a4482c9 inherit pub_static_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Language guessing. <a href="#a094a64c9eb09e38ab43c865e1a4482c9"></a><br/></td></tr>
<tr class="inherit_header pro_methods_classLuminousScanner"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classLuminousScanner')"><img src="closed.png" alt="-"/>&nbsp;Protected Member Functions inherited from <a class="el" href="classLuminousScanner.html">LuminousScanner</a></td></tr>
<tr class="memitem:a4cc936af136b39a54db6c7212c04cee7 inherit pro_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a4cc936af136b39a54db6c7212c04cee7">rule_mapper_filter</a> ($tokens)</td></tr>
<tr class="memdesc:a4cc936af136b39a54db6c7212c04cee7 inherit pro_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Rule re-mapper filter. <a href="#a4cc936af136b39a54db6c7212c04cee7"></a><br/></td></tr>
<tr class="memitem:a463b3eb270a7afb960ee642bccc0d1b6 inherit pro_methods_classLuminousScanner"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classLuminousScanner.html#a463b3eb270a7afb960ee642bccc0d1b6">user_def_filter</a> ($token)</td></tr>
<tr class="memdesc:a463b3eb270a7afb960ee642bccc0d1b6 inherit pro_methods_classLuminousScanner"><td class="mdescLeft">&#160;</td><td class="mdescRight">Filter to highlight identifiers whose definitions are in the source. <a href="#a463b3eb270a7afb960ee642bccc0d1b6"></a><br/></td></tr>
</table>
<a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Superclass for languages which may nest, i.e. web languages. </p>
<p>Web languages get their own special class because they have to deal with server-script code embedded inside them and the potential for languages nested under them (PHP has HTML, HTML has CSS and JavaScript)</p>
<p>The relationship is strictly hierarchical, not recursive descent Meeting a '&lt;?' in CSS bubbles up to HTML and then up to PHP (or whatever). The top-level scanner is ultimately what should have sub-scanner code embedded in its own token stream.</p>
<p>The scanners should be persistent, so only one JavaScript scanner exists even if there are 20 javascript tags. This is so they can keep persistent state, which might be necessary if they are interrupted by server-side tags. For this reason, the <a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756" title="the method responsible for tokenization">main()</a> method might be called multiple times, therefore each web sub-scanner should </p>
<ul>
<li>Not rely on keeping state related data in <a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756" title="the method responsible for tokenization">main()</a>'s function scope, make it a class variable </li>
<li>flush its token stream every time <a class="el" href="classLuminousScanner.html#a12220a789d49b7e8f42cf873966b6756" title="the method responsible for tokenization">main()</a> is called</li>
</ul>
<p>The init method of the class should be used to set relevant rules based on whether or not the embedded flags are set; and therefore the embedded flags should be set before init is called. </p>
</div><h2>Member Function Documentation</h2>
<a class="anchor" id="a77deb48d41b8a791900a3d5c50813faf"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::dirty_exit </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$token_name</em></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Sets the exit data to signify the exit is dirty and will need recovering from. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">$token_name</td><td>the name of the token which is being interrupted</td></tr>
</table>
</dd>
</dl>
<dl class="exception"><dt>Exceptions</dt><dd>
<table class="exception">
<tr><td class="paramname">Exception</td><td>if no recovery data is associated with the given token. </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="aa5f8bbf0166d4d6531d33ad3319f85e5"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::resume </td>
<td>(</td>
<td class="paramname"></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Attempts to recover from a dirty exit. </p>
<p>This method should be called on <b>every</b> iteration of the main loop when <a class="el" href="classLuminousEmbeddedWebScript.html#a278925946650e3c9e2094283512697d1" title="Clean exit or inconvenient, mid-token forced exit.">LuminousEmbeddedWebScript::$clean_exit</a> is <b>FALSE</b>. It will attempt to recover from an interruption which left the scanner in the middle of a token. The remainder of the token will be in <a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e" title="Get the result of the most recent match operation.">Scanner::match()</a> as usual.</p>
<dl class="section return"><dt>Returns</dt><dd>the name of the token which was interrupted</dd></dl>
<dl class="section note"><dt>Note</dt><dd>there is no reason why a scanner should fail to recover from this, and failing is classed as an implementation error, therefore assertions will be failed and errors will be spewed forth. A failure can either be because no recovery regex is set, or that the recovery regex did not match. The former should never have been tagged as a dirty exit and the latter should be rewritten so it must definitely match, even if the match is zero-length or the remainder of the string. </dd></dl>
</div>
</div>
<a class="anchor" id="a08ce3d66e8ff9217903f68c2a2aa6120"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::script_break </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$token_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$match</em> = <code>null</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$pos</em> = <code>null</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks for a script terminator tag inside a matched token. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">$token_name</td><td>The token name of the matched text </td></tr>
<tr><td class="paramname">$match</td><td>The string from the last match. If this is left <code>NULL</code> then <a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e" title="Get the result of the most recent match operation.">Scanner::match()</a> is assumed to hold the match. </td></tr>
<tr><td class="paramname">$pos</td><td>The position of the last match. If this is left <code>NULL</code> then <a class="el" href="classScanner.html#aa5520e0fc7df54d7a25d75037e6cdc8a" title="Get the position (offset) of the most recent match.">Scanner::match_pos()</a> is assumed to hold the offset. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>TRUE</code> if the scanner should break, else <code>FALSE</code> </dd></dl>
<p>This method checks whether the string provided as match contains the string in LuminousEmbeddedWebScript::script_tags. If yes, then it records the substring as $token_name, advances the scan pointer to immediately before the script tags, and returns <code>TRUE</code>. Returning <code>TRUE</code> is a signal that the scanner should break immediately and let its parent scanner take over.</p>
<p>This condition is a 'clean_exit'. </p>
</div>
</div>
<a class="anchor" id="a9725d508c1411b029b43feeab9491af4"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::server_break </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$token_name</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$match</em> = <code>null</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$pos</em> = <code>null</code>&#160;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Checks for a server-side script inside a matched token. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">$token_name</td><td>The token name of the matched text </td></tr>
<tr><td class="paramname">$match</td><td>The string from the last match. If this is left <code>NULL</code> then <a class="el" href="classScanner.html#a17ac6e2abcb54a6dfaa9abaf95ed839e" title="Get the result of the most recent match operation.">Scanner::match()</a> is assumed to hold the match. </td></tr>
<tr><td class="paramname">$pos</td><td>The position of the last match. If this is left <code>NULL</code> then <a class="el" href="classScanner.html#aa5520e0fc7df54d7a25d75037e6cdc8a" title="Get the position (offset) of the most recent match.">Scanner::match_pos()</a> is assumed to hold the offset. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>TRUE</code> if the scanner should break, else <code>FALSE</code> </dd></dl>
<p>This method checks whether an interruption by a server-side script tag, LuminousEmbeddedWebScript::server_tags, occurs within a matched token. If it does, this method records the substring up until that point as the provided $token_name, and also sets up a 'dirty exit'. This means that some type was interrupted and we expect to have to recover from it when the server-side language's scanner has ended.</p>
<p>Returning <code>TRUE</code> is a signal that the scanner should break immediately and let its parent scanner take over. </p>
</div>
</div>
<a class="anchor" id="a468d0f77b948817731d32f866b360586"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::string </td>
<td>(</td>
<td class="paramtype">&#160;</td>
<td class="paramname"><em>$s</em> = <code>null</code></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>Getter and setter for the source string. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">$s</td><td>The new source string (leave as <code>NULL</code> to use this method as a getter) </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The current source string</dd></dl>
<dl class="section note"><dt>Note</dt><dd>This method triggers a <a class="el" href="classScanner.html#a89d1448f666d1be3d5037c69f24eb516" title="Reset the scanner.">reset()</a> </dd>
<dd>
Any strings passed into this method are converted to Unix line endings, i.e. <code>\n</code> </dd></dl>
<p>Reimplemented from <a class="el" href="classScanner.html#a577a70297f4d3da0aa2ce4decc66eeea">Scanner</a>.</p>
</div>
</div>
<h2>Member Data Documentation</h2>
<a class="anchor" id="aba37db3108b9a5ec0fda7f18a66fb317"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::$child_scanners = array()</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Child scanners. </p>
<p>Persistent storage of child scanners, name =&gt; scanner (instance) </p>
</div>
</div>
<a class="anchor" id="a278925946650e3c9e2094283512697d1"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::$clean_exit = true</td>
</tr>
</table>
</div><div class="memdoc">
<p>Clean exit or inconvenient, mid-token forced exit. </p>
<p>Signifies whether the program exited due to inconvenient interruption by a parent language (i.e. a server-side langauge), or whether it reached a legitimate break. A server-side language isn't necessarily a dirty exit, but if it comes in the middle of a token it is, because we need to resume from it later. e.g.:</p>
<p>var x = "this is \&lt;?php echo 'a' ?\&gt; string"; </p>
</div>
</div>
<a class="anchor" id="ace2c028e88c2c295c9f92214eff51f2b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::$dirty_exit_recovery = array()</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Recovery patterns for when we reach an untimely interrupt. </p>
<p>If we reach a dirty exit, when we resume we need to figure out how to continue consuming the rule that was interrupted. So essentially, this will be a regex which matches the rule without start delimiters.</p>
<p>This is a map of rule =&gt; pattern </p>
</div>
</div>
<a class="anchor" id="a9627fb0cc01060902259ee3c9212fad2"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::$embedded_html = false</td>
</tr>
</table>
</div><div class="memdoc">
<p>Is the source embedded in HTML? </p>
<p>Embedded in HTML? i.e. do we need to observe tag terminators like &lt;/script&gt; </p>
</div>
</div>
<a class="anchor" id="a5fdc96de06443379f9dd48de9b80040b"></a>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::$embedded_server = false</td>
</tr>
</table>
</div><div class="memdoc">
<p>Is the source embedded in a server-side script (e.g. PHP)? </p>
<p>Embedded in a server side language? i.e. do we need to break at (for example) &lt;? tags? </p>
</div>
</div>
<a class="anchor" id="a463a354548b9e9bf913ca47faf03808a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">LuminousEmbeddedWebScript::$exit_state = null</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Name of interrupted token, in case of a dirty exit. </p>
<p>exit state logs our exit state in the case of a dirty exit: this is the rule that was interrupted. </p>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>src/core/<a class="el" href="scanner_8class_8php.html">scanner.class.php</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Sat Jan 12 2013 16:03:50 for Luminous by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.1.2
</small></address>
</body>
</html>