Thread

  1. RE: [HACKERS] [OT] flex, yacc, and bison

    Jackson, DeJuan <djackson@cpsgroup.com> — 1999-08-18T22:59:09Z

    I'm trying to write a ncftp_auth deamon that will utilize PostgreSQL.  The
    base SDK is in C.  I'm adapting it to C++ because I feel like it, but Perl
    would be a slightly steeper learning curve (sockets and all that).  I'm
    trying to get a conf file parser such that the login's can be in multiple
    database and/or on different machines.
    	DEJ
    
    > -----Original Message-----
    > From:	Michael Alan Dorman [SMTP:mdorman-pgsql.hackers@debian.org]
    > Sent:	Wednesday, August 18, 1999 4:46 PM
    > To:	pgsql-hackers@postgreSQL.org
    > Subject:	Re: [HACKERS] [OT] flex, yacc, and bison
    > 
    > 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.
    > 
    > ************
    > Check out "PostgreSQL Wearables" @ http://www.pgsql.com
    
    
  2. RE: [HACKERS] [OT] flex, yacc, and bison

    Vince Vielhaber <vev@michvhf.com> — 1999-08-18T23:25:47Z

    On 18-Aug-99 Jackson, DeJuan wrote:
    > I'm trying to write a ncftp_auth deamon that will utilize PostgreSQL.  The
    > base SDK is in C.  I'm adapting it to C++ because I feel like it, but Perl
    > would be a slightly steeper learning curve (sockets and all that).  I'm
    > trying to get a conf file parser such that the login's can be in multiple
    > database and/or on different machines.
    
    If you're into C/C++ (like I am), it's almost trivial to parse that into
    individual strings.  I was under the impression from your first note that
    C/C++ wasn't an option.   At the minimum, think strtok().   There's also
    strsep() but it's not been one of my favorites.  If you still need actual
    code let me know and I can send you something.
    
    Vince.
    
    
    
    
    >       DEJ
    > 
    >> -----Original Message-----
    >> From:        Michael Alan Dorman [SMTP:mdorman-pgsql.hackers@debian.org]
    >> Sent:        Wednesday, August 18, 1999 4:46 PM
    >> To:  pgsql-hackers@postgreSQL.org
    >> Subject:     Re: [HACKERS] [OT] flex, yacc, and bison
    >> 
    >> 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.
    >> 
    >> ************
    >> Check out "PostgreSQL Wearables" @ http://www.pgsql.com
    > 
    > ************
    > Check out "PostgreSQL Wearables" @ http://www.pgsql.com
    > 
    
    -- 
    ==========================================================================
    Vince Vielhaber -- KA8CSH   email: vev@michvhf.com   flame-mail: /dev/null
           # include <std/disclaimers.h>                   TEAM-OS2
            Online Campground Directory    http://www.camping-usa.com
           Online Giftshop Superstore    http://www.cloudninegifts.com
    ==========================================================================
    
    
    
    
  3. RE: [HACKERS] [OT] flex, yacc, and bison

    Dmitry Samersoff <dms@wplus.net> — 1999-08-19T09:43:49Z

    On 18-Aug-99 Vince Vielhaber wrote:
    > 
    > On 18-Aug-99 Jackson, DeJuan wrote:
    >> I'm trying to write a ncftp_auth deamon that will utilize PostgreSQL.  The
    >> base SDK is in C.  I'm adapting it to C++ because I feel like it, but Perl
    >> would be a slightly steeper learning curve (sockets and all that).  I'm
    >> trying to get a conf file parser such that the login's can be in multiple
    >> database and/or on different machines.
    > 
    > If you're into C/C++ (like I am), it's almost trivial to parse that into
    > individual strings.  I was under the impression from your first note that
    > C/C++ wasn't an option.   At the minimum, think strtok().   There's also
    > strsep() but it's not been one of my favorites.  If you still need actual
    > code let me know and I can send you something.
    
    It's my bestst:
    
    int split(char delem, char *str, ... )
    {
      char *tmp, *_src, *t, **s;
      int fields = 0;
    
     _src = str;
    
     va_list ap;
     va_start(ap, str);
    
     if (! (tmp=new char[2048]) )
                             return -1;
    
     while(_src)
      { t = _src;
        while (*t && ((*t) != delem) ) ++t;
        s = va_arg(ap, char **);
        if (!s || !*t)
                    break;
         *s = ( t-_src-1 > 0) ? strndup(_src,t-_src-1) : 0 ;
        _src = t+1;
       ++ fields;
      }
    
      return fields;
    }
    
    
    ---
    Dmitry Samersoff, dms@wplus.net, ICQ:3161705
    http://devnull.wplus.net
    * There will come soft rains ...