Related articles |
---|
YACC Parsing Question kalyanpradeep@gmail.com (Pradeep) (2005-11-08) |
Re: YACC Parsing Question jatin.bhateja@amdocs.com (Jatin Bhateja) (2005-11-12) |
Re: YACC Parsing Question oliverhunt@gmail.com (oliverhunt@gmail.com) (2005-11-12) |
From: | "Jatin Bhateja" <jatin.bhateja@amdocs.com> |
Newsgroups: | comp.compilers |
Date: | 12 Nov 2005 16:08:59 -0500 |
Organization: | Compilers Central |
References: | 05-11-055 |
Keywords: | parse |
Posted-Date: | 12 Nov 2005 16:08:59 EST |
Hi,
By using the suitable look ahead you can solve your problem. I mean to
say instead of using LR parsing use LR (k) parsing.
Let me explain it to you in detail for example consider the following
function declaration
>>
>>void Function1 (char aname, int value)
>>
Now on using a look ahead of one as soon as you encounter a variable whose
next token is a LEFT PARENTHESIS ( '(' )
add it to the symbol table and set its type to function as you are already
doing.
Now apart from the usual fields in the symbol table data structure you
must also have a pointer to the list of the arguments of the Function
(which will be useful only in case of function name). Thus as you
parse that argument list of the function you will be creating separate
symbol table entries for all the arguments in the symbol table plus
you will also be adding the pointers to the symbol table entries of
the arguments to the argument list field in the symbol table entry of
function name.
I hope this helps you.
Thanks and Best Regards,
Jatin Bhateja
Subject Matter Expert
Return to the
comp.compilers page.
Search the
comp.compilers archives again.