The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl extension MarpaX::Demo::StringParser.

2.04  2016-12-26T11:38
	- Deprecate in favour of Marpa::Languages::Dash, which is a copy of this module.

2.03  Fri Feb  6 09:21:00 2015
	- Tree::DAG_Node V 1.24 changed the output indentation slightly, and the expected output was
		hard-coded in t/basic.t, so that was fixed.
	- Update Build.PL and Makefile.PL to require V 1.24 of Tree::DAG_Node.

2.02  Fri Oct 17 09:35:00 2014
	- Add explicit start rule to BNF, although Marpa allows this to be optional.
	- Expand the DASH definition of a graph to include starting or ending graphs with edges, or
		using contiguous edges. Explain these are not accepted by Graphviz, but the default renderer
		compensates, to keep Graphviz happy.
	- Bump required version of Tree::DAG_Node to 1.23, because of the latter's recent change in
		output format, as emitted by tree2string().

2.01  Sat Oct 11 12:02:00 2014
	- Validate event names differently.
	- Simplify the code in the main loop, _process().
	- Fix data/graph.04.dash.

2.00  Thu Oct  9 17:39:00 2014
	- Re-write the grammar for DASH (a wrapper around Graphviz's DOT), and also re-write the
		non-Marpa parsers for the strings with internal spaces.
	- Move the renderer from Graph::Easy::Marpa::Renderer::GraphViz2 into this module, and call it
		MarpaX::Demo::StringParser::Renderer.
	- Remove MarpaX::Demo::StringParser::Actions, since this new grammar relies exclusively on
		Marpa's event handling.
	- Delete Graph::Easy::Marpa from CPAN.
	- Re-write the docs, including a long explanation of the DASH language.
	- Change some of the examples.
	- Update the scripts, and add scripts/render.*.

1.10  Fri Sep 19 16:38:00 2014
	- Clean up bareword file handles.
	- Re-generate the demo files.
	- Rename data/*.dot to data/*.gv, to match other Graphviz-oriented modules.
		This required patching my own ge2svg.pl, which is not shipped with any package.
	- Switch from Perl6::Slurp to File::Slurp, to reduce the # of external module I use in all my modules.

1.09  Fri Sep 19 09:15:00 2014
	- Fix typo in repo in Build.PL.

1.08  Wed Sep 17 16:58:00 2014
	- Update Build.PL and Makefile.PL re putting this package on github.
	- Replace the deprecated 'action_object' parameter to Marpa::R2::Scanless::G with the 'semantics_package'
		parameter to Marpa::R2::Scanless::R.

1.07  Sat Feb 22 17:44:00 2014
	- Add 'lexeme default = latm => 1' to the grammar.
	- Make V 2.082 the minimum version for Marpa::R2.

1.06  Tue Jan 14 15:58:00 2014
	- Fix a typo in one of the samples in the docs:
		Old: -> {label: Start} -> {color: red} [node.1] {color: green] -> [node.2]
		New: -> {label: Start} -> {color: red} [node.1] {color: green} -> [node.2]
	- Add data/graph.04.ge, which is just a combination of samples from the docs.
	- Add installation instructions to the docs.
	- Remove 'use open qw(:std :utf8)' and 'use charnames qw(:full :short)' from all modules.
		'use open' is global (i.e. applies to /all/ modules), and I don't use any charnames.
		It does mean you have to use 'use open qw(:std :utf8)' in any scripts calling this code,
		if that's what you want to do.
	- Switch from bareword file handles to lexically-named file handles. This stop these types of msgs:
		Use of bareword filehandle in open at lib/MarpaX/Demo/StringParser.pm line 472.

1.05  Mon Jul 29 14:42:00 2013
	- Simplify the code in Actions.pm.
	- Add Marpa's homepage to the FAQ.
	- Fix the description in the FAQ where it described the grammar parsed as a version of DOT when it's actually
		a version of Graph::Easy::Marpa.
	- Add data/edge.06.* and html/edge.06.svg to demonstrate juxtaposition of edges without spaces.
	- Patch MarpaX::Demo::StringParser::Utils to call get_files() from MarpaX::Demo::StringParser::Filer, now
		that that method has been shifted out of *::Utils.
	- Clean up the docs in various ways.

1.04  Fri Jul 26 09:47:00 2013
	- Remove hard-coded temp dir name from t/ge2tokens.t, which was left over from testing the testing code.
	- Move sub edge() from Actions.pm into StringParser.pm, because it's never called by Marpa as an action.
		It was left in Actions.pm to simplify my switching back-and-forth between actions and pauses as I
		studied the behaviour of these 2 mechanisms.
	- Document that my usage of pauses is more of an intermediate/advanced usage rather than something for
		beginners.
	- Re-write docs where lexing and parsing is discussed, vis-a-vis the Marpa view of processing.
		This re-write also applies to the accompanying article mentioned in the docs.
	- Expand docs describing the methods. Some methods were not included in previous documentation.

1.03  Thu Jul 25 12:10:00 2013
	- Remove Regexp::Common from being 'use'd by MarpaX::Demo::StringParser. It was not used.
	- Add File::Temp to the pre-reqs.

1.02  Wed Jul 24 13:05:00 2013
	- Split Utils into Filer and Utils. The former does not use the config file.
		The test code used Utils, which loaded Config, which looked for a config file only installed on
		the authors PC.
	- Fix typo in die in sub process():
		Was: Unexpected lexeme '$event_name' without a pause.
		Is:  Unexpected lexeme '$lexeme_name' with a pause.

1.01  Tue Jul 23 17:52:00 2013
	- Simplify the grammar and hence the code.

1.00  Mon Jul 15 09:22:00 2013
	  - Original version