help-bison
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Parse Tree using Bison


From: Philip Herron
Subject: Re: Parse Tree using Bison
Date: Wed, 11 Jan 2012 00:54:48 +0000

On 11 January 2012 00:39, UJWAL POTLURI <address@hidden> wrote:
> Can you please show me an example of how to do.
>
> On Tue, Jan 10, 2012 at 3:52 AM, Hans Aberg <address@hidden> wrote:
>
>>
>> On 10 Jan 2012, at 01:38, UJWAL POTLURI wrote:
>>
>> >     I am new to Bison. I am able to parse the grammar using Bison but I
>> am
>> > unable to figure out how to generate the parse tree. I would be grateful
>> if
>> > anyone could help me out in this.
>>
>> You'll have to build it in the grammar actions.
>>
>> Hans
>>
>>
>>
>
>
> --
> Ujwal Potluri,
> Masters student,
> Computer Science,
> University of Connecticut,
> Connecticut, USA.
> _______________________________________________
> address@hidden https://lists.gnu.org/mailman/listinfo/help-bison


The bison manual has some good basic examples if i recall. But take
the general idea of something like:

x = 1 + 2;

The DAG of this would be something like:

   =
 /   \
x     +
      /  \
     1   2

So you would have the grammar:

expr = identifier '=' expr
        | expr '+' expr
        ...
        | primary

So you could simply have the structure:

struct tree {
  type T;
  union {
    int x;
    char * s
    struct tree * t;
  } opa;
  union {
    int x;
  .....
  };
};

And you parse each thing in a simple way. Read on here
http://www.gnu.org/software/bison/manual/html_node/Infix-Calc.html#Infix-Calc
or read the dragon book and the Lex and Yacc o'reilly book is good.
Just make it in a way that makes things easy for you just think about
how the parser parsers things and you should get the idea.

--Phil



reply via email to

[Prev in Thread] Current Thread [Next in Thread]