<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="../JsonML.xslt" version="1.0"?>
<dl xmlns="http://www.w3.org/1999/xhtml" class="bnf">
	<!-- JsonML Grammar (Backus-Naur Form) -->
	<dt><span class="bnf-ntrm">element</span></dt>
		<dd class="bnf-expr">= <span class="bnf-term">'['</span> <span class="bnf-ntrm">tag-name</span> <span class="bnf-term">','</span> <span class="bnf-ntrm">attributes</span> <span class="bnf-term">','</span> <span class="bnf-ntrm">element-list</span> <span class="bnf-term">']'</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">'['</span> <span class="bnf-ntrm">tag-name</span> <span class="bnf-term">','</span> <span class="bnf-ntrm">attributes</span> <span class="bnf-term">']'</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">'['</span> <span class="bnf-ntrm">tag-name</span> <span class="bnf-term">','</span> <span class="bnf-ntrm">element-list</span> <span class="bnf-term">']'</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">'['</span> <span class="bnf-ntrm">tag-name</span> <span class="bnf-term">']'</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">string</span></dd>
		<dd class="bnf-end">;</dd>
	<dt><span class="bnf-ntrm">tag-name</span></dt>
		<dd class="bnf-expr">= <span class="bnf-term">string</span></dd>
		<dd class="bnf-end">;</dd>
	<dt><span class="bnf-ntrm">attributes</span></dt>
		<dd class="bnf-expr">= <span class="bnf-term">'{'</span> <span class="bnf-ntrm">attribute-list</span> <span class="bnf-term">'}'</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">'{'</span> <span class="bnf-term">'}'</span></dd>
		<dd class="bnf-end">;</dd>
	<dt><span class="bnf-ntrm">attribute-list</span></dt>
		<dd class="bnf-expr">= <span class="bnf-ntrm">attribute</span> <span class="bnf-term">','</span> <span class="bnf-ntrm">attribute-list</span></dd>
		<dd class="bnf-expr">| <span class="bnf-ntrm">attribute</span></dd>
		<dd class="bnf-end">;</dd>
	<dt><span class="bnf-ntrm">attribute</span></dt>
		<dd class="bnf-expr">= <span class="bnf-ntrm">attribute-name</span> <span class="bnf-term">':'</span> <span class="bnf-ntrm">attribute-value</span></dd>
		<dd class="bnf-end">;</dd>
	<dt><span class="bnf-ntrm">attribute-name</span></dt>
		<dd class="bnf-expr">= <span class="bnf-term">string</span></dd>
		<dd class="bnf-end">;</dd>
	<dt><span class="bnf-ntrm">attribute-value</span></dt>
		<dd class="bnf-expr">= <span class="bnf-term">string</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">number</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">'true'</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">'false'</span></dd>
		<dd class="bnf-expr">| <span class="bnf-term">'null'</span></dd>
		<dd class="bnf-end">;</dd>
	<dt><span class="bnf-ntrm">element-list</span></dt>
		<dd class="bnf-expr">= <span class="bnf-ntrm">element</span> <span class="bnf-term">','</span> <span class="bnf-ntrm">element-list</span></dd>
		<dd class="bnf-expr">| <span class="bnf-ntrm">element</span></dd>
		<dd class="bnf-end">;</dd>
</dl>
