{
	"0: data": {
		"srcIndexStart": "0", 
		"file": "docssrc/docs.Dev.DevStaticLang.tmpl", 
		"parseTreeMode": "true", 
		"srcLength": "12114", 
		"source": "[$name|DevStaticLang$]
[$title|Library Source and StaticLang$]
[$frame|HTMLPage.tmpl$]

<h3>
Q: I've looked at the source for Token, Language, Lexer and Parser,
and OMG, what the hell is that mess?! (Especially Token! Geez!)
</h3>
<p>
A: Heh :) Put simply, it's a temporary kludge. The [$pageName|StaticLang$] tool
generates static-style languages directly from Goldie's dynamic-style
library source. That mess is all the directives used to help instruct
[$pageName|StaticLang$] in how to do the conversion.
</p>
<p>
To read the dynamic-style source, just ignore all the weird
[$code|inline|/+...+/$] directives
and anything inside [$code|inline|version(Goldie_StaticStyle)$]
(it will NOT be defined when you compile).
</p>
<p>
To read the static-style source, look at [$pageName|StaticLang$]'s output
and remember that [$code|inline|version(Goldie_StaticStyle)$] WILL be
defined when compiling.
</p>
<p>
To read the dynamic-style source, and see how [$pageName|StaticLang$] will
transform it, see the explanation of [$pageName|StaticLang$]'s preprocessing
below.
</p>
<p>
I do intend to clean that all up.
</p>

<h3>
Q: Goldie is already a language processing tool. Why don't you just use
Goldie and a D grammar to do the conversion? Or use D's fantastic
metaprogramming abilities?
</h3>
<p>
A: I do intend to do something like that.
</p>

<h2>
StaticLang's Preprocessing
</h2>

<h3>Tag Structure</h3>
<p>
StaticLang's preprocessing system is based on some basic tags:
</p>
<div class=\"code-plain\">/+LETTER:TAG_NAME+/
/+LETTER:TAG_NAME+/DUMMY</div>
<p>
Where:
</p>
<ul>
<li>
	[$code|inline|LETTER$] is one of: [$code|inline|P$], [$code|inline|S$], or [$code|inline|E$]
	<ul>
		<li>
			[$code|inline|P$] tags stand for \"Place\" and are used by themselves.
			These tags are replaced by some other text.
		</li>
		<li>
			<p>[$code|inline|S$] and [$code|inline|E$] tags stand for \"Start\" and \"End\"
			and are used in pairs surrounding code. Both tags <em>and</em> all the code
			in between are all replaced.</p>
			<p>Example:</p>
<div class=\"code-plain\">/+P:SOME_TAG+/
/+P:SOME_TAG+/DUMMY
/+S:SOME_TAG+/some D code here/+E:SOME_TAG+/</div>
		</li>
	</ul>
</li>
<li>
	[$code|inline|TAG_NAME$] is the name of the desired tag (see below).
</li>
<li>
	The text [$code|inline|DUMMY$] can optionally be appended whenever needed to make D's parser happy.
	This is usually only useful for [$code|inline|P$] tags.
</li>
</ul>
<p>
Note that, aside from the [$code|inline|DUMMY$] text, the tags are seen as
nested comments by D.
</p>

<h3>Defined Tags</h3>
<p style=\"font-style: italic\">
You'll notice that some of the following are not yet documented.
Full documentation of StaticLang's preprocessing is delayed because I
may make use of D's metaprogramming to take over much of the work currently
done by StaticLang.
</p>
<p>
There are three classes of tags:
cvars (Constant Vars), svars (Store Vars), and mvars (Modify Vars)
</p>
<h4>cvars (Constant Vars):</h4>
<p>
These tags are replaced with constant predetermined text that is always
the same for a given language. (But it may differ from one language to another.)
</p>
<p>
If [$code|inline|S$] and [$code|inline|E$] tags are used, all the code inside
the start and end tags is replaced.
</p>
[$apiHeadPlain| REM $]
<div class=\"api-def\">
	<p>
	Comments. Short for \"remark\", just like in BASIC and BATCH. These are
	removed completely by StaticLang, and replaced with absolutely nothing.
	</p>
	<p>
	Generally, it's preferred to use
	[$code|inline|version(Goldie_DynamicStyle)$] instead of this.
	</p>
</div>

[$apiHeadPlain| STATIC $]
<div class=\"api-def\">
	Replaced with the text [$code|inline|static$]
</div>

[$apiHeadPlain| OVERRIDE $]
<div class=\"api-def\">
	Replaced with the text [$code|inline|override$]
</div>

[$apiHeadPlain| VERSION $]
<div class=\"api-def\">
	Replaced with Goldie's version number.
</div>

[$apiHeadPlain| PACKAGE $]
<div class=\"api-def\">
	<p>
		Replaced with the package name of the language.
	</p>
	<p>
		For instance, if StaticLang is run with the command line parameter
		[$code|inline|-pack:myApp.langs.myLang$], then this tag is
		replaced with the text [$code|inline|myApp.langs.myLang$].
	</p>
</div>

[$apiHeadPlain| SHORT_PACKAGE $]
<div class=\"api-def\">
	<p>
		Replaced with the name of the language, ie., the last part of the package name.
	</p>
	<p>
		For instance, if StaticLang is run with the command line parameter
		[$code|inline|-pack:myApp.langs.myLang$], then this tag is
		replaced with the text [$code|inline|myLang$].
	</p>
</div>

[$apiHeadPlain| INIT_STATIC_LANG $]
<div class=\"api-def\">
	Inserts some basic initialization for each module:
[$code|plain|
[:version = Goldie_StaticStyle;
private enum _packageName = \"/+P:PACKAGE+/\";
private enum _shortPackageName = \"/+P:SHORT_PACKAGE+/\":]
$]
</div>

[$apiHeadPlain| LANG_CLASSNAME $]
<div class=\"api-def\">
	Replaced with [$code|inline|Language_myLang$]
	(assuming the language name, ie. [$ident|SHORT_PACKAGE$], is [$code|inline|myLang$])
</div>

[$apiHeadPlain| LANG_INHERIT $]
<div class=\"api-def\">
	Replaced with [$code|inline|public class Language_myLang : Language$]
</div>

[$apiHeadPlain| LANG_INSTNAME $]
<div class=\"api-def\">
	Replaced with [$code|inline|language_myLang$]
</div>

[$apiHeadPlain| LANG_FILENAME $]
<div class=\"api-def\">
	Inserts the name of the [$pageLink|CGT|CGT$] file this static-style
	language is being created from, without the path.
	For instance, [$code|inline|myLang.cgt$]
</div>

[$apiHeadPlain| LEXER_CLASSNAME $]
<div class=\"api-def\">
	Replaced with [$code|inline|Lexer_myLang$]
</div>

[$apiHeadPlain| LEXER_INHERIT $]
<div class=\"api-def\">
	Replaced with [$code|inline|public class Lexer_myLang : Lexer$]
</div>

[$apiHeadPlain| PARSER_CLASSNAME $]
<div class=\"api-def\">
	Replaced with [$code|inline|Parser_myLang$]
</div>

[$apiHeadPlain| PARSER_INHERIT $]
<div class=\"api-def\">
	Replaced with [$code|inline|public class Parser_myLang : Parser$]
</div>

[$apiHeadPlain| TOKEN_CLASSNAME $]
<div class=\"api-def\">
	Replaced with [$code|inline|Token_myLang$]
</div>

[$apiHeadPlain| TOKEN_INHERIT $]
<div class=\"api-def\">
	Replaced with
	[$code|inline|private class _Token_myLang(SymbolType staticSymbolType, string _staticName) : Base_Token_myLang$]
</div>

[$apiHeadPlain| SUBTOKENTYPE_NAME $]
<div class=\"api-def\">
	Replaced with [$code|inline|SubTokenType_myLang$]
</div>

[$apiHeadPlain| IS_CORRECT_TOKEN_FUNCNAME $]
<div class=\"api-def\">
	Replaced with [$code|inline|isCorrectToken_myLang$]
</div>

[$apiHeadPlain| RULE_ID_OF_FUNCNAME $]
<div class=\"api-def\">
	Replaced with [$code|inline|ruleIdOf_myLang$]
</div>

[$apiHeadPlain| TOKEN_CTOR_TERMFIRST $]
<div class=\"api-def\">
	Replaced with [$code|inline|static if(staticSymbolType != SymbolType.NonTerminal) {$]
</div>

[$apiHeadPlain| TOKEN_CTOR_NONTERMFIRST $]
<div class=\"api-def\">
	Replaced with [$code|inline|static if(staticSymbolType == SymbolType.NonTerminal) {$]
</div>

[$apiHeadPlain| BLOCK_ELSE $]
<div class=\"api-def\">
	Replaced with [$code|inline|} else {$]
</div>

[$apiHeadPlain| TOKEN_CTOR_END $]
<div class=\"api-def\">
	Replaced with [$code|inline|}$]
</div>

[$apiHeadPlain| TOKEN_CLASSNAME_TOPNODE $]
<div class=\"api-def\">
	Inserts the name of the nonterminal [$typeName|Token_{languageName}!{symbol}$]
	that is the root, or \"Start Symbol\", of the parse tree. Ie, this is the
	type of [$pageLink|Parser#Parser_parseTree|Parser_{languageName}.parseTree$].
</div>

[$apiHeadPlain| TOKEN_TEMPLATE_1P $]
[$apiHeadPlain| TOKEN_TEMPLATE_2P $]
[$apiHeadPlain| TOKEN_TEMPLATE_RULE $]
<div class=\"api-def\">
	Inserts the bodies of various helper templates for referring to
	the various static-style token types.
</div>

[$apiHeadPlain| SUBTOKENTYPE_TEMPLATE $]
<div class=\"api-def\">
	Inserts the implementation of the [$code|inline|SubTokenType_myLang$]
	template used by
	[$pageLink|Token#Token_sub|Token_{languageName}!{rule}.sub(int index)$]
	to determine the correct static-style token type for each subtoken of a
	[$pageLink|Token#Token__languageName___rule_|Token_{languageName}!{rule}$].
</div>

[$apiHeadPlain| SET_STATICID_TERM $]
<div class=\"api-def\">
	<span style=\"font-style: italic\">To be documented...</span>
</div>

[$apiHeadPlain| SET_STATICID_NONTERM $]
<div class=\"api-def\">
	<span style=\"font-style: italic\">To be documented...</span>
</div>

[$apiHeadPlain| RULE_ID_OF $]
<div class=\"api-def\">
	<span style=\"font-style: italic\">To be documented...</span>
</div>

[$apiHeadPlain| LANG_STATICDATA $]
<div class=\"api-def\">
	Used to insert all the data from the given [$pageLink|CGT|CGT$] file
	into the static-style [$typeName|Language_{languageName}$].
</div>

[$apiHeadPlain| INIT_SYMBOL_LOOKUP $]
<div class=\"api-def\">
	Used in the [$typeName|Language_{languageName}$] constructor to insert
	code that initializes the [$ident|symbolLookup$] table.
</div>

[$apiHeadPlain| LOOKUP_SYMBOL $]
<div class=\"api-def\">
	Used to insert most of the body code for the
	[$typeName|Language_{languageName}$][$ident|.staticLookupSymbol()$] function.
</div>


<h4>svars (Store Vars):</h4>
<p>
	These are fairly complex compared to the cvars and mvars.
	They involve the use multiple distinct forms:
</p>
[$code|plain|
[:/+S:TAG_NAME:STORE+/ code here /+E:TAG_NAME:STORE+/
/+P:TAG_NAME+/
/+S:TAG_NAME:SOME_NAME+/ code here /+E:TAG_NAME:SOME_NAME+/
/+P:TAG_NAME:SOME_NAME+/:]
$]
<p>
	First, the form [$code|inline|/+S:TAG_NAME:STORE+/ code here /+E:TAG_NAME:STORE+/$]
	is used to tell StaticLang to \"store\" the code inside.
	The code [$code|inline|code here$] is stored, but the whole set of tags
	are removed and replaced with nothing.
</p>
<p>
	Then, the form [$code|inline|/+P:TAG_NAME+/$] is used. The stored code
	is inserted into some internally-defined boilerplate code, repeated however
	many times necessary (determined by the [$ident|TAG_NAME$]
	and the language), surrounding boilerplate is added, and
	then the final result is inserted in.
</p>
<p>
	Within the \"stored\" code, the final two forms can be used to insert certain
	data that's different for each repetition.
</p>


[$apiHeadPlain| ACCEPT_TERM $]
[$apiHeadPlain| ACCEPT_TERM:STORE $]
<div class=\"api-def\">
<p>
	Inside the lexer, this stores/inserts the code to accept and create a new
	terminal token of the appropriate type.
</p>
<p>
	This is repeated (along with boilerplate) for each possible terminal
	token type, such as
	[$code|inline|Token_myLang!(SymbolType.Whitespace, \"Whitespace\")$]
	or
	[$code|inline|Token_myLang!(SymbolType.Terminal, \"Number\")$].
</p>
</div>
[$apiHeadPlain| ACCEPT_TERM:TOKEN_CLASSNAME $]
<div class=\"api-def\">
	Inserts the class name for a particular type of terminal token, such as
	[$code|inline|Token_myLang!(SymbolType.Whitespace, \"Whitespace\")$]
	or
	[$code|inline|Token_myLang!(SymbolType.Terminal, \"Number\")$].
</div>
[$apiHeadPlain| REDUCE $]
[$apiHeadPlain| REDUCE:STORE $]
<div class=\"api-def\">
<p>
	Inside the parser, this stores/inserts the code to reduce a group of
	subtokens into a new nonterminal token of the appropriate type.
</p>
<p>
	This is repeated (along with boilerplate) for each possible
	[$typeName|Token_{languageName}!{rule} $] type, such as
	[$code|inline|Token_myLang!(\"<Mult Exp>\", 5)$] (where \"5\" is the ruleId).
</p>
</div>
[$apiHeadPlain| REDUCE:TOKEN_CLASSNAME $]
<div class=\"api-def\">
	Inserts the class name for a particular type of nonterminal rule token,
	such as
	[$code|inline|Token_myLang!(\"<Mult Exp>\", 5)$] (where \"5\" is the ruleId).
</div>


<h4>mvars (Modify Vars):</h4>
<p>
	These take the code between the [$code|inline|S$] and [$code|inline|E$]
	tags, and modify it in some predetermined way.
</p>
[$apiHeadPlain| STATIC_IDENT $]
<div class=\"api-def\">
	Converts an identifier such as [$code|inline|fooBar$] to [$code|inline|staticFooBar$].
</div>
[$apiHeadPlain| LANG_IDENT $]
<div class=\"api-def\">
	Converts an identifier such as [$code|inline|fooBar$] to [$code|inline|fooBar_nameOfLang$].
	For instance, if the language name (ie, the [$ident|SHORT_NAME$] from above)
	is [$code|inline|myLang$], then
	[$code|inline|/+S:LANG_IDENT+/fooBar/+E:LANG_IDENT+/$]
	becomes [$code|inline|fooBar_myLang$].
</div>
", 
		"0: name": {
			"srcIndexStart": "0", 
			"data": "DevStaticLang", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "7", 
				"data": "DevStaticLang", 
				"srcLength": "13"
			}
		}, 
		"1: data": {
			"srcIndexStart": "22", 
			"data": "
", 
			"srcLength": "1"
		}, 
		"2: title": {
			"srcIndexStart": "23", 
			"data": "Library Source and StaticLang", 
			"srcLength": "39", 
			"0: data": {
				"srcIndexStart": "31", 
				"data": "Library Source and StaticLang", 
				"srcLength": "29"
			}
		}, 
		"3: data": {
			"srcIndexStart": "62", 
			"data": "
", 
			"srcLength": "1"
		}, 
		"4: frame": {
			"srcIndexStart": "63", 
			"data": "HTMLPage.tmpl", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "71", 
				"data": "HTMLPage.tmpl", 
				"srcLength": "13"
			}
		}, 
		"5: data": {
			"srcIndexStart": "86", 
			"data": "

<h3>
Q: I've looked at the source for Token, Language, Lexer and Parser,
and OMG, what the hell is that mess?! (Especially Token! Geez!)
</h3>
<p>
A: Heh :) Put simply, it's a temporary kludge. The ", 
			"srcLength": "200"
		}, 
		"6: pageName": {
			"srcIndexStart": "286", 
			"data": "StaticLang", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "297", 
				"data": "StaticLang", 
				"srcLength": "10"
			}
		}, 
		"7: data": {
			"srcIndexStart": "309", 
			"data": " tool
generates static-style languages directly from Goldie's dynamic-style
library source. That mess is all the directives used to help instruct
", 
			"srcLength": "146"
		}, 
		"8: pageName": {
			"srcIndexStart": "455", 
			"data": "StaticLang", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "466", 
				"data": "StaticLang", 
				"srcLength": "10"
			}
		}, 
		"9: data": {
			"srcIndexStart": "478", 
			"data": " in how to do the conversion.
</p>
<p>
To read the dynamic-style source, just ignore all the weird
", 
			"srcLength": "99"
		}, 
		"10: code": {
			"srcIndexStart": "577", 
			"param 0": "inline", 
			"data": "/+...+/", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "591", 
				"data": "/+...+/", 
				"srcLength": "7"
			}
		}, 
		"11: data": {
			"srcIndexStart": "600", 
			"data": " directives
and anything inside ", 
			"srcLength": "32"
		}, 
		"12: code": {
			"srcIndexStart": "632", 
			"param 0": "inline", 
			"data": "version(Goldie_StaticStyle)", 
			"srcLength": "43", 
			"0: data": {
				"srcIndexStart": "646", 
				"data": "version(Goldie_StaticStyle)", 
				"srcLength": "27"
			}
		}, 
		"13: data": {
			"srcIndexStart": "675", 
			"data": "
(it will NOT be defined when you compile).
</p>
<p>
To read the static-style source, look at ", 
			"srcLength": "94"
		}, 
		"14: pageName": {
			"srcIndexStart": "769", 
			"data": "StaticLang", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "780", 
				"data": "StaticLang", 
				"srcLength": "10"
			}
		}, 
		"15: data": {
			"srcIndexStart": "792", 
			"data": "'s output
and remember that ", 
			"srcLength": "28"
		}, 
		"16: code": {
			"srcIndexStart": "820", 
			"param 0": "inline", 
			"data": "version(Goldie_StaticStyle)", 
			"srcLength": "43", 
			"0: data": {
				"srcIndexStart": "834", 
				"data": "version(Goldie_StaticStyle)", 
				"srcLength": "27"
			}
		}, 
		"17: data": {
			"srcIndexStart": "863", 
			"data": " WILL be
defined when compiling.
</p>
<p>
To read the dynamic-style source, and see how ", 
			"srcLength": "88"
		}, 
		"18: pageName": {
			"srcIndexStart": "951", 
			"data": "StaticLang", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "962", 
				"data": "StaticLang", 
				"srcLength": "10"
			}
		}, 
		"19: data": {
			"srcIndexStart": "974", 
			"data": " will
transform it, see the explanation of ", 
			"srcLength": "43"
		}, 
		"20: pageName": {
			"srcIndexStart": "1017", 
			"data": "StaticLang", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "1028", 
				"data": "StaticLang", 
				"srcLength": "10"
			}
		}, 
		"21: data": {
			"srcIndexStart": "1040", 
			"data": "'s preprocessing
below.
</p>
<p>
I do intend to clean that all up.
</p>

<h3>
Q: Goldie is already a language processing tool. Why don't you just use
Goldie and a D grammar to do the conversion? Or use D's fantastic
metaprogramming abilities?
</h3>
<p>
A: I do intend to do something like that.
</p>

<h2>
StaticLang's Preprocessing
</h2>

<h3>Tag Structure</h3>
<p>
StaticLang's preprocessing system is based on some basic tags:
</p>
<div class=\"code-plain\">/+LETTER:TAG_NAME+/
/+LETTER:TAG_NAME+/DUMMY</div>
<p>
Where:
</p>
<ul>
<li>
	", 
			"srcLength": "537"
		}, 
		"22: code": {
			"srcIndexStart": "1577", 
			"param 0": "inline", 
			"data": "LETTER", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "1591", 
				"data": "LETTER", 
				"srcLength": "6"
			}
		}, 
		"23: data": {
			"srcIndexStart": "1599", 
			"data": " is one of: ", 
			"srcLength": "12"
		}, 
		"24: code": {
			"srcIndexStart": "1611", 
			"param 0": "inline", 
			"data": "P", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "1625", 
				"data": "P", 
				"srcLength": "1"
			}
		}, 
		"25: data": {
			"srcIndexStart": "1628", 
			"data": ", ", 
			"srcLength": "2"
		}, 
		"26: code": {
			"srcIndexStart": "1630", 
			"param 0": "inline", 
			"data": "S", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "1644", 
				"data": "S", 
				"srcLength": "1"
			}
		}, 
		"27: data": {
			"srcIndexStart": "1647", 
			"data": ", or ", 
			"srcLength": "5"
		}, 
		"28: code": {
			"srcIndexStart": "1652", 
			"param 0": "inline", 
			"data": "E", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "1666", 
				"data": "E", 
				"srcLength": "1"
			}
		}, 
		"29: data": {
			"srcIndexStart": "1669", 
			"data": "
	<ul>
		<li>
			", 
			"srcLength": "17"
		}, 
		"30: code": {
			"srcIndexStart": "1686", 
			"param 0": "inline", 
			"data": "P", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "1700", 
				"data": "P", 
				"srcLength": "1"
			}
		}, 
		"31: data": {
			"srcIndexStart": "1703", 
			"data": " tags stand for \"Place\" and are used by themselves.
			These tags are replaced by some other text.
		</li>
		<li>
			<p>", 
			"srcLength": "120"
		}, 
		"32: code": {
			"srcIndexStart": "1823", 
			"param 0": "inline", 
			"data": "S", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "1837", 
				"data": "S", 
				"srcLength": "1"
			}
		}, 
		"33: data": {
			"srcIndexStart": "1840", 
			"data": " and ", 
			"srcLength": "5"
		}, 
		"34: code": {
			"srcIndexStart": "1845", 
			"param 0": "inline", 
			"data": "E", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "1859", 
				"data": "E", 
				"srcLength": "1"
			}
		}, 
		"35: data": {
			"srcIndexStart": "1862", 
			"data": " tags stand for \"Start\" and \"End\"
			and are used in pairs surrounding code. Both tags <em>and</em> all the code
			in between are all replaced.</p>
			<p>Example:</p>
<div class=\"code-plain\">/+P:SOME_TAG+/
/+P:SOME_TAG+/DUMMY
/+S:SOME_TAG+/some D code here/+E:SOME_TAG+/</div>
		</li>
	</ul>
</li>
<li>
	", 
			"srcLength": "305"
		}, 
		"36: code": {
			"srcIndexStart": "2167", 
			"param 0": "inline", 
			"data": "TAG_NAME", 
			"srcLength": "24", 
			"0: data": {
				"srcIndexStart": "2181", 
				"data": "TAG_NAME", 
				"srcLength": "8"
			}
		}, 
		"37: data": {
			"srcIndexStart": "2191", 
			"data": " is the name of the desired tag (see below).
</li>
<li>
	The text ", 
			"srcLength": "66"
		}, 
		"38: code": {
			"srcIndexStart": "2257", 
			"param 0": "inline", 
			"data": "DUMMY", 
			"srcLength": "21", 
			"0: data": {
				"srcIndexStart": "2271", 
				"data": "DUMMY", 
				"srcLength": "5"
			}
		}, 
		"39: data": {
			"srcIndexStart": "2278", 
			"data": " can optionally be appended whenever needed to make D's parser happy.
	This is usually only useful for ", 
			"srcLength": "103"
		}, 
		"40: code": {
			"srcIndexStart": "2381", 
			"param 0": "inline", 
			"data": "P", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "2395", 
				"data": "P", 
				"srcLength": "1"
			}
		}, 
		"41: data": {
			"srcIndexStart": "2398", 
			"data": " tags.
</li>
</ul>
<p>
Note that, aside from the ", 
			"srcLength": "49"
		}, 
		"42: code": {
			"srcIndexStart": "2447", 
			"param 0": "inline", 
			"data": "DUMMY", 
			"srcLength": "21", 
			"0: data": {
				"srcIndexStart": "2461", 
				"data": "DUMMY", 
				"srcLength": "5"
			}
		}, 
		"43: data": {
			"srcIndexStart": "2468", 
			"data": " text, the tags are seen as
nested comments by D.
</p>

<h3>Defined Tags</h3>
<p style=\"font-style: italic\">
You'll notice that some of the following are not yet documented.
Full documentation of StaticLang's preprocessing is delayed because I
may make use of D's metaprogramming to take over much of the work currently
done by StaticLang.
</p>
<p>
There are three classes of tags:
cvars (Constant Vars), svars (Store Vars), and mvars (Modify Vars)
</p>
<h4>cvars (Constant Vars):</h4>
<p>
These tags are replaced with constant predetermined text that is always
the same for a given language. (But it may differ from one language to another.)
</p>
<p>
If ", 
			"srcLength": "655"
		}, 
		"44: code": {
			"srcIndexStart": "3123", 
			"param 0": "inline", 
			"data": "S", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "3137", 
				"data": "S", 
				"srcLength": "1"
			}
		}, 
		"45: data": {
			"srcIndexStart": "3140", 
			"data": " and ", 
			"srcLength": "5"
		}, 
		"46: code": {
			"srcIndexStart": "3145", 
			"param 0": "inline", 
			"data": "E", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "3159", 
				"data": "E", 
				"srcLength": "1"
			}
		}, 
		"47: data": {
			"srcIndexStart": "3162", 
			"data": " tags are used, all the code inside
the start and end tags is replaced.
</p>
", 
			"srcLength": "77"
		}, 
		"48: apiHeadPlain": {
			"srcIndexStart": "3239", 
			"data": "REM", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "3254", 
				"data": "REM", 
				"srcLength": "5"
			}
		}, 
		"49: data": {
			"srcIndexStart": "3261", 
			"data": "
<div class=\"api-def\">
	<p>
	Comments. Short for \"remark\", just like in BASIC and BATCH. These are
	removed completely by StaticLang, and replaced with absolutely nothing.
	</p>
	<p>
	Generally, it's preferred to use
	", 
			"srcLength": "218"
		}, 
		"50: code": {
			"srcIndexStart": "3479", 
			"param 0": "inline", 
			"data": "version(Goldie_DynamicStyle)", 
			"srcLength": "44", 
			"0: data": {
				"srcIndexStart": "3493", 
				"data": "version(Goldie_DynamicStyle)", 
				"srcLength": "28"
			}
		}, 
		"51: data": {
			"srcIndexStart": "3523", 
			"data": " instead of this.
	</p>
</div>

", 
			"srcLength": "32"
		}, 
		"52: apiHeadPlain": {
			"srcIndexStart": "3555", 
			"data": "STATIC", 
			"srcLength": "25", 
			"0: data": {
				"srcIndexStart": "3570", 
				"data": "STATIC", 
				"srcLength": "8"
			}
		}, 
		"53: data": {
			"srcIndexStart": "3580", 
			"data": "
<div class=\"api-def\">
	Replaced with the text ", 
			"srcLength": "47"
		}, 
		"54: code": {
			"srcIndexStart": "3627", 
			"param 0": "inline", 
			"data": "static", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "3641", 
				"data": "static", 
				"srcLength": "6"
			}
		}, 
		"55: data": {
			"srcIndexStart": "3649", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"56: apiHeadPlain": {
			"srcIndexStart": "3658", 
			"data": "OVERRIDE", 
			"srcLength": "27", 
			"0: data": {
				"srcIndexStart": "3673", 
				"data": "OVERRIDE", 
				"srcLength": "10"
			}
		}, 
		"57: data": {
			"srcIndexStart": "3685", 
			"data": "
<div class=\"api-def\">
	Replaced with the text ", 
			"srcLength": "47"
		}, 
		"58: code": {
			"srcIndexStart": "3732", 
			"param 0": "inline", 
			"data": "override", 
			"srcLength": "24", 
			"0: data": {
				"srcIndexStart": "3746", 
				"data": "override", 
				"srcLength": "8"
			}
		}, 
		"59: data": {
			"srcIndexStart": "3756", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"60: apiHeadPlain": {
			"srcIndexStart": "3765", 
			"data": "VERSION", 
			"srcLength": "26", 
			"0: data": {
				"srcIndexStart": "3780", 
				"data": "VERSION", 
				"srcLength": "9"
			}
		}, 
		"61: data": {
			"srcIndexStart": "3791", 
			"data": "
<div class=\"api-def\">
	Replaced with Goldie's version number.
</div>

", 
			"srcLength": "71"
		}, 
		"62: apiHeadPlain": {
			"srcIndexStart": "3862", 
			"data": "PACKAGE", 
			"srcLength": "26", 
			"0: data": {
				"srcIndexStart": "3877", 
				"data": "PACKAGE", 
				"srcLength": "9"
			}
		}, 
		"63: data": {
			"srcIndexStart": "3888", 
			"data": "
<div class=\"api-def\">
	<p>
		Replaced with the package name of the language.
	</p>
	<p>
		For instance, if StaticLang is run with the command line parameter
		", 
			"srcLength": "160"
		}, 
		"64: code": {
			"srcIndexStart": "4048", 
			"param 0": "inline", 
			"data": "-pack:myApp.langs.myLang", 
			"srcLength": "40", 
			"0: data": {
				"srcIndexStart": "4062", 
				"data": "-pack:myApp.langs.myLang", 
				"srcLength": "24"
			}
		}, 
		"65: data": {
			"srcIndexStart": "4088", 
			"data": ", then this tag is
		replaced with the text ", 
			"srcLength": "44"
		}, 
		"66: code": {
			"srcIndexStart": "4132", 
			"param 0": "inline", 
			"data": "myApp.langs.myLang", 
			"srcLength": "34", 
			"0: data": {
				"srcIndexStart": "4146", 
				"data": "myApp.langs.myLang", 
				"srcLength": "18"
			}
		}, 
		"67: data": {
			"srcIndexStart": "4166", 
			"data": ".
	</p>
</div>

", 
			"srcLength": "16"
		}, 
		"68: apiHeadPlain": {
			"srcIndexStart": "4182", 
			"data": "SHORT_PACKAGE", 
			"srcLength": "32", 
			"0: data": {
				"srcIndexStart": "4197", 
				"data": "SHORT_PACKAGE", 
				"srcLength": "15"
			}
		}, 
		"69: data": {
			"srcIndexStart": "4214", 
			"data": "
<div class=\"api-def\">
	<p>
		Replaced with the name of the language, ie., the last part of the package name.
	</p>
	<p>
		For instance, if StaticLang is run with the command line parameter
		", 
			"srcLength": "192"
		}, 
		"70: code": {
			"srcIndexStart": "4406", 
			"param 0": "inline", 
			"data": "-pack:myApp.langs.myLang", 
			"srcLength": "40", 
			"0: data": {
				"srcIndexStart": "4420", 
				"data": "-pack:myApp.langs.myLang", 
				"srcLength": "24"
			}
		}, 
		"71: data": {
			"srcIndexStart": "4446", 
			"data": ", then this tag is
		replaced with the text ", 
			"srcLength": "44"
		}, 
		"72: code": {
			"srcIndexStart": "4490", 
			"param 0": "inline", 
			"data": "myLang", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "4504", 
				"data": "myLang", 
				"srcLength": "6"
			}
		}, 
		"73: data": {
			"srcIndexStart": "4512", 
			"data": ".
	</p>
</div>

", 
			"srcLength": "16"
		}, 
		"74: apiHeadPlain": {
			"srcIndexStart": "4528", 
			"data": "INIT_STATIC_LANG", 
			"srcLength": "35", 
			"0: data": {
				"srcIndexStart": "4543", 
				"data": "INIT_STATIC_LANG", 
				"srcLength": "18"
			}
		}, 
		"75: data": {
			"srcIndexStart": "4563", 
			"data": "
<div class=\"api-def\">
	Inserts some basic initialization for each module:
", 
			"srcLength": "75"
		}, 
		"76: code": {
			"srcIndexStart": "4638", 
			"param 0": "plain", 
			"data": "version = Goldie_StaticStyle;
private enum _packageName = \"/+P:PACKAGE+/\";
private enum _shortPackageName = \"/+P:SHORT_PACKAGE+/\"", 
			"srcLength": "150", 
			"0: data": {
				"srcIndexStart": "4651", 
				"data": "", 
				"srcLength": "1"
			}, 
			"1: data": {
				"srcIndexStart": "4652", 
				"data": "version = Goldie_StaticStyle;
private enum _packageName = \"/+P:PACKAGE+/\";
private enum _shortPackageName = \"/+P:SHORT_PACKAGE+/\"", 
				"srcLength": "133"
			}, 
			"2: data": {
				"srcIndexStart": "4785", 
				"data": "", 
				"srcLength": "1"
			}
		}, 
		"77: data": {
			"srcIndexStart": "4788", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"78: apiHeadPlain": {
			"srcIndexStart": "4797", 
			"data": "LANG_CLASSNAME", 
			"srcLength": "33", 
			"0: data": {
				"srcIndexStart": "4812", 
				"data": "LANG_CLASSNAME", 
				"srcLength": "16"
			}
		}, 
		"79: data": {
			"srcIndexStart": "4830", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"80: code": {
			"srcIndexStart": "4868", 
			"param 0": "inline", 
			"data": "Language_myLang", 
			"srcLength": "31", 
			"0: data": {
				"srcIndexStart": "4882", 
				"data": "Language_myLang", 
				"srcLength": "15"
			}
		}, 
		"81: data": {
			"srcIndexStart": "4899", 
			"data": "
	(assuming the language name, ie. ", 
			"srcLength": "35"
		}, 
		"82: ident": {
			"srcIndexStart": "4934", 
			"data": "SHORT_PACKAGE", 
			"srcLength": "23", 
			"0: data": {
				"srcIndexStart": "4942", 
				"data": "SHORT_PACKAGE", 
				"srcLength": "13"
			}
		}, 
		"83: data": {
			"srcIndexStart": "4957", 
			"data": ", is ", 
			"srcLength": "5"
		}, 
		"84: code": {
			"srcIndexStart": "4962", 
			"param 0": "inline", 
			"data": "myLang", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "4976", 
				"data": "myLang", 
				"srcLength": "6"
			}
		}, 
		"85: data": {
			"srcIndexStart": "4984", 
			"data": ")
</div>

", 
			"srcLength": "10"
		}, 
		"86: apiHeadPlain": {
			"srcIndexStart": "4994", 
			"data": "LANG_INHERIT", 
			"srcLength": "31", 
			"0: data": {
				"srcIndexStart": "5009", 
				"data": "LANG_INHERIT", 
				"srcLength": "14"
			}
		}, 
		"87: data": {
			"srcIndexStart": "5025", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"88: code": {
			"srcIndexStart": "5063", 
			"param 0": "inline", 
			"data": "public class Language_myLang : Language", 
			"srcLength": "55", 
			"0: data": {
				"srcIndexStart": "5077", 
				"data": "public class Language_myLang : Language", 
				"srcLength": "39"
			}
		}, 
		"89: data": {
			"srcIndexStart": "5118", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"90: apiHeadPlain": {
			"srcIndexStart": "5127", 
			"data": "LANG_INSTNAME", 
			"srcLength": "32", 
			"0: data": {
				"srcIndexStart": "5142", 
				"data": "LANG_INSTNAME", 
				"srcLength": "15"
			}
		}, 
		"91: data": {
			"srcIndexStart": "5159", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"92: code": {
			"srcIndexStart": "5197", 
			"param 0": "inline", 
			"data": "language_myLang", 
			"srcLength": "31", 
			"0: data": {
				"srcIndexStart": "5211", 
				"data": "language_myLang", 
				"srcLength": "15"
			}
		}, 
		"93: data": {
			"srcIndexStart": "5228", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"94: apiHeadPlain": {
			"srcIndexStart": "5237", 
			"data": "LANG_FILENAME", 
			"srcLength": "32", 
			"0: data": {
				"srcIndexStart": "5252", 
				"data": "LANG_FILENAME", 
				"srcLength": "15"
			}
		}, 
		"95: data": {
			"srcIndexStart": "5269", 
			"data": "
<div class=\"api-def\">
	Inserts the name of the ", 
			"srcLength": "48"
		}, 
		"96: pageLink": {
			"srcIndexStart": "5317", 
			"param 0": "CGT", 
			"data": "CGT", 
			"srcLength": "20", 
			"0: data": {
				"srcIndexStart": "5332", 
				"data": "CGT", 
				"srcLength": "3"
			}
		}, 
		"97: data": {
			"srcIndexStart": "5337", 
			"data": " file this static-style
	language is being created from, without the path.
	For instance, ", 
			"srcLength": "90"
		}, 
		"98: code": {
			"srcIndexStart": "5427", 
			"param 0": "inline", 
			"data": "myLang.cgt", 
			"srcLength": "26", 
			"0: data": {
				"srcIndexStart": "5441", 
				"data": "myLang.cgt", 
				"srcLength": "10"
			}
		}, 
		"99: data": {
			"srcIndexStart": "5453", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"100: apiHeadPlain": {
			"srcIndexStart": "5462", 
			"data": "LEXER_CLASSNAME", 
			"srcLength": "34", 
			"0: data": {
				"srcIndexStart": "5477", 
				"data": "LEXER_CLASSNAME", 
				"srcLength": "17"
			}
		}, 
		"101: data": {
			"srcIndexStart": "5496", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"102: code": {
			"srcIndexStart": "5534", 
			"param 0": "inline", 
			"data": "Lexer_myLang", 
			"srcLength": "28", 
			"0: data": {
				"srcIndexStart": "5548", 
				"data": "Lexer_myLang", 
				"srcLength": "12"
			}
		}, 
		"103: data": {
			"srcIndexStart": "5562", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"104: apiHeadPlain": {
			"srcIndexStart": "5571", 
			"data": "LEXER_INHERIT", 
			"srcLength": "32", 
			"0: data": {
				"srcIndexStart": "5586", 
				"data": "LEXER_INHERIT", 
				"srcLength": "15"
			}
		}, 
		"105: data": {
			"srcIndexStart": "5603", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"106: code": {
			"srcIndexStart": "5641", 
			"param 0": "inline", 
			"data": "public class Lexer_myLang : Lexer", 
			"srcLength": "49", 
			"0: data": {
				"srcIndexStart": "5655", 
				"data": "public class Lexer_myLang : Lexer", 
				"srcLength": "33"
			}
		}, 
		"107: data": {
			"srcIndexStart": "5690", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"108: apiHeadPlain": {
			"srcIndexStart": "5699", 
			"data": "PARSER_CLASSNAME", 
			"srcLength": "35", 
			"0: data": {
				"srcIndexStart": "5714", 
				"data": "PARSER_CLASSNAME", 
				"srcLength": "18"
			}
		}, 
		"109: data": {
			"srcIndexStart": "5734", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"110: code": {
			"srcIndexStart": "5772", 
			"param 0": "inline", 
			"data": "Parser_myLang", 
			"srcLength": "29", 
			"0: data": {
				"srcIndexStart": "5786", 
				"data": "Parser_myLang", 
				"srcLength": "13"
			}
		}, 
		"111: data": {
			"srcIndexStart": "5801", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"112: apiHeadPlain": {
			"srcIndexStart": "5810", 
			"data": "PARSER_INHERIT", 
			"srcLength": "33", 
			"0: data": {
				"srcIndexStart": "5825", 
				"data": "PARSER_INHERIT", 
				"srcLength": "16"
			}
		}, 
		"113: data": {
			"srcIndexStart": "5843", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"114: code": {
			"srcIndexStart": "5881", 
			"param 0": "inline", 
			"data": "public class Parser_myLang : Parser", 
			"srcLength": "51", 
			"0: data": {
				"srcIndexStart": "5895", 
				"data": "public class Parser_myLang : Parser", 
				"srcLength": "35"
			}
		}, 
		"115: data": {
			"srcIndexStart": "5932", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"116: apiHeadPlain": {
			"srcIndexStart": "5941", 
			"data": "TOKEN_CLASSNAME", 
			"srcLength": "34", 
			"0: data": {
				"srcIndexStart": "5956", 
				"data": "TOKEN_CLASSNAME", 
				"srcLength": "17"
			}
		}, 
		"117: data": {
			"srcIndexStart": "5975", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"118: code": {
			"srcIndexStart": "6013", 
			"param 0": "inline", 
			"data": "Token_myLang", 
			"srcLength": "28", 
			"0: data": {
				"srcIndexStart": "6027", 
				"data": "Token_myLang", 
				"srcLength": "12"
			}
		}, 
		"119: data": {
			"srcIndexStart": "6041", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"120: apiHeadPlain": {
			"srcIndexStart": "6050", 
			"data": "TOKEN_INHERIT", 
			"srcLength": "32", 
			"0: data": {
				"srcIndexStart": "6065", 
				"data": "TOKEN_INHERIT", 
				"srcLength": "15"
			}
		}, 
		"121: data": {
			"srcIndexStart": "6082", 
			"data": "
<div class=\"api-def\">
	Replaced with
	", 
			"srcLength": "39"
		}, 
		"122: code": {
			"srcIndexStart": "6121", 
			"param 0": "inline", 
			"data": "private class _Token_myLang(SymbolType staticSymbolType, string _staticName) : Base_Token_myLang", 
			"srcLength": "112", 
			"0: data": {
				"srcIndexStart": "6135", 
				"data": "private class _Token_myLang(SymbolType staticSymbolType, string _staticName) : Base_Token_myLang", 
				"srcLength": "96"
			}
		}, 
		"123: data": {
			"srcIndexStart": "6233", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"124: apiHeadPlain": {
			"srcIndexStart": "6242", 
			"data": "SUBTOKENTYPE_NAME", 
			"srcLength": "36", 
			"0: data": {
				"srcIndexStart": "6257", 
				"data": "SUBTOKENTYPE_NAME", 
				"srcLength": "19"
			}
		}, 
		"125: data": {
			"srcIndexStart": "6278", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"126: code": {
			"srcIndexStart": "6316", 
			"param 0": "inline", 
			"data": "SubTokenType_myLang", 
			"srcLength": "35", 
			"0: data": {
				"srcIndexStart": "6330", 
				"data": "SubTokenType_myLang", 
				"srcLength": "19"
			}
		}, 
		"127: data": {
			"srcIndexStart": "6351", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"128: apiHeadPlain": {
			"srcIndexStart": "6360", 
			"data": "IS_CORRECT_TOKEN_FUNCNAME", 
			"srcLength": "44", 
			"0: data": {
				"srcIndexStart": "6375", 
				"data": "IS_CORRECT_TOKEN_FUNCNAME", 
				"srcLength": "27"
			}
		}, 
		"129: data": {
			"srcIndexStart": "6404", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"130: code": {
			"srcIndexStart": "6442", 
			"param 0": "inline", 
			"data": "isCorrectToken_myLang", 
			"srcLength": "37", 
			"0: data": {
				"srcIndexStart": "6456", 
				"data": "isCorrectToken_myLang", 
				"srcLength": "21"
			}
		}, 
		"131: data": {
			"srcIndexStart": "6479", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"132: apiHeadPlain": {
			"srcIndexStart": "6488", 
			"data": "RULE_ID_OF_FUNCNAME", 
			"srcLength": "38", 
			"0: data": {
				"srcIndexStart": "6503", 
				"data": "RULE_ID_OF_FUNCNAME", 
				"srcLength": "21"
			}
		}, 
		"133: data": {
			"srcIndexStart": "6526", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"134: code": {
			"srcIndexStart": "6564", 
			"param 0": "inline", 
			"data": "ruleIdOf_myLang", 
			"srcLength": "31", 
			"0: data": {
				"srcIndexStart": "6578", 
				"data": "ruleIdOf_myLang", 
				"srcLength": "15"
			}
		}, 
		"135: data": {
			"srcIndexStart": "6595", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"136: apiHeadPlain": {
			"srcIndexStart": "6604", 
			"data": "TOKEN_CTOR_TERMFIRST", 
			"srcLength": "39", 
			"0: data": {
				"srcIndexStart": "6619", 
				"data": "TOKEN_CTOR_TERMFIRST", 
				"srcLength": "22"
			}
		}, 
		"137: data": {
			"srcIndexStart": "6643", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"138: code": {
			"srcIndexStart": "6681", 
			"param 0": "inline", 
			"data": "static if(staticSymbolType != SymbolType.NonTerminal) {", 
			"srcLength": "71", 
			"0: data": {
				"srcIndexStart": "6695", 
				"data": "static if(staticSymbolType != SymbolType.NonTerminal) {", 
				"srcLength": "55"
			}
		}, 
		"139: data": {
			"srcIndexStart": "6752", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"140: apiHeadPlain": {
			"srcIndexStart": "6761", 
			"data": "TOKEN_CTOR_NONTERMFIRST", 
			"srcLength": "42", 
			"0: data": {
				"srcIndexStart": "6776", 
				"data": "TOKEN_CTOR_NONTERMFIRST", 
				"srcLength": "25"
			}
		}, 
		"141: data": {
			"srcIndexStart": "6803", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"142: code": {
			"srcIndexStart": "6841", 
			"param 0": "inline", 
			"data": "static if(staticSymbolType == SymbolType.NonTerminal) {", 
			"srcLength": "71", 
			"0: data": {
				"srcIndexStart": "6855", 
				"data": "static if(staticSymbolType == SymbolType.NonTerminal) {", 
				"srcLength": "55"
			}
		}, 
		"143: data": {
			"srcIndexStart": "6912", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"144: apiHeadPlain": {
			"srcIndexStart": "6921", 
			"data": "BLOCK_ELSE", 
			"srcLength": "29", 
			"0: data": {
				"srcIndexStart": "6936", 
				"data": "BLOCK_ELSE", 
				"srcLength": "12"
			}
		}, 
		"145: data": {
			"srcIndexStart": "6950", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"146: code": {
			"srcIndexStart": "6988", 
			"param 0": "inline", 
			"data": "} else {", 
			"srcLength": "24", 
			"0: data": {
				"srcIndexStart": "7002", 
				"data": "} else {", 
				"srcLength": "8"
			}
		}, 
		"147: data": {
			"srcIndexStart": "7012", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"148: apiHeadPlain": {
			"srcIndexStart": "7021", 
			"data": "TOKEN_CTOR_END", 
			"srcLength": "33", 
			"0: data": {
				"srcIndexStart": "7036", 
				"data": "TOKEN_CTOR_END", 
				"srcLength": "16"
			}
		}, 
		"149: data": {
			"srcIndexStart": "7054", 
			"data": "
<div class=\"api-def\">
	Replaced with ", 
			"srcLength": "38"
		}, 
		"150: code": {
			"srcIndexStart": "7092", 
			"param 0": "inline", 
			"data": "}", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "7106", 
				"data": "}", 
				"srcLength": "1"
			}
		}, 
		"151: data": {
			"srcIndexStart": "7109", 
			"data": "
</div>

", 
			"srcLength": "9"
		}, 
		"152: apiHeadPlain": {
			"srcIndexStart": "7118", 
			"data": "TOKEN_CLASSNAME_TOPNODE", 
			"srcLength": "42", 
			"0: data": {
				"srcIndexStart": "7133", 
				"data": "TOKEN_CLASSNAME_TOPNODE", 
				"srcLength": "25"
			}
		}, 
		"153: data": {
			"srcIndexStart": "7160", 
			"data": "
<div class=\"api-def\">
	Inserts the name of the nonterminal ", 
			"srcLength": "60"
		}, 
		"154: typeName": {
			"srcIndexStart": "7220", 
			"data": "Token_{languageName}!{symbol}", 
			"srcLength": "42", 
			"0: data": {
				"srcIndexStart": "7231", 
				"data": "Token_{languageName}!{symbol}", 
				"srcLength": "29"
			}
		}, 
		"155: data": {
			"srcIndexStart": "7262", 
			"data": "
	that is the root, or \"Start Symbol\", of the parse tree. Ie, this is the
	type of ", 
			"srcLength": "83"
		}, 
		"156: pageLink": {
			"srcIndexStart": "7345", 
			"param 0": "Parser#Parser_parseTree", 
			"data": "Parser_{languageName}.parseTree", 
			"srcLength": "68", 
			"0: data": {
				"srcIndexStart": "7380", 
				"data": "Parser_{languageName}.parseTree", 
				"srcLength": "31"
			}
		}, 
		"157: data": {
			"srcIndexStart": "7413", 
			"data": ".
</div>

", 
			"srcLength": "10"
		}, 
		"158: apiHeadPlain": {
			"srcIndexStart": "7423", 
			"data": "TOKEN_TEMPLATE_1P", 
			"srcLength": "36", 
			"0: data": {
				"srcIndexStart": "7438", 
				"data": "TOKEN_TEMPLATE_1P", 
				"srcLength": "19"
			}
		}, 
		"159: data": {
			"srcIndexStart": "7459", 
			"data": "
", 
			"srcLength": "1"
		}, 
		"160: apiHeadPlain": {
			"srcIndexStart": "7460", 
			"data": "TOKEN_TEMPLATE_2P", 
			"srcLength": "36", 
			"0: data": {
				"srcIndexStart": "7475", 
				"data": "TOKEN_TEMPLATE_2P", 
				"srcLength": "19"
			}
		}, 
		"161: data": {
			"srcIndexStart": "7496", 
			"data": "
", 
			"srcLength": "1"
		}, 
		"162: apiHeadPlain": {
			"srcIndexStart": "7497", 
			"data": "TOKEN_TEMPLATE_RULE", 
			"srcLength": "38", 
			"0: data": {
				"srcIndexStart": "7512", 
				"data": "TOKEN_TEMPLATE_RULE", 
				"srcLength": "21"
			}
		}, 
		"163: data": {
			"srcIndexStart": "7535", 
			"data": "
<div class=\"api-def\">
	Inserts the bodies of various helper templates for referring to
	the various static-style token types.
</div>

", 
			"srcLength": "135"
		}, 
		"164: apiHeadPlain": {
			"srcIndexStart": "7670", 
			"data": "SUBTOKENTYPE_TEMPLATE", 
			"srcLength": "40", 
			"0: data": {
				"srcIndexStart": "7685", 
				"data": "SUBTOKENTYPE_TEMPLATE", 
				"srcLength": "23"
			}
		}, 
		"165: data": {
			"srcIndexStart": "7710", 
			"data": "
<div class=\"api-def\">
	Inserts the implementation of the ", 
			"srcLength": "58"
		}, 
		"166: code": {
			"srcIndexStart": "7768", 
			"param 0": "inline", 
			"data": "SubTokenType_myLang", 
			"srcLength": "35", 
			"0: data": {
				"srcIndexStart": "7782", 
				"data": "SubTokenType_myLang", 
				"srcLength": "19"
			}
		}, 
		"167: data": {
			"srcIndexStart": "7803", 
			"data": "
	template used by
	", 
			"srcLength": "20"
		}, 
		"168: pageLink": {
			"srcIndexStart": "7823", 
			"param 0": "Token#Token_sub", 
			"data": "Token_{languageName}!{rule}.sub(int index)", 
			"srcLength": "71", 
			"0: data": {
				"srcIndexStart": "7850", 
				"data": "Token_{languageName}!{rule}.sub(int index)", 
				"srcLength": "42"
			}
		}, 
		"169: data": {
			"srcIndexStart": "7894", 
			"data": "
	to determine the correct static-style token type for each subtoken of a
	", 
			"srcLength": "75"
		}, 
		"170: pageLink": {
			"srcIndexStart": "7969", 
			"param 0": "Token#Token__languageName___rule_", 
			"data": "Token_{languageName}!{rule}", 
			"srcLength": "74", 
			"0: data": {
				"srcIndexStart": "8014", 
				"data": "Token_{languageName}!{rule}", 
				"srcLength": "27"
			}
		}, 
		"171: data": {
			"srcIndexStart": "8043", 
			"data": ".
</div>

", 
			"srcLength": "10"
		}, 
		"172: apiHeadPlain": {
			"srcIndexStart": "8053", 
			"data": "SET_STATICID_TERM", 
			"srcLength": "36", 
			"0: data": {
				"srcIndexStart": "8068", 
				"data": "SET_STATICID_TERM", 
				"srcLength": "19"
			}
		}, 
		"173: data": {
			"srcIndexStart": "8089", 
			"data": "
<div class=\"api-def\">
	<span style=\"font-style: italic\">To be documented...</span>
</div>

", 
			"srcLength": "92"
		}, 
		"174: apiHeadPlain": {
			"srcIndexStart": "8181", 
			"data": "SET_STATICID_NONTERM", 
			"srcLength": "39", 
			"0: data": {
				"srcIndexStart": "8196", 
				"data": "SET_STATICID_NONTERM", 
				"srcLength": "22"
			}
		}, 
		"175: data": {
			"srcIndexStart": "8220", 
			"data": "
<div class=\"api-def\">
	<span style=\"font-style: italic\">To be documented...</span>
</div>

", 
			"srcLength": "92"
		}, 
		"176: apiHeadPlain": {
			"srcIndexStart": "8312", 
			"data": "RULE_ID_OF", 
			"srcLength": "29", 
			"0: data": {
				"srcIndexStart": "8327", 
				"data": "RULE_ID_OF", 
				"srcLength": "12"
			}
		}, 
		"177: data": {
			"srcIndexStart": "8341", 
			"data": "
<div class=\"api-def\">
	<span style=\"font-style: italic\">To be documented...</span>
</div>

", 
			"srcLength": "92"
		}, 
		"178: apiHeadPlain": {
			"srcIndexStart": "8433", 
			"data": "LANG_STATICDATA", 
			"srcLength": "34", 
			"0: data": {
				"srcIndexStart": "8448", 
				"data": "LANG_STATICDATA", 
				"srcLength": "17"
			}
		}, 
		"179: data": {
			"srcIndexStart": "8467", 
			"data": "
<div class=\"api-def\">
	Used to insert all the data from the given ", 
			"srcLength": "67"
		}, 
		"180: pageLink": {
			"srcIndexStart": "8534", 
			"param 0": "CGT", 
			"data": "CGT", 
			"srcLength": "20", 
			"0: data": {
				"srcIndexStart": "8549", 
				"data": "CGT", 
				"srcLength": "3"
			}
		}, 
		"181: data": {
			"srcIndexStart": "8554", 
			"data": " file
	into the static-style ", 
			"srcLength": "29"
		}, 
		"182: typeName": {
			"srcIndexStart": "8583", 
			"data": "Language_{languageName}", 
			"srcLength": "36", 
			"0: data": {
				"srcIndexStart": "8594", 
				"data": "Language_{languageName}", 
				"srcLength": "23"
			}
		}, 
		"183: data": {
			"srcIndexStart": "8619", 
			"data": ".
</div>

", 
			"srcLength": "10"
		}, 
		"184: apiHeadPlain": {
			"srcIndexStart": "8629", 
			"data": "INIT_SYMBOL_LOOKUP", 
			"srcLength": "37", 
			"0: data": {
				"srcIndexStart": "8644", 
				"data": "INIT_SYMBOL_LOOKUP", 
				"srcLength": "20"
			}
		}, 
		"185: data": {
			"srcIndexStart": "8666", 
			"data": "
<div class=\"api-def\">
	Used in the ", 
			"srcLength": "36"
		}, 
		"186: typeName": {
			"srcIndexStart": "8702", 
			"data": "Language_{languageName}", 
			"srcLength": "36", 
			"0: data": {
				"srcIndexStart": "8713", 
				"data": "Language_{languageName}", 
				"srcLength": "23"
			}
		}, 
		"187: data": {
			"srcIndexStart": "8738", 
			"data": " constructor to insert
	code that initializes the ", 
			"srcLength": "50"
		}, 
		"188: ident": {
			"srcIndexStart": "8788", 
			"data": "symbolLookup", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "8796", 
				"data": "symbolLookup", 
				"srcLength": "12"
			}
		}, 
		"189: data": {
			"srcIndexStart": "8810", 
			"data": " table.
</div>

", 
			"srcLength": "16"
		}, 
		"190: apiHeadPlain": {
			"srcIndexStart": "8826", 
			"data": "LOOKUP_SYMBOL", 
			"srcLength": "32", 
			"0: data": {
				"srcIndexStart": "8841", 
				"data": "LOOKUP_SYMBOL", 
				"srcLength": "15"
			}
		}, 
		"191: data": {
			"srcIndexStart": "8858", 
			"data": "
<div class=\"api-def\">
	Used to insert most of the body code for the
	", 
			"srcLength": "70"
		}, 
		"192: typeName": {
			"srcIndexStart": "8928", 
			"data": "Language_{languageName}", 
			"srcLength": "36", 
			"0: data": {
				"srcIndexStart": "8939", 
				"data": "Language_{languageName}", 
				"srcLength": "23"
			}
		}, 
		"193: ident": {
			"srcIndexStart": "8964", 
			"data": ".staticLookupSymbol()", 
			"srcLength": "31", 
			"0: data": {
				"srcIndexStart": "8972", 
				"data": ".staticLookupSymbol()", 
				"srcLength": "21"
			}
		}, 
		"194: data": {
			"srcIndexStart": "8995", 
			"data": " function.
</div>


<h4>svars (Store Vars):</h4>
<p>
	These are fairly complex compared to the cvars and mvars.
	They involve the use multiple distinct forms:
</p>
", 
			"srcLength": "164"
		}, 
		"195: code": {
			"srcIndexStart": "9159", 
			"param 0": "plain", 
			"data": "/+S:TAG_NAME:STORE+/ code here /+E:TAG_NAME:STORE+/
/+P:TAG_NAME+/
/+S:TAG_NAME:SOME_NAME+/ code here /+E:TAG_NAME:SOME_NAME+/
/+P:TAG_NAME:SOME_NAME+/", 
			"srcLength": "172", 
			"0: data": {
				"srcIndexStart": "9172", 
				"data": "", 
				"srcLength": "1"
			}, 
			"1: data": {
				"srcIndexStart": "9173", 
				"data": "/+S:TAG_NAME:STORE+/ code here /+E:TAG_NAME:STORE+/
/+P:TAG_NAME+/
/+S:TAG_NAME:SOME_NAME+/ code here /+E:TAG_NAME:SOME_NAME+/
/+P:TAG_NAME:SOME_NAME+/", 
				"srcLength": "155"
			}, 
			"2: data": {
				"srcIndexStart": "9328", 
				"data": "", 
				"srcLength": "1"
			}
		}, 
		"196: data": {
			"srcIndexStart": "9331", 
			"data": "
<p>
	First, the form ", 
			"srcLength": "22"
		}, 
		"197: code": {
			"srcIndexStart": "9353", 
			"param 0": "inline", 
			"data": "/+S:TAG_NAME:STORE+/ code here /+E:TAG_NAME:STORE+/", 
			"srcLength": "67", 
			"0: data": {
				"srcIndexStart": "9367", 
				"data": "/+S:TAG_NAME:STORE+/ code here /+E:TAG_NAME:STORE+/", 
				"srcLength": "51"
			}
		}, 
		"198: data": {
			"srcIndexStart": "9420", 
			"data": "
	is used to tell StaticLang to \"store\" the code inside.
	The code ", 
			"srcLength": "67"
		}, 
		"199: code": {
			"srcIndexStart": "9487", 
			"param 0": "inline", 
			"data": "code here", 
			"srcLength": "25", 
			"0: data": {
				"srcIndexStart": "9501", 
				"data": "code here", 
				"srcLength": "9"
			}
		}, 
		"200: data": {
			"srcIndexStart": "9512", 
			"data": " is stored, but the whole set of tags
	are removed and replaced with nothing.
</p>
<p>
	Then, the form ", 
			"srcLength": "103"
		}, 
		"201: code": {
			"srcIndexStart": "9615", 
			"param 0": "inline", 
			"data": "/+P:TAG_NAME+/", 
			"srcLength": "30", 
			"0: data": {
				"srcIndexStart": "9629", 
				"data": "/+P:TAG_NAME+/", 
				"srcLength": "14"
			}
		}, 
		"202: data": {
			"srcIndexStart": "9645", 
			"data": " is used. The stored code
	is inserted into some internally-defined boilerplate code, repeated however
	many times necessary (determined by the ", 
			"srcLength": "144"
		}, 
		"203: ident": {
			"srcIndexStart": "9789", 
			"data": "TAG_NAME", 
			"srcLength": "18", 
			"0: data": {
				"srcIndexStart": "9797", 
				"data": "TAG_NAME", 
				"srcLength": "8"
			}
		}, 
		"204: data": {
			"srcIndexStart": "9807", 
			"data": "
	and the language), surrounding boilerplate is added, and
	then the final result is inserted in.
</p>
<p>
	Within the \"stored\" code, the final two forms can be used to insert certain
	data that's different for each repetition.
</p>


", 
			"srcLength": "235"
		}, 
		"205: apiHeadPlain": {
			"srcIndexStart": "10042", 
			"data": "ACCEPT_TERM", 
			"srcLength": "30", 
			"0: data": {
				"srcIndexStart": "10057", 
				"data": "ACCEPT_TERM", 
				"srcLength": "13"
			}
		}, 
		"206: data": {
			"srcIndexStart": "10072", 
			"data": "
", 
			"srcLength": "1"
		}, 
		"207: apiHeadPlain": {
			"srcIndexStart": "10073", 
			"data": "ACCEPT_TERM:STORE", 
			"srcLength": "36", 
			"0: data": {
				"srcIndexStart": "10088", 
				"data": "ACCEPT_TERM:STORE", 
				"srcLength": "19"
			}
		}, 
		"208: data": {
			"srcIndexStart": "10109", 
			"data": "
<div class=\"api-def\">
<p>
	Inside the lexer, this stores/inserts the code to accept and create a new
	terminal token of the appropriate type.
</p>
<p>
	This is repeated (along with boilerplate) for each possible terminal
	token type, such as
	", 
			"srcLength": "244"
		}, 
		"209: code": {
			"srcIndexStart": "10353", 
			"param 0": "inline", 
			"data": "Token_myLang!(SymbolType.Whitespace, \"Whitespace\")", 
			"srcLength": "66", 
			"0: data": {
				"srcIndexStart": "10367", 
				"data": "Token_myLang!(SymbolType.Whitespace, \"Whitespace\")", 
				"srcLength": "50"
			}
		}, 
		"210: data": {
			"srcIndexStart": "10419", 
			"data": "
	or
	", 
			"srcLength": "6"
		}, 
		"211: code": {
			"srcIndexStart": "10425", 
			"param 0": "inline", 
			"data": "Token_myLang!(SymbolType.Terminal, \"Number\")", 
			"srcLength": "60", 
			"0: data": {
				"srcIndexStart": "10439", 
				"data": "Token_myLang!(SymbolType.Terminal, \"Number\")", 
				"srcLength": "44"
			}
		}, 
		"212: data": {
			"srcIndexStart": "10485", 
			"data": ".
</p>
</div>
", 
			"srcLength": "14"
		}, 
		"213: apiHeadPlain": {
			"srcIndexStart": "10499", 
			"data": "ACCEPT_TERM:TOKEN_CLASSNAME", 
			"srcLength": "46", 
			"0: data": {
				"srcIndexStart": "10514", 
				"data": "ACCEPT_TERM:TOKEN_CLASSNAME", 
				"srcLength": "29"
			}
		}, 
		"214: data": {
			"srcIndexStart": "10545", 
			"data": "
<div class=\"api-def\">
	Inserts the class name for a particular type of terminal token, such as
	", 
			"srcLength": "97"
		}, 
		"215: code": {
			"srcIndexStart": "10642", 
			"param 0": "inline", 
			"data": "Token_myLang!(SymbolType.Whitespace, \"Whitespace\")", 
			"srcLength": "66", 
			"0: data": {
				"srcIndexStart": "10656", 
				"data": "Token_myLang!(SymbolType.Whitespace, \"Whitespace\")", 
				"srcLength": "50"
			}
		}, 
		"216: data": {
			"srcIndexStart": "10708", 
			"data": "
	or
	", 
			"srcLength": "6"
		}, 
		"217: code": {
			"srcIndexStart": "10714", 
			"param 0": "inline", 
			"data": "Token_myLang!(SymbolType.Terminal, \"Number\")", 
			"srcLength": "60", 
			"0: data": {
				"srcIndexStart": "10728", 
				"data": "Token_myLang!(SymbolType.Terminal, \"Number\")", 
				"srcLength": "44"
			}
		}, 
		"218: data": {
			"srcIndexStart": "10774", 
			"data": ".
</div>
", 
			"srcLength": "9"
		}, 
		"219: apiHeadPlain": {
			"srcIndexStart": "10783", 
			"data": "REDUCE", 
			"srcLength": "25", 
			"0: data": {
				"srcIndexStart": "10798", 
				"data": "REDUCE", 
				"srcLength": "8"
			}
		}, 
		"220: data": {
			"srcIndexStart": "10808", 
			"data": "
", 
			"srcLength": "1"
		}, 
		"221: apiHeadPlain": {
			"srcIndexStart": "10809", 
			"data": "REDUCE:STORE", 
			"srcLength": "31", 
			"0: data": {
				"srcIndexStart": "10824", 
				"data": "REDUCE:STORE", 
				"srcLength": "14"
			}
		}, 
		"222: data": {
			"srcIndexStart": "10840", 
			"data": "
<div class=\"api-def\">
<p>
	Inside the parser, this stores/inserts the code to reduce a group of
	subtokens into a new nonterminal token of the appropriate type.
</p>
<p>
	This is repeated (along with boilerplate) for each possible
	", 
			"srcLength": "233"
		}, 
		"223: typeName": {
			"srcIndexStart": "11073", 
			"data": "Token_{languageName}!{rule}", 
			"srcLength": "41", 
			"0: data": {
				"srcIndexStart": "11084", 
				"data": "Token_{languageName}!{rule}", 
				"srcLength": "28"
			}
		}, 
		"224: data": {
			"srcIndexStart": "11114", 
			"data": " type, such as
	", 
			"srcLength": "16"
		}, 
		"225: code": {
			"srcIndexStart": "11130", 
			"param 0": "inline", 
			"data": "Token_myLang!(\"&lt;Mult Exp&gt;\", 5)", 
			"srcLength": "46", 
			"0: data": {
				"srcIndexStart": "11144", 
				"data": "Token_myLang!(\"<Mult Exp>\", 5)", 
				"srcLength": "30"
			}
		}, 
		"226: data": {
			"srcIndexStart": "11176", 
			"data": " (where \"5\" is the ruleId).
</p>
</div>
", 
			"srcLength": "40"
		}, 
		"227: apiHeadPlain": {
			"srcIndexStart": "11216", 
			"data": "REDUCE:TOKEN_CLASSNAME", 
			"srcLength": "41", 
			"0: data": {
				"srcIndexStart": "11231", 
				"data": "REDUCE:TOKEN_CLASSNAME", 
				"srcLength": "24"
			}
		}, 
		"228: data": {
			"srcIndexStart": "11257", 
			"data": "
<div class=\"api-def\">
	Inserts the class name for a particular type of nonterminal rule token,
	such as
	", 
			"srcLength": "106"
		}, 
		"229: code": {
			"srcIndexStart": "11363", 
			"param 0": "inline", 
			"data": "Token_myLang!(\"&lt;Mult Exp&gt;\", 5)", 
			"srcLength": "46", 
			"0: data": {
				"srcIndexStart": "11377", 
				"data": "Token_myLang!(\"<Mult Exp>\", 5)", 
				"srcLength": "30"
			}
		}, 
		"230: data": {
			"srcIndexStart": "11409", 
			"data": " (where \"5\" is the ruleId).
</div>


<h4>mvars (Modify Vars):</h4>
<p>
	These take the code between the ", 
			"srcLength": "104"
		}, 
		"231: code": {
			"srcIndexStart": "11513", 
			"param 0": "inline", 
			"data": "S", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "11527", 
				"data": "S", 
				"srcLength": "1"
			}
		}, 
		"232: data": {
			"srcIndexStart": "11530", 
			"data": " and ", 
			"srcLength": "5"
		}, 
		"233: code": {
			"srcIndexStart": "11535", 
			"param 0": "inline", 
			"data": "E", 
			"srcLength": "17", 
			"0: data": {
				"srcIndexStart": "11549", 
				"data": "E", 
				"srcLength": "1"
			}
		}, 
		"234: data": {
			"srcIndexStart": "11552", 
			"data": "
	tags, and modify it in some predetermined way.
</p>
", 
			"srcLength": "54"
		}, 
		"235: apiHeadPlain": {
			"srcIndexStart": "11606", 
			"data": "STATIC_IDENT", 
			"srcLength": "31", 
			"0: data": {
				"srcIndexStart": "11621", 
				"data": "STATIC_IDENT", 
				"srcLength": "14"
			}
		}, 
		"236: data": {
			"srcIndexStart": "11637", 
			"data": "
<div class=\"api-def\">
	Converts an identifier such as ", 
			"srcLength": "55"
		}, 
		"237: code": {
			"srcIndexStart": "11692", 
			"param 0": "inline", 
			"data": "fooBar", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "11706", 
				"data": "fooBar", 
				"srcLength": "6"
			}
		}, 
		"238: data": {
			"srcIndexStart": "11714", 
			"data": " to ", 
			"srcLength": "4"
		}, 
		"239: code": {
			"srcIndexStart": "11718", 
			"param 0": "inline", 
			"data": "staticFooBar", 
			"srcLength": "28", 
			"0: data": {
				"srcIndexStart": "11732", 
				"data": "staticFooBar", 
				"srcLength": "12"
			}
		}, 
		"240: data": {
			"srcIndexStart": "11746", 
			"data": ".
</div>
", 
			"srcLength": "9"
		}, 
		"241: apiHeadPlain": {
			"srcIndexStart": "11755", 
			"data": "LANG_IDENT", 
			"srcLength": "29", 
			"0: data": {
				"srcIndexStart": "11770", 
				"data": "LANG_IDENT", 
				"srcLength": "12"
			}
		}, 
		"242: data": {
			"srcIndexStart": "11784", 
			"data": "
<div class=\"api-def\">
	Converts an identifier such as ", 
			"srcLength": "55"
		}, 
		"243: code": {
			"srcIndexStart": "11839", 
			"param 0": "inline", 
			"data": "fooBar", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "11853", 
				"data": "fooBar", 
				"srcLength": "6"
			}
		}, 
		"244: data": {
			"srcIndexStart": "11861", 
			"data": " to ", 
			"srcLength": "4"
		}, 
		"245: code": {
			"srcIndexStart": "11865", 
			"param 0": "inline", 
			"data": "fooBar_nameOfLang", 
			"srcLength": "33", 
			"0: data": {
				"srcIndexStart": "11879", 
				"data": "fooBar_nameOfLang", 
				"srcLength": "17"
			}
		}, 
		"246: data": {
			"srcIndexStart": "11898", 
			"data": ".
	For instance, if the language name (ie, the ", 
			"srcLength": "47"
		}, 
		"247: ident": {
			"srcIndexStart": "11945", 
			"data": "SHORT_NAME", 
			"srcLength": "20", 
			"0: data": {
				"srcIndexStart": "11953", 
				"data": "SHORT_NAME", 
				"srcLength": "10"
			}
		}, 
		"248: data": {
			"srcIndexStart": "11965", 
			"data": " from above)
	is ", 
			"srcLength": "17"
		}, 
		"249: code": {
			"srcIndexStart": "11982", 
			"param 0": "inline", 
			"data": "myLang", 
			"srcLength": "22", 
			"0: data": {
				"srcIndexStart": "11996", 
				"data": "myLang", 
				"srcLength": "6"
			}
		}, 
		"250: data": {
			"srcIndexStart": "12004", 
			"data": ", then
	", 
			"srcLength": "8"
		}, 
		"251: code": {
			"srcIndexStart": "12012", 
			"param 0": "inline", 
			"data": "/+S:LANG_IDENT+/fooBar/+E:LANG_IDENT+/", 
			"srcLength": "54", 
			"0: data": {
				"srcIndexStart": "12026", 
				"data": "/+S:LANG_IDENT+/fooBar/+E:LANG_IDENT+/", 
				"srcLength": "38"
			}
		}, 
		"252: data": {
			"srcIndexStart": "12066", 
			"data": "
	becomes ", 
			"srcLength": "10"
		}, 
		"253: code": {
			"srcIndexStart": "12076", 
			"param 0": "inline", 
			"data": "fooBar_myLang", 
			"srcLength": "29", 
			"0: data": {
				"srcIndexStart": "12090", 
				"data": "fooBar_myLang", 
				"srcLength": "13"
			}
		}, 
		"254: data": {
			"srcIndexStart": "12105", 
			"data": ".
</div>", 
			"srcLength": "9"
		}
	}
}