Re: Parsing expressions without outer parentheses

Pete Jinks <pjj@cs.man.ac.uk>
6 May 2003 19:13:41 -0400

          From comp.compilers

Related articles
Parsing expressions without outer parentheses frank@g-n-u.de (Frank Heckenbach) (2003-04-27)
Re: Parsing expressions without outer parentheses cfc@world.std.com (Chris F Clark) (2003-05-05)
Re: Parsing expressions without outer parentheses slk15@earthlink.net (SLK Parsers) (2003-05-06)
Re: Parsing expressions without outer parentheses pjj@cs.man.ac.uk (Pete Jinks) (2003-05-06)
Re: Parsing expressions without outer parentheses hannah@schlund.de (Hannah Schroeter) (2003-05-12)
Re: Parsing expressions without outer parentheses frank@g-n-u.de (Frank Heckenbach) (2003-05-24)
Re: Parsing expressions without outer parentheses frank@g-n-u.de (Frank Heckenbach) (2003-05-24)
| List of all articles for this month |
From: Pete Jinks <pjj@cs.man.ac.uk>
Newsgroups: comp.compilers
Date: 6 May 2003 19:13:41 -0400
Organization: Computer Science Dept, University of Manchester
References: 03-04-093
Keywords: parse
Posted-Date: 06 May 2003 19:13:38 EDT

Frank Heckenbach wrote:


> expression: simple_expression | expression '=' simple_expression;
> simple_expression: term | simple_expression '+' term;
> term: factor | term '*' factor;
> factor: primary | factor '^' primary;
> primary: constant | '(' expression ')';
>
> Now I want to accept only expressions which are not completely
> enclosed in a pair of parentheses, e.g. `(1) + (2)' would be
> accepted, but `(1 + 2)' would not.


is this any more useful?


expression: constant
| factor '^' primary
| term '*' factor
| simple_expression '+' term
| fullexp '=' simple_expression
;
fullexp : expression
| '(' fullexp ')'
;
primary : constant | '(' fullexp ')'
;
(simple_expression, term, factor as before)


--
Peter J. Jinks, Room 2.99, Department of Computer Science,
University of Manchester, Oxford Road, Manchester, M13 9PL, U.K.
(+44/0)161-275 6186 http://www.cs.man.ac.uk/~pjj


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.