# Re: Sytnax Tree Construction

## Yves Deweerdt <yves@news.be>9 Sep 2003 23:05:31 -0400

From comp.compilers

Related articles
Sytnax Tree Construction chris@labino.net (2003-09-04)
Re: Sytnax Tree Construction blackmarlin@asean-mail.com (2003-09-09)
Re: Sytnax Tree Construction yves@news.be (Yves Deweerdt) (2003-09-09)
| List of all articles for this month |

 From: Yves Deweerdt Newsgroups: comp.compilers Date: 9 Sep 2003 23:05:31 -0400 Organization: Planet Internet References: 03-09-024 Keywords: analysis Posted-Date: 09 Sep 2003 23:05:31 EDT

> I understand the generation of a tree from an expression: 4+2*var:
> +
> / \
> 4 *
> / \
> 2 var
>
> But for instance, how do you handle the actual language keywords. For
> instance, how would a tree be build for the BASIC code:
>
> DO
> x=x+2
> IF x=12
> PRINT "x=12"
> ELSEIF x=14
> PRINT "x=14"
> ELSE CALL function()
> ENDIF
> LOOP WHILE x<>20
>

why do you consider '+' to be an operation taking 2 operands?

and why don't you think of a DO WHILE as an operator too?
it also takes to operands, one being a condition and the other operand
being the statement to execute over and over again until the condition
expires.

let's keep it simple:

DO
x=x+2
LOOP WHILE x < 20

would be something like this:

DO-WHILE
/ \
= <
/ \ / \
x + x 20
/ \
x 2

when you take your expression, you know that when it holds a '+' you
have to take the 2 operands and count them together
now, for the 'DO-WHILE' node, you have to repeat the evaluation of the
left subtree until the right subtree condition evaluates to false...

Post a followup to this message