Related articles |
---|
Grammar for optional elements coolmohitz@gmail.com (Mohitz) (2007-06-12) |
Re: Grammar for optional elements torbenm@app-6.diku.dk (2007-06-14) |
Re: Grammar for optional elements anton@mips.complang.tuwien.ac.at (2007-06-16) |
Re: Grammar for optional elements bobduff@shell01.TheWorld.com (Robert A Duff) (2007-06-16) |
Re: Grammar for optional elements cfc@shell01.TheWorld.com (Chris F Clark) (2007-06-16) |
Re: Grammar for optional elements 148f3wg02@sneakemail.com (Karsten Nyblad) (2007-06-17) |
Re: Grammar for optional elements dot@dotat.at (Tony Finch) (2007-06-17) |
Re: Grammar for optional elements torbenm@app-2.diku.dk (2007-06-18) |
Re: Grammar for optional elements cfc@shell01.TheWorld.com (Chris F Clark) (2007-06-19) |
Re: Grammar for optional elements dot@dotat.at (Tony Finch) (2007-06-19) |
Re: Grammar for optional elements lowell@coasttocoastresearch.com (Lowell Thomas) (2007-06-19) |
Re: Grammar for optional elements dot@dotat.at (Tony Finch) (2007-06-20) |
Re: Grammar for optional elements Meyer-Eltz@t-online.de (Detlef Meyer-Eltz) (2007-06-20) |
[4 later articles] |
From: | Tony Finch <dot@dotat.at> |
Newsgroups: | comp.compilers |
Date: | 17 Jun 2007 15:54:52 +0100 (BST) |
Organization: | dotat labs |
References: | 07-06-019 |
Keywords: | parse, design |
Posted-Date: | 18 Jun 2007 21:50:04 EDT |
X-Attribution: | fanf hates supercite |
Originator: | @chiark.greenend.org.uk ([193.201.200.170]) |
Mohitz <coolmohitz@gmail.com> wrote:
>
>I need to create a parser for a language something like this.
>
>attribute1: value;
>attribute2: value;
>attribute3: value;
>
>All the attributes are optional but can occur only once...
You can do this with Parsing Expression Grammars.
http://pdos.csail.mit.edu/~baford/packrat/
start = attr*
attr = attr1 / attr2 / attr3
attr1 = "attribute1" COLON value SEMICOLON !(attr* attr1 attr*)
attr2 = "attribute2" COLON value SEMICOLON !(attr* attr2 attr*)
attr3 = "attribute3" COLON value SEMICOLON !(attr* attr3 attr*)
This says that each attribute expression is not followed by a sequence
of attributes containing another of the same kind of attribute expression.
Tony.
--
f.a.n.finch <dot@dotat.at> http://dotat.at/
Return to the
comp.compilers page.
Search the
comp.compilers archives again.