| 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.