<!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 '<...>' or '<<table>...</table>>'.<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>