<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
	<title>Index of sample files created by MarpaX::Demo::StringParser</title>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="pragma" content="no-cache">
	<link rel="stylesheet" type="text/css" href="<: $default_css :>">
	<link rel="stylesheet" type="text/css" href="<: $fancy_table_css :>">
</head>
<body>
	<h1 align="center">Index of sample files created by <a href="http://metacpan.org/release/MarpaX-Demo-StringParser">MarpaX::Demo::StringParser</a> V <: $version :>.</h1>

	<p>This demo was created as part of my article
	<a href="http://savage.net.au/Ron/html/Conditional.preservation.of.whitespace.html">Conditional preservation of whitespace when parsing with Marpa::R2</a>.</p>

	<p>More-or-less all the coding effort has gone into the problem of handling the various quoting rules (below).</p>

	<p>I'm currently (<: $date :>) using <a href="http://metacpan.org/release/Marpa-R2">Marpa::R2</a> V <: $marpa_version :>.</p>

<hr />

	<p>All input files and output files required to generate these examples are shipped in the MarpaX::Demo::StringParser distro.</p>

<hr />

	<p align = "center">Herewith a brief summary of the syntax.<br>
	This syntax is a cut-down version of Graphviz's <a href = "http://www.graphviz.org/content/dot-language">DOT language</a>.<br>
	Some sample data might not be acceptable to <a href="http://graphviz.org">Graphviz</a>.
	If it is, there will be an image on the right-hand-side.</p>

	<table align = "center" border = "1">
	<tr>
		<th align = "left">Element</th><th align = "left">Syntax</th>
	</tr>
	<tr>
		<td>Edge names</td><td>Either '->' or '--'.</td>
	</tr>
	<tr>
		<td>Node names</td><td>
1: Delimited by '[' and ']'.<br>
2: May be quoted with " or '.<br>
3: Escaped characters, using '\', are allowed.<br>
4: Internal spaces in node names are preserved even if not quoted.</td>
	</tr>
	<tr>
		<td>Both edges and nodes can have attributes.</td>
	</tr>
	<tr>
		<td>Attributes</td><td>
1: Delimited by '{' and '}'.<br>
2: Within that, any number of "key : value" pairs separated by ';'.<br>
3: Values may be quoted with " or ' or '&lt;...&gt;' or '&lt;&lt;table&gt;...&lt;/table&gt;&gt;'.<br>
4: Escaped characters, using '\', are allowed.<br>
5: Internal spaces in attribute values are preserved even if not quoted.</td>
	</tr>
	</table>

<br>

<table border = "1">
:for $data -> $row {
<tr>
  <td>Input file # <: $row.count :> - <: $row.input :>:<br /><: $row.dash :></td>
  <td><: $row.title :><br /><object data = "<: $row.image :>"></object><br />Output file # <: $row.count :> - <: $row.output :></td>
</tr>
:}
</table>

<hr />

<h3 class="global_toc_text">Links</h3>

<h2 align="center">Index page for <a href="http://savage.net.au/Graphviz.html">all graph module demos</a></h2>

<hr />

<h3 class="global_toc_text">Environment</h3>

: include "fancy.table.tx" { data => $environment };

<hr />

</body>
</html>