Skip to content

Comment on Parsing Text with Nomparent

Comments

You can use lazy_static to have global Regex and call that from a Nom function. There is no special support from Nom required.

Alternatively one can build a parser combinator library that compiles to a large Regex. That Regex would return a big Matcher, so a convenience wrapper for that would need to be made usable by a wrapper created from the same parser combinator.

Alternatively one can build a parser combinator library that compiles to a large Regex.

Maybe I'm misunderstanding what you meant, but I don't think you can do this in the general case (since parser combinators can describe languages that are more complicated than/not describable within regular languages).

I wrote a crate to facilitate this:*

https://github.com/dfhoughton/pidgin

As it says there, you can only build non-recursive grammars this way.

And the reason I wrote that crate:

https://github.com/dfhoughton/two-timer

And the reason I wrote that crate:

https://github.com/dfhoughton/jobrog

And having written these crates, I went back to writing Ruby for my day job. I am not a very experienced rustacean, and what skill I developed writing these things has faded, but I use the last one daily, so the regex-based parser is still working pretty well.

* It's a "parser combinator library" inasmuch as it allows you to write reusable parsing rules that can be components of other rules.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.