Changes for version 1.01 - 2013-10-29

  • Set utf8 (sic) unilaterally on the log output, if logging. This allows STDOUT to be redirected. For non-utf8 input files (data/*.svg except data/utf8.01.svg), it will not be noticed. For data/utf8.01.svg, and similar user files, it is vital if log ouptut is being captured. Note: utf-8 (sic) is not supported by Log::Handler, as of V 0.80. I'll send the author a patch.
  • Fix counting of points within polygons and polylines. This was only a convenience, but was a bug.
  • Change hashref output in the case of commands, as in data/ellipse.02.log: Item Type Name Value 29 command - M To what it should have been all along: 29 command M -
  • Eliminate the action object, and use some globals instead. This means the action class was re-written to avoid using Moo. Global variables are declared in the action class, and initialized in the SAX handler class. This is hardly ideal. We await Marpa::R3.
  • The action functions now return the hashrefs which used to be pushed onto a stack.
  • Add the decode_result() method in SAXHandler.pm, to handle arbitrarily nested arrayrefs and hashrefs. This is the code required to unscramble what's returned by Marpa as the result of the parse. The unscrambling makes the hashrefs returned by the action subs available as a list.
  • Edit grammar slightly because we now use Marpa instead of Set::Array to gather results. This just consists in making some tokens hidden from the semantics, i.e. in changing: translate ::= 'translate' '(' number_set ')' action => command To: translate ::= 'translate' ('(') number_set (')') action => command
  • Update docs in each module.
  • Add scripts/svg2log.pl to convert data/*.svg into data/*.log.
  • Add t/test.real.data.t to check output of parse.file.pl against data/*.log.
  • Rename t/runner.t to t/test.fake.data.t.

Documentation

Generate MarpaX::Languages::SVG::Parser's html/*.svg and html/index.html.
Parsing any SVG file
Test parsing of some SVG path/attribute combinations
Test parsing a set of artificial files

Modules

A nested SVG parser, using XML::SAX and Marpa::R2
A nested SVG parser, using XML::SAX and Marpa::R2
A config manager for use by MarpaX::Languages::SVG::Parser
A nested SVG parser, using XML::SAX and Marpa::R2
A nested SVG parser, using XML::SAX and Marpa::R2