User loginNavigation 
Guppy: trying to make parsing simple, fun, and powerfulI've been working on designing a parser definition language called Guppy. I have not implemented it yet, as the syntax and semantics of it are a moving target subject to my whims. My knowledge and insight is limited, so I want to discuss the design of Guppy with a community. Edit: I read the policies document after posting rather than before (this is my first post). Rather than having a megapost here, I delegated most of its content to my blog. In a nutshell, Guppy's mission statement is to make parsing simple, fun, and powerful. My ideas for its feature set are in flux; the list currently includes:
See here for an indepth description of my ideas so far along with snippets of Guppy code. To start discussion, I'll introduce the biggest fundamental problem I'm currently faced with: should ambiguous grammars be allowed in Guppy? Consider the following: expr: number identifier ( expr ) expr '*' expr expr '/' expr expr '+' expr expr '' expr
I think this is the most obvious way to define a grammar for basic arithmetic, but there are a couple problems. First of all, the parser doesn't know the order of operations here, and telling Guppy the order of operations might require nonobvious syntax. Second of all, the grammar really isn't correct. One could produce "1+2*3+4" by following The problem is that allowing ambiguous grammars can make writing grammars easy, but it can result in a less intuitive syntax and violations in correctness. How might I resolve this problem elegantly? By Joey Adams at 20100504 06:04  LtU Forum  previous forum topic  next forum topic  other blogs  10702 reads

Browse archivesActive forum topics 
Recent comments
1 day 12 hours ago
3 days 23 hours ago
2 weeks 8 hours ago
2 weeks 8 hours ago
2 weeks 1 day ago
3 weeks 5 days ago
4 weeks 8 hours ago
4 weeks 12 hours ago
4 weeks 1 day ago
5 weeks 3 hours ago