ENH: add alternative STL ASCII parsers

- In addition to the traditional Flex-based parser, added a Ragel-based
  parser and a handwritten one.

  Some representative timings for reading 5874387 points (1958129 tris):

      Flex   Ragel   Manual
      5.2s   4.8s    6.7s         total reading time
      3.8s   3.4s    5.3s         without point merging
This commit is contained in:
Mark Olesen
2018-04-16 10:20:45 +02:00
parent a8da75d27e
commit ea71484efa
21 changed files with 3373 additions and 193 deletions

View File

@ -191,7 +191,12 @@ int main(int argc, char *argv[])
Info<<"camel-case => " << (word("camel") & "case") << nl;
for (const auto& s : { " text with \"spaces'", "08/15 value" })
{
Info<<"validated \"" << s << "\" => "
// Character sequence
Info<<"validated 5 chars from \" => "
<< word::validate(s, s+5, true) << nl;
Info<<"validated (via string convert) \"" << s << "\" => "
<< word::validate(s, true) << nl;
}
Info<< nl;