non-functional development branch commit
switching all codebase to implementation based on spec nodes and template nodes
changed placeholders to default value suppliers
added context stacks
added new meta generators
non-functional development branch commit
started moving template nodes to their own folder (for now only constant string)
removed Context
changed Subfactories into Dispatcher, with single-map type-based node-to-factory dispatch
rewriting template factory (WIP)
minor docs changes in include
added include spec node
added type utils
finished changing XML factory so that it uses dispatcher
changed to constructor-based XML spec nodes implementation
added XML types meta generator
Started library-base implementation (in js-core).
This is a complete redesign, that aims to separate the module into several parts:
core, simple templates, XML templates, HTML templates.
This commit incorporates the core.
>_< must make this simpler
now all core modules export:
 spec: functions
 all other: constructors
 types: common node types (strings)
implemented new template builder
core:
 output:
  generate function to process entire template
  superior arg to pushParams
 params:
  managing superior params only by setter/getter
 spec:
  BaseNode, SpecNode, prepare instead of node, normalize
 template:
  fixed output generation: using output.generate
 types:
  changed GROUP to MACRO
  TERM
basic:
 builder:
  removed GROUP dispatch
  added TERM dispatch
  reimplemented to use SpecNode linked list
 spec:
  changed group to macro
  generating BaseNode instead of calling node
reduced repo to dev-core only
Merge branch 'dev-core-temp' into dev-core

Conflicts:
	js-templates/builder.js
	js-templates/spec.js
reduced repo to dev-core only
consumer: data.toString()
defaults: removed //JSUnusedGlobalSymbols
output: simplified (push|pop)Params
params: get to prototype, no prototype.superior(), superior renamed to outside
spec: no BaseNode, no prepare, SpecNode already correctly generated, but top-level macro is possible
renamed export to modules
renamed core.main to main
changed package.json from april1 to april1-core
empty on purpose
moved to core-modules, hope it works
YOU WILL NOT IGNORE MY GITIGNORE, GIT
LINE SEPARATORS
IT'S THE LINE SEPARATORS
moved to separate functions all initialization code inside constructors.
spec nodes reduced to type, sub.
spec node initialization reduced to wrapping all sub [i] that are not spec nodes in nodes of type term
type name constants values changed to lower case
added builder
added dispatch property to TemplateBuilder.
merged TemplateBuilder.buildNodes into build.
added common.
added string to Output.
moved TemplateBuilder encoding param into buffer param.
template module renamed to template_nodes.
added getTemplate function to template builder.
fixed bugs:
 insert properly reads key terminal
 list properly reads key and builds template
common string generator takes as argument map object instead of Parameterizer
added params constructor wrapper to params module
added nodeBuilder, createNodeBuilder, termArg to spec module
added simple test to confirm that all functions work as expected
added comments to gitignore, npmignore
expanded main to include the common external interface
added docs
renamed finishConstant to finishPending
renaming of local variables
more consistent implementation of constructors, with init and prototype
changed to array/based spec implementation where:
 node [0] is the type.
 macros are inlined upon node creation.
  exception: if the node itself is a macro,
   it is returned as a macro node, with node [0] === 'macro'
  the common builder handles this by wrapping its arguments in a macro
 constants are no longer wrapped in 'term' nodes
the builder is updated to handle the lack of 'term' nodes
removed constant builder from common dispatcher