Genivia / RE-flex

A high-performance C++ regex library and lexical analyzer generator with Unicode support. Extends Flex++ with Unicode support, indent/dedent anchors, lazy quantifiers, functions for lex and syntax error reporting and more. Seamlessly integrates with Bison and other parsers.
https://www.genivia.com/doc/reflex/html
BSD 3-Clause "New" or "Revised" License
504 stars 85 forks source link

In example yaml.l: wrong arg to parse_seq() #159

Closed geert56 closed 1 year ago

geert56 commented 1 year ago

In parse_map on line 650 parse_seq(val) must in all likelihood be parse_seq(key) in my opinion.

genivia-inc commented 1 year ago

Thanks for the feedback. You're correct.

geert56 commented 1 year ago

I found some more deficiencies in yaml.l. I decided to start from scratch instead of trying to reverse engineer the original code. YAML is surprisingly complex and hard to lex/parse. I assume this issue may be closed.

genivia-inc commented 1 year ago

Edited. See next comment

The problem is a regression issue in reflex itself. The original reflex 1.5.8 version works as expected! So my testing back then covered many practical cases.

genivia-inc commented 1 year ago

Correction. The yaml.l problem is not a regression issue. I was looking into another issue and ran some tests. Looking at the test results of previous versions to compare, I interpreted the yaml test results incorrectly.