On Fri, Jan 4, 2013 at 10:05 AM, Kirk, Benjamin (JSC-EG311) <
benjamin.kir...@nasa.gov> wrote:

> On Jan 4, 2013, at 11:00 AM, Cody Permann <codyperm...@gmail.com> wrote:
>
> > Yes a very decent idea, however would we attempt to distribute
> boost::regex with libMesh?  I haven't looked at it yet, but fear that it
> might be one of those features in boost that requires 1 bajillion header
> files.  If it's only a few, then this would work nicely. :)
>
> Even worse:
> /software/x86_64/boost/1.52.0-gcc-4.6/lib/libboost_regex.so
>
> So no, we probably wouldn't distribute it, but certainly could take
> advantage of it if it is there - giving your app a fallback option in case
> you need an older compiler.
>
>
I thought I'd send a little update on what I've found when digging in RE
land.  The T-Rex library turned out to be a little too underpowered so I'm
definitely not going to go that route.  It's lack of non-greedy operators
and other odd "bugs" made it very undesirable.  I had a number of RE cases
that it wasn't able to handle that I can run through Perl and Python
without issues.

On Tuesday, I messed around a bit trying to get the <regex> library to work
and had no success on my Mac with GCC 4.7.2.  The c++11 status page says
"partial" for many of the regex specific pieces so it might be some time
before we'd even want to think about trying to use that portion of the
library in libMesh.  Everything compiled, but it just isn't fully
implemented yet so some of the functions just return without doing
anything.  I was unable to get even simple examples from the web to run...

The good news is that I have found a very nice RE solution:
http://pcre.sourceforge.net/
As the name implies it a full Perl-Compatible-RE implementation, so I've
hit the mother-load.  The build system and organization of the source is
very well done so it can be redistributed with another library with little
effort.  Following the "no-configure" instructions, I renamed a coupled of
generic pre-generated header files and then added the source to a contrib
directory in MOOSE.  Other than one extra "-D" option, it compiled with the
normal libMesh compile rules.  If you aren't concerned with full Unicode
support then it's also very small.  It only contains about a dozen C files
for the library itself and compiles in a second or two.  I've cranked
through some very nasty RegExs and it's working flawlessly!  It support
capturing, named capture, anchors, atomics, all the advanced stuff!  Oh and
the license is BSD.

It includes a few C++ wrappers too so I might be able to use it as is, but
I might wrap it so that I can tweak it a bit.  Anyway, this is exactly what
I need to accomplish the advanced parsing that I need.  I'm going to
continue working with it in MOOSE for right now, but I'd be happy to push
it up to libMesh if there is interest.  If it ends up in libMesh, I think
that wrapping the library will be the right way to move forward so that we
could eventually use the standard regex library once it is more widely
available.

Cody


> BTW, have you looked at Cantera's XML input format and parsing?  Not that
> I love XML or anything, but in the interest in reusing existing capability…
>
> -Ben
------------------------------------------------------------------------------
Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS,
MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current
with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft
MVPs and experts. ON SALE this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122712
_______________________________________________
Libmesh-devel mailing list
Libmesh-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libmesh-devel

Reply via email to