From owner-freebsd-hackers Thu Jan 2 15:21: 1 2003 Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 59B8137B401 for ; Thu, 2 Jan 2003 15:20:58 -0800 (PST) Received: from colnta.issci.ca (mail.acns.AB.ca [142.179.151.95]) by mx1.FreeBSD.org (Postfix) with ESMTP id 339F143E4A for ; Thu, 2 Jan 2003 15:20:57 -0800 (PST) (envelope-from davidc@colnta.issci.ca) Received: from colnta.issci.ca (localhost [127.0.0.1]) by colnta.issci.ca (8.12.6/8.12.6) with ESMTP id h02NKOA6091332; Thu, 2 Jan 2003 16:20:24 -0700 (MST) (envelope-from davidc@colnta.issci.ca) Received: (from davidc@localhost) by colnta.issci.ca (8.12.6/8.12.6/Submit) id h02NKNbE091331; Thu, 2 Jan 2003 16:20:23 -0700 (MST) Date: Thu, 2 Jan 2003 16:20:23 -0700 From: Chad David To: Miguel Mendez Cc: Chuck Robey , mwest@uct.ac.za, kientzle@acm.org, freebsd-hackers@FreeBSD.ORG Subject: Re: Reading rc.conf from C programs? Message-ID: <20030102232023.GA86743@colnta.acns.ab.ca> Mail-Followup-To: Miguel Mendez , Chuck Robey , mwest@uct.ac.za, kientzle@acm.org, freebsd-hackers@FreeBSD.ORG References: <20030102012042.A16965@apotheosis.org.za> <20030101181840.P29988-100000@april.chuckr.org> <20030102152501.64332e55.flynn@energyhq.homeip.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="sm4nu43k4a2Rpi4c" Content-Disposition: inline In-Reply-To: <20030102152501.64332e55.flynn@energyhq.homeip.net> User-Agent: Mutt/1.5.1i Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG --sm4nu43k4a2Rpi4c Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Jan 02, 2003 at 03:25:01PM +0100, Miguel Mendez wrote: > On Wed, 1 Jan 2003 18:24:40 -0500 (EST) > Chuck Robey wrote: > > Hi, > > Since my little baby was mentioned, I thought I'd just comment :) > > > > You could perhaps copy the way that "The Fish" does it? > > > > > > Take a look at "ports/sysutils/thefish". > > > > > > The "parser.c" code appears to read /etc/{,defaults/}rc.conf and > > > place all the options into a linked list. > > I can tell you I wholeheartedly hate parser.c :) and regret having not > started with lex/yacc since day 1. Since the next major release will > support not only FreeBSD, but NetBSD as well, I'm redoing the parser in > a more flexible way. But again, it was my first parser, and so far seems > to work fine :) I've concentrated more on other aspects of the program > too. Here is a very simple lex/yacc parser that reads simple key value pairs. The whole thing took about 30 minutes to write. Exclusive states may not be the easiest or best way to handle the parts of the sh syntax that need to be ignored, but it was a quick way to handle the if, which was all I cared about. -- Chad David davidc@issci.ca www.FreeBSD.org davidc@freebsd.org ISSci Inc. Calgary, Alberta Canada --sm4nu43k4a2Rpi4c Content-Type: application/x-tar-gz Content-Disposition: attachment; filename="readrc.tar.gz" Content-Transfer-Encoding: base64 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 --sm4nu43k4a2Rpi4c-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message