{
	"0: data": {
		"srcIndexStart": "0", 
		"file": "docssrc/docs.Start.Grammar.tmpl", 
		"parseTreeMode": "true", 
		"srcLength": "2906", 
		"source": "[$name|Grammar$]
[$title|Grammar Definition Language$]
[$frame|HTMLPage.tmpl$]
<p>
Goldie uses the same
[$link| http://goldparser.org/doc/grammars/index.htm | GOLD Meta-Language $]
grammar definition language as
[$pageLink| OtherTools#GOLD | GOLD Parser Builder $].
</p>

<p>
GOLD Parser Builder includes
a grammar editor that features syntax highlighting, a grammar-generating wizard,
and importing/exporting with YACC/Bison format.
Goldie's
[$link| https://bitbucket.org/Abscissa/goldie/src/v0.8/lang/calc.grm | calc.grm $]
grammar below was created by using GOLD's grammar wizard (and slightly modifying the result).
</p>

<p>
Other
[$link|http://goldparser.org/grammars/index.htm| premade grammars $]
can be found in
[$link|http://goldparser.org/download.htm| GOLD's downloads section $].
</p>

<h2>Sample</h2>
<p>
As a simple example of what a grammar looks like, this is the
[$link| https://bitbucket.org/Abscissa/goldie/src/v0.8/lang/calc.grm | calc.grm $]
grammar included with Goldie and used by the [$pageLink|SampleApps| Sample Apps $]:
</p>
[$code|plain|
[:! -- Parameters ----------------------------------------
! Basic Calculator Grammar
! Supports integer literals, + - * / () and whitespace

\"Name\"     = 'Calc'
\"Author\"   = 'GOLD Parser Builder and Nick Sabalausky'
\"Version\"  = '0.01'
\"About\"    = 'Basic Calculator Grammar'
\"Case Sensitive\" = false

\"Start Symbol\" = <Add Exp>

! -- Terminals -----------------------------------------

Number = {Digit}+
Whitespace = {Whitespace}+

! -- Rules ---------------------------------------------

<Add Exp>     ::= <Add Exp> '+' <Mult Exp>
               |  <Add Exp> '-' <Mult Exp>
               |  <Mult Exp>

<Mult Exp>    ::= <Mult Exp> '*' <Negate Exp>
               |  <Mult Exp> '/' <Negate Exp>
               |  <Negate Exp>

<Negate Exp>  ::= '-' <Value>
               |  <Value> 

<Value>       ::= 'Number'
               |  '(' <Add Exp> ')':]
$]

<h2>Current Limitations</h2>
<p>
There are a few GOLD features that Goldie doesn't yet support:
</p>

<ul>
<li>All of Goldie: The [$link| http://goldparser.org/5.0/index.htm | new GOLD v5.0 features $]</li>
<li>All of Goldie: [$link| http://goldparser.org/doc/grammars/virtual-terminals.htm | Virtual terminals $]</li>
<li>Goldie's [$pageLink|GRMC|grmc$]: User-defined terminals named [$ident|EOF$] or [$ident|Error$]</li>
</ul>

<h3 class=\"list-heading\">See Also:</h3>
<ul>
<li>[$link| http://goldparser.org/doc/grammars/index.htm | Official GOLD Meta-Language documentation $]</li>
<li>[$pageLink| APIOver#TokenSymbol | Tokens, Symbols, and Symbol Types: The Front-End's Building Blocks $]</li>
<li>[$link| https://bitbucket.org/Abscissa/goldie/src/v0.8/lang/calc.grm | Sample calculator grammar $]</li>
<li>[$link| http://goldparser.org/grammars/index.htm | Premade Grammars $]</li>
</ul>

", 
		"0: name": {
			"srcIndexStart": "0", 
			"data": "Grammar", 
			"srcLength": "16", 
			"0: data": {
				"srcIndexStart": "7", 
				"data": "Grammar", 
				"srcLength": "7"
			}
		}, 
		"1: data": {
			"srcIndexStart": "16", 
			"data": "
", 
			"srcLength": "2"
		}, 
		"2: title": {
			"srcIndexStart": "18", 
			"data": "Grammar Definition Language", 
			"srcLength": "37", 
			"0: data": {
				"srcIndexStart": "26", 
				"data": "Grammar Definition Language", 
				"srcLength": "27"
			}
		}, 
		"3: data": {
			"srcIndexStart": "55", 
			"data": "
", 
			"srcLength": "2"
		}, 
		"4: frame": {
			"srcIndexStart": "57", 
			"data": "HTMLPage.tmpl", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "65", 
				"data": "HTMLPage.tmpl", 
				"srcLength": "13"
			}
		}, 
		"5: data": {
			"srcIndexStart": "80", 
			"data": "
<p>
Goldie uses the same
", 
			"srcLength": "29"
		}, 
		"6: link": {
			"srcIndexStart": "109", 
			"param 0": "http://goldparser.org/doc/grammars/index.htm", 
			"data": "GOLD Meta-Language", 
			"srcLength": "76", 
			"0: data": {
				"srcIndexStart": "163", 
				"data": "GOLD Meta-Language", 
				"srcLength": "20"
			}
		}, 
		"7: data": {
			"srcIndexStart": "185", 
			"data": "
grammar definition language as
", 
			"srcLength": "34"
		}, 
		"8: pageLink": {
			"srcIndexStart": "219", 
			"param 0": "OtherTools#GOLD", 
			"data": "GOLD Parser Builder", 
			"srcLength": "52", 
			"0: data": {
				"srcIndexStart": "248", 
				"data": "GOLD Parser Builder", 
				"srcLength": "21"
			}
		}, 
		"9: data": {
			"srcIndexStart": "271", 
			"data": ".
</p>

<p>
GOLD Parser Builder includes
a grammar editor that features syntax highlighting, a grammar-generating wizard,
and importing/exporting with YACC/Bison format.
Goldie's
", 
			"srcLength": "187"
		}, 
		"10: link": {
			"srcIndexStart": "458", 
			"param 0": "https://bitbucket.org/Abscissa/goldie/src/v0.8/lang/calc.grm", 
			"data": "calc.grm", 
			"srcLength": "82", 
			"0: data": {
				"srcIndexStart": "528", 
				"data": "calc.grm", 
				"srcLength": "10"
			}
		}, 
		"11: data": {
			"srcIndexStart": "540", 
			"data": "
grammar below was created by using GOLD's grammar wizard (and slightly modifying the result).
</p>

<p>
Other
", 
			"srcLength": "117"
		}, 
		"12: link": {
			"srcIndexStart": "657", 
			"param 0": "http://goldparser.org/grammars/index.htm", 
			"data": "premade grammars", 
			"srcLength": "68", 
			"0: data": {
				"srcIndexStart": "705", 
				"data": "premade grammars", 
				"srcLength": "18"
			}
		}, 
		"13: data": {
			"srcIndexStart": "725", 
			"data": "
can be found in
", 
			"srcLength": "19"
		}, 
		"14: link": {
			"srcIndexStart": "744", 
			"param 0": "http://goldparser.org/download.htm", 
			"data": "GOLD's downloads section", 
			"srcLength": "70", 
			"0: data": {
				"srcIndexStart": "786", 
				"data": "GOLD's downloads section", 
				"srcLength": "26"
			}
		}, 
		"15: data": {
			"srcIndexStart": "814", 
			"data": ".
</p>

<h2>Sample</h2>
<p>
As a simple example of what a grammar looks like, this is the
", 
			"srcLength": "96"
		}, 
		"16: link": {
			"srcIndexStart": "910", 
			"param 0": "https://bitbucket.org/Abscissa/goldie/src/v0.8/lang/calc.grm", 
			"data": "calc.grm", 
			"srcLength": "82", 
			"0: data": {
				"srcIndexStart": "980", 
				"data": "calc.grm", 
				"srcLength": "10"
			}
		}, 
		"17: data": {
			"srcIndexStart": "992", 
			"data": "
grammar included with Goldie and used by the ", 
			"srcLength": "47"
		}, 
		"18: pageLink": {
			"srcIndexStart": "1039", 
			"param 0": "SampleApps", 
			"data": "Sample Apps", 
			"srcLength": "37", 
			"0: data": {
				"srcIndexStart": "1061", 
				"data": "Sample Apps", 
				"srcLength": "13"
			}
		}, 
		"19: data": {
			"srcIndexStart": "1076", 
			"data": ":
</p>
", 
			"srcLength": "9"
		}, 
		"20: code": {
			"srcIndexStart": "1085", 
			"param 0": "plain", 
			"data": "! -- Parameters ----------------------------------------
! Basic Calculator Grammar
! Supports integer literals, + - * / () and whitespace

\"Name\"     = 'Calc'
\"Author\"   = 'GOLD Parser Builder and Nick Sabalausky'
\"Version\"  = '0.01'
\"About\"    = 'Basic Calculator Grammar'
\"Case Sensitive\" = false

\"Start Symbol\" = &lt;Add Exp&gt;

! -- Terminals -----------------------------------------

Number = {Digit}+
Whitespace = {Whitespace}+

! -- Rules ---------------------------------------------

&lt;Add Exp&gt;     ::= &lt;Add Exp&gt; '+' &lt;Mult Exp&gt;
               |  &lt;Add Exp&gt; '-' &lt;Mult Exp&gt;
               |  &lt;Mult Exp&gt;

&lt;Mult Exp&gt;    ::= &lt;Mult Exp&gt; '*' &lt;Negate Exp&gt;
               |  &lt;Mult Exp&gt; '/' &lt;Negate Exp&gt;
               |  &lt;Negate Exp&gt;

&lt;Negate Exp&gt;  ::= '-' &lt;Value&gt;
               |  &lt;Value&gt; 

&lt;Value&gt;       ::= 'Number'
               |  '(' &lt;Add Exp&gt; ')'", 
			"srcLength": "905", 
			"0: data": {
				"srcIndexStart": "1098", 
				"data": "", 
				"srcLength": "2"
			}, 
			"1: data": {
				"srcIndexStart": "1100", 
				"data": "! -- Parameters ----------------------------------------
! Basic Calculator Grammar
! Supports integer literals, + - * / () and whitespace

\"Name\"     = 'Calc'
\"Author\"   = 'GOLD Parser Builder and Nick Sabalausky'
\"Version\"  = '0.01'
\"About\"    = 'Basic Calculator Grammar'
\"Case Sensitive\" = false

\"Start Symbol\" = <Add Exp>

! -- Terminals -----------------------------------------

Number = {Digit}+
Whitespace = {Whitespace}+

! -- Rules ---------------------------------------------

<Add Exp>     ::= <Add Exp> '+' <Mult Exp>
               |  <Add Exp> '-' <Mult Exp>
               |  <Mult Exp>

<Mult Exp>    ::= <Mult Exp> '*' <Negate Exp>
               |  <Mult Exp> '/' <Negate Exp>
               |  <Negate Exp>

<Negate Exp>  ::= '-' <Value>
               |  <Value> 

<Value>       ::= 'Number'
               |  '(' <Add Exp> ')'", 
				"srcLength": "886"
			}, 
			"2: data": {
				"srcIndexStart": "1986", 
				"data": "", 
				"srcLength": "2"
			}
		}, 
		"21: data": {
			"srcIndexStart": "1990", 
			"data": "

<h2>Current Limitations</h2>
<p>
There are a few GOLD features that Goldie doesn't yet support:
</p>

<ul>
<li>All of Goldie: The ", 
			"srcLength": "140"
		}, 
		"22: link": {
			"srcIndexStart": "2130", 
			"param 0": "http://goldparser.org/5.0/index.htm", 
			"data": "new GOLD v5.0 features", 
			"srcLength": "71", 
			"0: data": {
				"srcIndexStart": "2175", 
				"data": "new GOLD v5.0 features", 
				"srcLength": "24"
			}
		}, 
		"23: data": {
			"srcIndexStart": "2201", 
			"data": "</li>
<li>All of Goldie: ", 
			"srcLength": "26"
		}, 
		"24: link": {
			"srcIndexStart": "2227", 
			"param 0": "http://goldparser.org/doc/grammars/virtual-terminals.htm", 
			"data": "Virtual terminals", 
			"srcLength": "87", 
			"0: data": {
				"srcIndexStart": "2293", 
				"data": "Virtual terminals", 
				"srcLength": "19"
			}
		}, 
		"25: data": {
			"srcIndexStart": "2314", 
			"data": "</li>
<li>Goldie's ", 
			"srcLength": "20"
		}, 
		"26: pageLink": {
			"srcIndexStart": "2334", 
			"param 0": "GRMC", 
			"data": "grmc", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "2350", 
				"data": "grmc", 
				"srcLength": "4"
			}
		}, 
		"27: data": {
			"srcIndexStart": "2356", 
			"data": ": User-defined terminals named ", 
			"srcLength": "31"
		}, 
		"28: ident": {
			"srcIndexStart": "2387", 
			"data": "EOF", 
			"srcLength": "13", 
			"0: data": {
				"srcIndexStart": "2395", 
				"data": "EOF", 
				"srcLength": "3"
			}
		}, 
		"29: data": {
			"srcIndexStart": "2400", 
			"data": " or ", 
			"srcLength": "4"
		}, 
		"30: ident": {
			"srcIndexStart": "2404", 
			"data": "Error", 
			"srcLength": "15", 
			"0: data": {
				"srcIndexStart": "2412", 
				"data": "Error", 
				"srcLength": "5"
			}
		}, 
		"31: data": {
			"srcIndexStart": "2419", 
			"data": "</li>
</ul>

<h3 class=\"list-heading\">See Also:</h3>
<ul>
<li>", 
			"srcLength": "67"
		}, 
		"32: link": {
			"srcIndexStart": "2486", 
			"param 0": "http://goldparser.org/doc/grammars/index.htm", 
			"data": "Official GOLD Meta-Language documentation", 
			"srcLength": "99", 
			"0: data": {
				"srcIndexStart": "2540", 
				"data": "Official GOLD Meta-Language documentation", 
				"srcLength": "43"
			}
		}, 
		"33: data": {
			"srcIndexStart": "2585", 
			"data": "</li>
<li>", 
			"srcLength": "11"
		}, 
		"34: pageLink": {
			"srcIndexStart": "2596", 
			"param 0": "APIOver#TokenSymbol", 
			"data": "Tokens, Symbols, and Symbol Types: The Front-End's Building Blocks", 
			"srcLength": "103", 
			"0: data": {
				"srcIndexStart": "2629", 
				"data": "Tokens, Symbols, and Symbol Types: The Front-End's Building Blocks", 
				"srcLength": "68"
			}
		}, 
		"35: data": {
			"srcIndexStart": "2699", 
			"data": "</li>
<li>", 
			"srcLength": "11"
		}, 
		"36: link": {
			"srcIndexStart": "2710", 
			"param 0": "https://bitbucket.org/Abscissa/goldie/src/v0.8/lang/calc.grm", 
			"data": "Sample calculator grammar", 
			"srcLength": "99", 
			"0: data": {
				"srcIndexStart": "2780", 
				"data": "Sample calculator grammar", 
				"srcLength": "27"
			}
		}, 
		"37: data": {
			"srcIndexStart": "2809", 
			"data": "</li>
<li>", 
			"srcLength": "11"
		}, 
		"38: link": {
			"srcIndexStart": "2820", 
			"param 0": "http://goldparser.org/grammars/index.htm", 
			"data": "Premade Grammars", 
			"srcLength": "70", 
			"0: data": {
				"srcIndexStart": "2870", 
				"data": "Premade Grammars", 
				"srcLength": "18"
			}
		}, 
		"39: data": {
			"srcIndexStart": "2890", 
			"data": "</li>
</ul>", 
			"srcLength": "16"
		}
	}
}