Thread: [OT] flex, yacc, and bison

[OT] flex, yacc, and bison

From
"Jackson, DeJuan"
Date:
I need to parse this format:

<Database ftpdatabase [hostname[:port]]>[<DatabaseID somebody>][<DatabasePWD mypwd>][<Table ftp_users> [<Uname uname>]
[<CryptedPwdcryptedpwd>] [<FtpPath ftppath>]</Table>]
 
</Database>

That's all that I currently have.
So, which of these would be the best tool (I know little about any of them).
If anyone gets the urge to just whip out a quick grammar file for me it
would be much appreciated.
Or at least point me to a beginner level tutorial somewhere.

advTHANKSanceDEJ


Re: [HACKERS] [OT] flex, yacc, and bison

From
Tom Lane
Date:
"Jackson, DeJuan" <djackson@cpsgroup.com> writes:
> I need to parse this format:
> <Database ftpdatabase [hostname[:port]]>
>  [<DatabaseID somebody>]
>  [<DatabasePWD mypwd>]
>  [<Table ftp_users>
>   [<Uname uname>]
>   [<CryptedPwd cryptedpwd>]
>   [<FtpPath ftppath>]
>  </Table>]
> </Database>

That looks suspiciously like an SGML DTD to me...

Rather than doing the whole lex/yacc bit, I'd suggest finding some
ready-made SGML-parsing tools.  For instance, if you are handy with
Perl I think there are some SGML modules in CPAN ... certainly there
are HTML parsers, which'd probably be easy to adapt to the purpose.
        regards, tom lane


Re: [HACKERS] [OT] flex, yacc, and bison

From
Egon Schmid
Date:
Tom Lane wrote:
> 
> "Jackson, DeJuan" <djackson@cpsgroup.com> writes:
> > I need to parse this format:
> > <Database ftpdatabase [hostname[:port]]>
> >  [<DatabaseID somebody>]
> >  [<DatabasePWD mypwd>]
> >  [<Table ftp_users>
> >   [<Uname uname>]
> >   [<CryptedPwd cryptedpwd>]
> >   [<FtpPath ftppath>]
> >  </Table>]
> > </Database>
> 
> That looks suspiciously like an SGML DTD to me...
> 
> Rather than doing the whole lex/yacc bit, I'd suggest finding some
> ready-made SGML-parsing tools.  For instance, if you are handy with
> Perl I think there are some SGML modules in CPAN ... certainly there
> are HTML parsers, which'd probably be easy to adapt to the purpose.

That's definitly not an SGML DTD and it isn't either valid SGML. It will
be hard to find a Perl Module.

-Egon

PS: a small and quick test if my email address is valid


Re: [HACKERS] [OT] flex, yacc, and bison

From
Michael Alan Dorman
Date:
Tom Lane <tgl@sss.pgh.pa.us> writes:
> "Jackson, DeJuan" <djackson@cpsgroup.com> writes:
> > I need to parse this format:
> > <Database ftpdatabase [hostname[:port]]>
> >  [<DatabaseID somebody>]
> >  [<DatabasePWD mypwd>]
> >  [<Table ftp_users>
> >   [<Uname uname>]
> >   [<CryptedPwd cryptedpwd>]
> >   [<FtpPath ftppath>]
> >  </Table>]
> > </Database>
> 
> That looks suspiciously like an SGML DTD to me...

Well, it could almost kind of be SGML, but as specified, there's no
way it could possibly be XML (attributes have to have values, a couple
of other things), which is unfortunate, since that's where all the
cool tools are being developed these days.

> Rather than doing the whole lex/yacc bit, I'd suggest finding some
> ready-made SGML-parsing tools.  For instance, if you are handy with
> Perl I think there are some SGML modules in CPAN ... certainly there
> are HTML parsers, which'd probably be easy to adapt to the purpose.

I agree with Tom that you try to find existing parsers tuned towards
this stuff, with the addition that you do your self a favor (if you
have the option to change the format), and change it to be something
that can be parsed as XML.

You don't mention what this is for, but if you're able to move to XML,
you can use Perl (which I personally prefer), Python, TCL, or even one
of several C libraries (expat or rxp or GNOME's libxml) that are
suprisingly easy to use, given that text hacking is not something that
is traditionally easy to do in C.  The possibilities are much broader.

Mike.