Skip to content

Instantly share code, notes, and snippets.

@codelahoma
Last active October 16, 2016 18:06
Show Gist options
  • Save codelahoma/837aa34f6eafc1ff8611ce5c1dee214a to your computer and use it in GitHub Desktop.
Save codelahoma/837aa34f6eafc1ff8611ce5c1dee214a to your computer and use it in GitHub Desktop.
Visual Format Language as EBNF and Railroad Diagram
<!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"><script type="text/javascript" src="chrome-extension://kajfghlhfkcocafkcjlajldicbikpgnp/catcher.js">&lt;!-- script injected by Request Maker --&gt;</script>
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="Railroad Diagram Generator 1.45.1338" /><style type="text/css">
::-moz-selection
{
color: #FFFCF0;
background: #0F0C00;
}
::selection
{
color: #FFFCF0;
background: #0F0C00;
}
.ebnf a
{
text-decoration: none;
}
.ebnf a:hover
{
color: #050400;
text-decoration: underline;
}
.signature
{
color: #806600;
font-size: 11px;
text-align: right;
}
body
{
font: normal 12px Verdana, sans-serif;
color: #0F0C00;
background: #FFFCF0;
}
a:link, a:visited
{
color: #0F0C00;
}
a:link.signature, a:visited.signature
{
color: #806600;
}
a.button, #tabs li a
{
padding: 0.25em 0.5em;
border: 1px solid #806600;
background: #F1E8C6;
color: #806600;
text-decoration: none;
font-weight: bold;
}
a.button:hover, #tabs li a:hover
{
color: #050400;
background: #FFF6D1;
border-color: #050400;
}
#tabs
{
padding: 3px 10px;
margin-left: 0;
margin-top: 58px;
border-bottom: 1px solid #0F0C00;
}
#tabs li
{
list-style: none;
margin-left: 5px;
display: inline;
}
#tabs li a
{
border-bottom: 1px solid #0F0C00;
}
#tabs li a.active
{
color: #0F0C00;
background: #FFFCF0;
border-color: #0F0C00;
border-bottom: 1px solid #FFFCF0;
outline: none;
}
#divs div
{
display: none;
overflow:auto;
}
#divs div.active
{
display: block;
}
#text
{
border-color: #806600;
background: #FFFEFA;
color: #050400;
}
.small
{
vertical-align: top;
text-align: right;
font-size: 9px;
font-weight: normal;
line-height: 120%;
}
td.small
{
padding-top: 0px;
}
.hidden
{
visibility: hidden;
}
td:hover .hidden
{
visibility: visible;
}
div.download
{
display: none;
background: #FFFCF0;
position: absolute;
right: 34px;
top: 94px;
padding: 10px;
border: 1px dotted #0F0C00;
}
#divs div.ebnf, div.ebnf
{
display: block;
padding-left: 16px;
padding-top: 2px;
padding-bottom: 2px;
background: #FFF6D1;
}
tr.option-line td:first-child
{
text-align: right
}
tr.option-text td
{
padding-bottom: 10px
}
table.palette
{
border-top: 1px solid #050400;
border-right: 1px solid #050400;
margin-bottom: 4px
}
td.palette
{
border-bottom: 1px solid #050400;
border-left: 1px solid #050400;
}
a.palette
{
padding: 2px 3px 2px 10px;
text-decoration: none;
}
.palette
{
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
-ms-user-select: none;
}
</style><svg xmlns="http://www.w3.org/2000/svg">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
</svg>
</head>
<body>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="visualFormatString">visualFormatString:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="766" height="112">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 61 1 57 1 65"/>
<polygon points="17 61 9 57 9 65"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#orientation" xlink:title="orientation">
<rect x="51" y="79" width="88" height="32"/>
<rect x="49" y="77" width="88" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="97">orientation</text>
</a>
<rect x="159" y="79" width="24" height="32" rx="10"/>
<rect x="157" y="77" width="24" height="32" class="terminal" rx="10"/>
<text class="terminal" x="167" y="97">:</text>
<rect x="243" y="79" width="26" height="32" rx="10"/>
<rect x="241" y="77" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="251" y="97">|</text>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#connection" xlink:title="connection">
<rect x="289" y="79" width="88" height="32"/>
<rect x="287" y="77" width="88" height="32" class="nonterminal"/>
<text class="nonterminal" x="297" y="97">connection</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#view" xlink:title="view">
<rect x="437" y="47" width="48" height="32"/>
<rect x="435" y="45" width="48" height="32" class="nonterminal"/>
<text class="nonterminal" x="445" y="65">view</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#connection" xlink:title="connection">
<rect x="437" y="3" width="88" height="32"/>
<rect x="435" y="1" width="88" height="32" class="nonterminal"/>
<text class="nonterminal" x="445" y="21">connection</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#connection" xlink:title="connection">
<rect x="585" y="79" width="88" height="32"/>
<rect x="583" y="77" width="88" height="32" class="nonterminal"/>
<text class="nonterminal" x="593" y="97">connection</text>
</a>
<rect x="693" y="79" width="26" height="32" rx="10"/>
<rect x="691" y="77" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="701" y="97">|</text>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 61 h2 m20 0 h10 m0 0 h142 m-172 0 h20 m152 0 h20 m-192 0 q10 0 10 10 m172 0 q0 -10 10 -10 m-182 10 v12 m172 0 v-12 m-172 12 q0 10 10 10 m152 0 q10 0 10 -10 m-162 10 h10 m88 0 h10 m0 0 h10 m24 0 h10 m40 -32 h10 m0 0 h144 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v12 m174 0 v-12 m-174 12 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h10 m26 0 h10 m0 0 h10 m88 0 h10 m40 -32 h10 m48 0 h10 m0 0 h40 m-128 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -24 q0 -10 10 -10 m108 44 l20 0 m-20 0 q10 0 10 -10 l0 -24 q0 -10 -10 -10 m-108 0 h10 m88 0 h10 m40 44 h10 m0 0 h144 m-174 0 h20 m154 0 h20 m-194 0 q10 0 10 10 m174 0 q0 -10 10 -10 m-184 10 v12 m174 0 v-12 m-174 12 q0 10 10 10 m154 0 q10 0 10 -10 m-164 10 h10 m88 0 h10 m0 0 h10 m26 0 h10 m23 -32 h-3"/>
<polygon points="757 61 765 57 765 65"/>
<polygon points="757 61 749 57 749 65"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#visualFormatString" title="visualFormatString">visualFormatString</a>
::= ( <a href="#orientation" title="orientation">orientation</a> ':' )? ( '|' <a href="#connection" title="connection">connection</a> )? <a href="#view" title="view">view</a> ( <a href="#connection" title="connection">connection</a> <a href="#view" title="view">view</a> )* ( <a href="#connection" title="connection">connection</a> '|' )?</xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">no references</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="orientation">orientation:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="128" height="80">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<rect x="51" y="3" width="30" height="32" rx="10"/>
<rect x="49" y="1" width="30" height="32" class="terminal" rx="10"/>
<text class="terminal" x="59" y="21">H</text>
<rect x="51" y="47" width="28" height="32" rx="10"/>
<rect x="49" y="45" width="28" height="32" class="terminal" rx="10"/>
<text class="terminal" x="59" y="65">V</text>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m30 0 h10 m-70 0 h20 m50 0 h20 m-90 0 q10 0 10 10 m70 0 q0 -10 10 -10 m-80 10 v24 m70 0 v-24 m-70 24 q0 10 10 10 m50 0 q10 0 10 -10 m-60 10 h10 m28 0 h10 m0 0 h2 m23 -44 h-3"/>
<polygon points="119 17 127 13 127 21"/>
<polygon points="119 17 111 13 111 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#orientation" title="orientation">orientation</a>
::= 'H'
| 'V'</xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#visualFormatString" title="visualFormatString">visualFormatString</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="view">view:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="468" height="68">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<rect x="31" y="3" width="26" height="32" rx="10"/>
<rect x="29" y="1" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="39" y="21">[</text>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#viewName" xlink:title="viewName">
<rect x="77" y="3" width="84" height="32"/>
<rect x="75" y="1" width="84" height="32" class="nonterminal"/>
<text class="nonterminal" x="85" y="21">viewName</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predicateListWithParens" xlink:title="predicateListWithParens">
<rect x="201" y="35" width="174" height="32"/>
<rect x="199" y="33" width="174" height="32" class="nonterminal"/>
<text class="nonterminal" x="209" y="53">predicateListWithParens</text>
</a>
<rect x="415" y="3" width="26" height="32" rx="10"/>
<rect x="413" y="1" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="423" y="21">]</text>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m26 0 h10 m0 0 h10 m84 0 h10 m20 0 h10 m0 0 h184 m-214 0 h20 m194 0 h20 m-234 0 q10 0 10 10 m214 0 q0 -10 10 -10 m-224 10 v12 m214 0 v-12 m-214 12 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h10 m174 0 h10 m20 -32 h10 m26 0 h10 m3 0 h-3"/>
<polygon points="459 17 467 13 467 21"/>
<polygon points="459 17 451 13 451 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#view" title="view">view</a> ::= '[' <a href="#viewName" title="viewName">viewName</a> <a href="#predicateListWithParens" title="predicateListWithParens">predicateListWithParens</a>? ']'</xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#visualFormatString" title="visualFormatString">visualFormatString</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="connection">connection:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="330" height="88">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 5 1 1 1 9"/>
<polygon points="17 5 9 1 9 9"/>
<rect x="51" y="23" width="26" height="32" rx="10"/>
<rect x="49" y="21" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="59" y="41">-</text>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predicateList" xlink:title="predicateList">
<rect x="117" y="55" width="100" height="32"/>
<rect x="115" y="53" width="100" height="32" class="nonterminal"/>
<text class="nonterminal" x="125" y="73">predicateList</text>
</a>
<rect x="237" y="55" width="26" height="32" rx="10"/>
<rect x="235" y="53" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="245" y="73">-</text>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 5 h2 m20 0 h10 m0 0 h242 m-272 0 h20 m252 0 h20 m-292 0 q10 0 10 10 m272 0 q0 -10 10 -10 m-282 10 v12 m272 0 v-12 m-272 12 q0 10 10 10 m252 0 q10 0 10 -10 m-262 10 h10 m26 0 h10 m20 0 h10 m0 0 h156 m-186 0 h20 m166 0 h20 m-206 0 q10 0 10 10 m186 0 q0 -10 10 -10 m-196 10 v12 m186 0 v-12 m-186 12 q0 10 10 10 m166 0 q10 0 10 -10 m-176 10 h10 m100 0 h10 m0 0 h10 m26 0 h10 m43 -64 h-3"/>
<polygon points="321 5 329 1 329 9"/>
<polygon points="321 5 313 1 313 9"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#connection" title="connection">connection</a>
::= ( '-' ( <a href="#predicateList" title="predicateList">predicateList</a> '-' )? )?</xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#visualFormatString" title="visualFormatString">visualFormatString</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="predicateList">predicateList:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="272" height="80">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#simplePredicate" xlink:title="simplePredicate">
<rect x="51" y="3" width="118" height="32"/>
<rect x="49" y="1" width="118" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="21">simplePredicate</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predicateListWithParens" xlink:title="predicateListWithParens">
<rect x="51" y="47" width="174" height="32"/>
<rect x="49" y="45" width="174" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="65">predicateListWithParens</text>
</a>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m118 0 h10 m0 0 h56 m-214 0 h20 m194 0 h20 m-234 0 q10 0 10 10 m214 0 q0 -10 10 -10 m-224 10 v24 m214 0 v-24 m-214 24 q0 10 10 10 m194 0 q10 0 10 -10 m-204 10 h10 m174 0 h10 m23 -44 h-3"/>
<polygon points="263 17 271 13 271 21"/>
<polygon points="263 17 255 13 255 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#predicateList" title="predicateList">predicateList</a>
::= <a href="#simplePredicate" title="simplePredicate">simplePredicate</a>
| <a href="#predicateListWithParens" title="predicateListWithParens">predicateListWithParens</a></xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#connection" title="connection">connection</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="simplePredicate">simplePredicate:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="216" height="80">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#metricName" xlink:title="metricName">
<rect x="51" y="3" width="94" height="32"/>
<rect x="49" y="1" width="94" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="21">metricName</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#positiveNumber" xlink:title="positiveNumber">
<rect x="51" y="47" width="118" height="32"/>
<rect x="49" y="45" width="118" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="65">positiveNumber</text>
</a>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m94 0 h10 m0 0 h24 m-158 0 h20 m138 0 h20 m-178 0 q10 0 10 10 m158 0 q0 -10 10 -10 m-168 10 v24 m158 0 v-24 m-158 24 q0 10 10 10 m138 0 q10 0 10 -10 m-148 10 h10 m118 0 h10 m23 -44 h-3"/>
<polygon points="207 17 215 13 215 21"/>
<polygon points="207 17 199 13 199 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#simplePredicate" title="simplePredicate">simplePredicate</a>
::= <a href="#metricName" title="metricName">metricName</a>
| <a href="#positiveNumber" title="positiveNumber">positiveNumber</a></xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#predicateList" title="predicateList">predicateList</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="predicateListWithParens">predicateListWithParens:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="268" height="80">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 61 1 57 1 65"/>
<polygon points="17 61 9 57 9 65"/>
<rect x="31" y="47" width="26" height="32" rx="10"/>
<rect x="29" y="45" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="39" y="65">(</text>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#predicate" xlink:title="predicate">
<rect x="97" y="47" width="78" height="32"/>
<rect x="95" y="45" width="78" height="32" class="nonterminal"/>
<text class="nonterminal" x="105" y="65">predicate</text>
</a>
<rect x="97" y="3" width="24" height="32" rx="10"/>
<rect x="95" y="1" width="24" height="32" class="terminal" rx="10"/>
<text class="terminal" x="105" y="21">,</text>
<rect x="215" y="47" width="26" height="32" rx="10"/>
<rect x="213" y="45" width="26" height="32" class="terminal" rx="10"/>
<text class="terminal" x="223" y="65">)</text>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 61 h2 m0 0 h10 m26 0 h10 m20 0 h10 m78 0 h10 m-118 0 l20 0 m-1 0 q-9 0 -9 -10 l0 -24 q0 -10 10 -10 m98 44 l20 0 m-20 0 q10 0 10 -10 l0 -24 q0 -10 -10 -10 m-98 0 h10 m24 0 h10 m0 0 h54 m20 44 h10 m26 0 h10 m3 0 h-3"/>
<polygon points="259 61 267 57 267 65"/>
<polygon points="259 61 251 57 251 65"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#predicateListWithParens" title="predicateListWithParens">predicateListWithParens</a>
::= '(' <a href="#predicate" title="predicate">predicate</a> ( ',' <a href="#predicate" title="predicate">predicate</a> )* ')'</xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#predicateList" title="predicateList">predicateList</xhtml:a></xhtml:li>
<xhtml:li><xhtml:a href="#view" title="view">view</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="predicate">predicate:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="494" height="68">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#relation" xlink:title="relation">
<rect x="51" y="35" width="68" height="32"/>
<rect x="49" y="33" width="68" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="53">relation</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#objectOfPredicate" xlink:title="objectOfPredicate">
<rect x="159" y="3" width="132" height="32"/>
<rect x="157" y="1" width="132" height="32" class="nonterminal"/>
<text class="nonterminal" x="167" y="21">objectOfPredicate</text>
</a>
<rect x="331" y="35" width="32" height="32" rx="10"/>
<rect x="329" y="33" width="32" height="32" class="terminal" rx="10"/>
<text class="terminal" x="339" y="53">@</text>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#priority" xlink:title="priority">
<rect x="383" y="35" width="64" height="32"/>
<rect x="381" y="33" width="64" height="32" class="nonterminal"/>
<text class="nonterminal" x="391" y="53">priority</text>
</a>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m0 0 h78 m-108 0 h20 m88 0 h20 m-128 0 q10 0 10 10 m108 0 q0 -10 10 -10 m-118 10 v12 m108 0 v-12 m-108 12 q0 10 10 10 m88 0 q10 0 10 -10 m-98 10 h10 m68 0 h10 m20 -32 h10 m132 0 h10 m20 0 h10 m0 0 h126 m-156 0 h20 m136 0 h20 m-176 0 q10 0 10 10 m156 0 q0 -10 10 -10 m-166 10 v12 m156 0 v-12 m-156 12 q0 10 10 10 m136 0 q10 0 10 -10 m-146 10 h10 m32 0 h10 m0 0 h10 m64 0 h10 m23 -32 h-3"/>
<polygon points="485 17 493 13 493 21"/>
<polygon points="485 17 477 13 477 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#predicate" title="predicate">predicate</a>
::= <a href="#relation" title="relation">relation</a>? <a href="#objectOfPredicate" title="objectOfPredicate">objectOfPredicate</a> ( '@' <a href="#priority" title="priority">priority</a> )?</xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#predicateListWithParens" title="predicateListWithParens">predicateListWithParens</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="relation">relation:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="138" height="124">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<rect x="51" y="3" width="40" height="32" rx="10"/>
<rect x="49" y="1" width="40" height="32" class="terminal" rx="10"/>
<text class="terminal" x="59" y="21">==</text>
<rect x="51" y="47" width="40" height="32" rx="10"/>
<rect x="49" y="45" width="40" height="32" class="terminal" rx="10"/>
<text class="terminal" x="59" y="65">&lt;=</text>
<rect x="51" y="91" width="40" height="32" rx="10"/>
<rect x="49" y="89" width="40" height="32" class="terminal" rx="10"/>
<text class="terminal" x="59" y="109">&gt;=</text>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m40 0 h10 m-80 0 h20 m60 0 h20 m-100 0 q10 0 10 10 m80 0 q0 -10 10 -10 m-90 10 v24 m80 0 v-24 m-80 24 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h10 m40 0 h10 m-70 -10 v20 m80 0 v-20 m-80 20 v24 m80 0 v-24 m-80 24 q0 10 10 10 m60 0 q10 0 10 -10 m-70 10 h10 m40 0 h10 m23 -88 h-3"/>
<polygon points="129 17 137 13 137 21"/>
<polygon points="129 17 121 13 121 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#relation" title="relation">relation</a> ::= '=='
| '&lt;='
| '&gt;='</xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#predicate" title="predicate">predicate</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="objectOfPredicate">objectOfPredicate:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="182" height="80">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#constant" xlink:title="constant">
<rect x="51" y="3" width="74" height="32"/>
<rect x="49" y="1" width="74" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="21">constant</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#viewName" xlink:title="viewName">
<rect x="51" y="47" width="84" height="32"/>
<rect x="49" y="45" width="84" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="65">viewName</text>
</a>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m74 0 h10 m0 0 h10 m-124 0 h20 m104 0 h20 m-144 0 q10 0 10 10 m124 0 q0 -10 10 -10 m-134 10 v24 m124 0 v-24 m-124 24 q0 10 10 10 m104 0 q10 0 10 -10 m-114 10 h10 m84 0 h10 m23 -44 h-3"/>
<polygon points="173 17 181 13 181 21"/>
<polygon points="173 17 165 13 165 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#objectOfPredicate" title="objectOfPredicate">objectOfPredicate</a>
::= <a href="#constant" title="constant">constant</a>
| <a href="#viewName" title="viewName">viewName</a></xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#predicate" title="predicate">predicate</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="priority">priority:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="192" height="80">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#metricName" xlink:title="metricName">
<rect x="51" y="3" width="94" height="32"/>
<rect x="49" y="1" width="94" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="21">metricName</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#number" xlink:title="number">
<rect x="51" y="47" width="68" height="32"/>
<rect x="49" y="45" width="68" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="65">number</text>
</a>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m94 0 h10 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v24 m134 0 v-24 m-134 24 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h10 m68 0 h10 m0 0 h26 m23 -44 h-3"/>
<polygon points="183 17 191 13 191 21"/>
<polygon points="183 17 175 13 175 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#priority" title="priority">priority</a> ::= <a href="#metricName" title="metricName">metricName</a>
| <a href="#number" title="number">number</a></xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#predicate" title="predicate">predicate</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="constant">constant:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="192" height="80">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#metricName" xlink:title="metricName">
<rect x="51" y="3" width="94" height="32"/>
<rect x="49" y="1" width="94" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="21">metricName</text>
</a>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#number" xlink:title="number">
<rect x="51" y="47" width="68" height="32"/>
<rect x="49" y="45" width="68" height="32" class="nonterminal"/>
<text class="nonterminal" x="59" y="65">number</text>
</a>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m20 0 h10 m94 0 h10 m-134 0 h20 m114 0 h20 m-154 0 q10 0 10 10 m134 0 q0 -10 10 -10 m-144 10 v24 m134 0 v-24 m-134 24 q0 10 10 10 m114 0 q10 0 10 -10 m-124 10 h10 m68 0 h10 m0 0 h26 m23 -44 h-3"/>
<polygon points="183 17 191 13 191 21"/>
<polygon points="183 17 175 13 175 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#constant" title="constant">constant</a> ::= <a href="#metricName" title="metricName">metricName</a>
| <a href="#number" title="number">number</a></xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#objectOfPredicate" title="objectOfPredicate">objectOfPredicate</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="viewName">viewName:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="132" height="36">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier">
<rect x="31" y="3" width="74" height="32"/>
<rect x="29" y="1" width="74" height="32" class="nonterminal"/>
<text class="nonterminal" x="39" y="21">identifier</text>
</a>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m74 0 h10 m3 0 h-3"/>
<polygon points="123 17 131 13 131 21"/>
<polygon points="123 17 115 13 115 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#viewName" title="viewName">viewName</a> ::= <a href="#identifier" title="identifier">identifier</a></xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#objectOfPredicate" title="objectOfPredicate">objectOfPredicate</xhtml:a></xhtml:li>
<xhtml:li><xhtml:a href="#view" title="view">view</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml" style="font-size: 14px; font-weight:bold"><xhtml:a name="metricName">metricName:</xhtml:a></xhtml:p>
<svg xmlns="http://www.w3.org/2000/svg" width="132" height="36">
<defs>
<style type="text/css">
@namespace "http://www.w3.org/2000/svg";
.line {fill: none; stroke: #332900;}
.bold-line {stroke: #141000; shape-rendering: crispEdges; stroke-width:
2; }
.thin-line {stroke: #1F1800; shape-rendering: crispEdges}
.filled {fill: #332900; stroke: none;}
text.terminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #141000;
font-weight: bold;
}
text.nonterminal {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1A1400;
}
text.regexp {font-family: Verdana, Sans-serif;
font-size: 12px;
fill: #1F1800;
}
rect, circle, polygon {fill: #332900; stroke: #332900;}
rect.terminal {fill: #FFDB4D; stroke: #332900;}
rect.nonterminal {fill: #FFEC9E; stroke: #332900;}
rect.text {fill: none; stroke: none;}
polygon.regexp {fill: #FFF4C7; stroke: #332900;}
</style>
</defs>
<polygon points="9 17 1 13 1 21"/>
<polygon points="17 17 9 13 9 21"/>
<a xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#identifier" xlink:title="identifier">
<rect x="31" y="3" width="74" height="32"/>
<rect x="29" y="1" width="74" height="32" class="nonterminal"/>
<text class="nonterminal" x="39" y="21">identifier</text>
</a>
<svg:path xmlns:svg="http://www.w3.org/2000/svg" class="line" d="m17 17 h2 m0 0 h10 m74 0 h10 m3 0 h-3"/>
<polygon points="123 17 131 13 131 21"/>
<polygon points="123 17 115 13 115 21"/>
</svg>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:div class="ebnf"><xhtml:pre><a href="#metricName" title="metricName">metricName</a>
::= <a href="#identifier" title="identifier">identifier</a></xhtml:pre></xhtml:div>
</xhtml:p>
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">referenced by:
<xhtml:ul>
<xhtml:li><xhtml:a href="#constant" title="constant">constant</xhtml:a></xhtml:li>
<xhtml:li><xhtml:a href="#priority" title="priority">priority</xhtml:a></xhtml:li>
<xhtml:li><xhtml:a href="#simplePredicate" title="simplePredicate">simplePredicate</xhtml:a></xhtml:li>
</xhtml:ul>
</xhtml:p><xhtml:br xmlns:xhtml="http://www.w3.org/1999/xhtml" /><xhtml:hr xmlns:xhtml="http://www.w3.org/1999/xhtml" />
<xhtml:p xmlns:xhtml="http://www.w3.org/1999/xhtml">
<xhtml:table border="0" class="signature">
<xhtml:tr>
<xhtml:td style="width: 100%"> </xhtml:td>
<xhtml:td valign="top">
<xhtml:nobr class="signature">... generated by <xhtml:a name="Railroad-Diagram-Generator" class="signature" title="http://www.bottlecaps.de/rr/ui" href="http://www.bottlecaps.de/rr/ui" target="_blank">Railroad Diagram Generator</xhtml:a></xhtml:nobr>
</xhtml:td>
<xhtml:td><xhtml:a name="Railroad-Diagram-Generator" title="http://www.bottlecaps.de/rr/ui" href="http://www.bottlecaps.de/rr/ui" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16">
<g transform="scale(0.178)">
<circle cx="45" cy="45" r="45" style="stroke:none; fill:#FFCC00"/>
<circle cx="45" cy="45" r="42" style="stroke:#332900; stroke-width:2px; fill:#FFCC00"/>
<line x1="15" y1="15" x2="75" y2="75" stroke="#332900" style="stroke-width:9px;"/>
<line x1="15" y1="75" x2="75" y2="15" stroke="#332900" style="stroke-width:9px;"/>
<text x="7" y="54" style="font-size:26px; font-family:Arial, Sans-serif; font-weight:bold; fill: #332900">R</text>
<text x="64" y="54" style="font-size:26px; font-family:Arial, Sans-serif; font-weight:bold; fill: #332900">R</text>
</g>
</svg></xhtml:a></xhtml:td>
</xhtml:tr>
</xhtml:table>
</xhtml:p>
</body>
</html>
visualFormatString
::= (orientation ':')? (superview connection)? view(connection view)* (connection superview)?
orientation ::= 'H' | 'V'
superview ::= '|'
view ::= '[' viewName (predicateListWithParens)? ']'
connection ::= ( '-' | '-' predicateList '-' )?
predicateList ::= simplePredicate | predicateListWithParens
simplePredicate ::= metricName | positiveNumber
predicateListWithParens ::= '(' predicate (',' predicate)* ')'
predicate ::= (relation)? objectOfPredicate ('@' priority)?
relation ::= '==' | '<=' | '>='
objectOfPredicate ::= constant | viewName
/* viewName is only acceptable if the subject is the width or height */
priority ::= metricName | number
constant ::= metricName | number
viewName ::= identifier
metricName ::= identifier
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment