Resolve "Make path parser have a tokenizer/parser"

Closes #219 (closed)

Rather than processing path data character by character, building up numbers as we go, turn the path into a sequence of tokens (command, number, flag or comma) and do the path processing on them.

Flag tokens are a little weird; there's no way for the lexer to know if something should be a number or flag without input from the parsing context.

Uses std::str::parse:: and std::str::parse:: to do the number parsing once we have found a region that looks like a number.

This approach is slower than the hand rolled number parsing; added benchmark to compare.

Edited by Federico Mena Quintero

Merge request reports