Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 2 Jan 2003 16:20:23 -0700
From:      Chad David <davidc@issci.ca>
To:        Miguel Mendez <flynn@energyhq.homeip.net>
Cc:        Chuck Robey <chuckr@chuckr.org>, 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>
In-Reply-To: <20030102152501.64332e55.flynn@energyhq.homeip.net>
References:  <20030102012042.A16965@apotheosis.org.za> <20030101181840.P29988-100000@april.chuckr.org> <20030102152501.64332e55.flynn@energyhq.homeip.net>

index | next in thread | previous in thread | raw e-mail

[-- Attachment #1 --]
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 <chuckr@chuckr.org> 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

[-- Attachment #2 --]
>readrc.tarkSHү肸6Fy^BJ2H$'e$
[I_dMWaK36m07f\j6VAkscjmol :.As;$`wn?)Ȇy{eIR~ɶնm|Q0v4H,:jkáC:(JyÉWI|n%\`Kejn:6o2ԡgIx}A]G>z'	!س4F`{ayAShRHWS4Bs!+Cbw587aFƓUq2Jpf7';de \7	`$00"Cvf 0k(%.D7
RB<(tbg#tZ+qu)M#&Q^PMk
D
S"Kⴐ,|n8
pӜQa鞆I=Vƈ\q0ȹ>JqGqRR;W8%N@cKQ8}O193?& bϼE;#7hsug-)s`]jix};ZNqRyrjGfUj#O?jt8iO,Ͷ@?>yZh8lAt9fɈق.kV_;LjWwEy*=Ղub=ĩ힪k<AGj4.--6:55>:=h5DN䌶iQC&nկWݷcR`lGw!G[>mޅi3omrG.*烾3醣YVMVB0nm;AfL?Hq9JKo;ĥRrJƂChk4kOptt.ʜnP,[Nлv>|
>bkot
~yf~+7<dž!ؔ<UTnKcycre4˟3O2ލHuoPHAz6/vĻ^"]vJdWSpf*vu	NПaS+>RahtNvk z]]gpGl4K:[[YkŪL{8Η~^F}ʎ7͐ܵ_յ\]O͵wE]cliyoYnǴt[wq"{(t.<Ȩ|zA	
yԥ{Y$?\W-M&5hM	\7Usw7,*񠘫q
MBJj=rL.Nx*ׁvz-~=B~U:ל.},-[
K4,g*tUOYoPG`K޳l=TRRaX;TpyO<&s$*/=?/|Ez>U!
fqK
p<],A3=w1kݢ<Z0:#Lk[u|	xpBm*"(olPŋ.H,OR: 70REQGHYi|	3~@K^Eߴv!D$VW85ATe<p/B4F/Cݩ̸7hpU{Z!mqƵdā7SƵ)_Ml`m%-JKn ]M||{ݎ
U|5Ip&|fh<A>
xb<aa+EۇEXr9fXfnU	}]]5蟸/{?YoƆϋs3 vݝ,})] XtEJ}m^,ZC8InT2OvOY2(`V^{Hd2J2x5&^.2iX	S
St,aLo9hҿd?!QVe#-?Rirc+$)/+IW|㿡*6x5g5xTXHߔ%H=Cw}QUҋ2뜌[d|rB	W"9!Y{/?DKh^Y9Yߣ*LZ~"Թ)Ϭ.pc,??Ʒ1o<ubUNΰ.ߢ*]4BnKx6t0
Fa`ZΖOş(?p.GQ}yt94Dh@)ۀ+EQjE[WVjJ0LWpq8 x@}P
cKBgiWD(%܋~g)]XH)@ @ @ @ O1&P
help

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030102232023.GA86743>