Re: Parsing expressions without outer parentheses

Frank Heckenbach <frank@g-n-u.de>
24 May 2003 16:59:04 -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: Frank Heckenbach <frank@g-n-u.de>
Newsgroups: comp.compilers
Date: 24 May 2003 16:59:04 -0400
Organization: Compilers Central
References: 03-04-093 03-05-040
Keywords: parse
Posted-Date: 24 May 2003 16:59:04 EDT

Pete Jinks <pjj@cs.man.ac.uk> wrote:


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


This doesn't increase the number of nonterminals so much, but OTOH, it
requires duplication of all the actions for the operators. I guess
I'll have to weigh the disadvantages ...


Frank


--
Frank Heckenbach, frank@g-n-u.de, http://fjf.gnu.de/
GnuPG and PGP keys: http://fjf.gnu.de/plan (7977168E)
Pascal code, BP CRT bugfix: http://fjf.gnu.de/programs.html
Free GNU Pascal Compiler: http://www.gnu-pascal.de/


Post a followup to this message

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