Re: Parsing expressions without outer parentheses

Hannah Schroeter <hannah@schlund.de>
12 May 2003 01:38:18 -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: Hannah Schroeter <hannah@schlund.de>
Newsgroups: comp.compilers
Date: 12 May 2003 01:38:18 -0400
Organization: Schlund + Partner AG
Keywords: parse
Posted-Date: 12 May 2003 01:38:18 EDT
Content-Disposition: inline

Hello!


Frank Heckenbach <frank@g-n-u.de> wrote:
>[...]


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


>[...]


How about creating a syntax tree node for parens, too?


Then you'd have


        +
      / \
    () ()
    | |
    1 2


for (1) + (2) and


      ()
        |
        +
      / \
    1 2


for (1 + 2).


Then you could just check whether the expression tree's root is a
"()" node and if so, reject the input.


Afterwards, you can remove the paren nodes (except if you want to use
them to inhibit optimizing transforms that would change the associative
order, like required in Fortran).


Kind regards,


Hannah.


Post a followup to this message

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