Related articles |
---|
Ambiguous AST ? nob@fibertel.com.ar (2002-03-09) |
Re: Ambiguous AST ? idbaxter@semdesigns.com (Ira D. Baxter) (2002-03-11) |
Re: Ambiguous AST ? joachim_d@gmx.de (Joachim Durchholz) (2002-03-11) |
Re: Ambiguous AST ? vbdis@aol.com (2002-03-11) |
From: | nob@fibertel.com.ar (=?ISO-8859-1?Q?Nicol=E1s_Ojeda_B=E4r?=) |
Newsgroups: | comp.compilers |
Date: | 9 Mar 2002 03:12:51 -0500 |
Organization: | http://groups.google.com/ |
Keywords: | parse, design, question |
Posted-Date: | 09 Mar 2002 03:12:51 EST |
Hi,
I am writing a front end for something like Pascal. I want to separate
as much as possible the parsing from the semantic analysis,
intermediate code, and code generation in order to mantain a clear
organization.
Clearly, I want to postpone symbol table creation to a second pass
over the ast created during parsing (otherwise, i.e. if I were
creating the symbol tables during parsing, it wouldn't be logical to
delay e.g. type checking until later). Now, Pascal's syntax is
semantically ambiguous, in particular one cannot know if a identifier
in an expression is a variable reference or a function call without
arguments.
My question is the following: since I have no way of knowing which
case it is without symbol table information (which I have not
collected during parsing time), would it be
practical/logical/realistic to have an "ambiguous" ast data structure
(an ast node that doesn't specify which of the two cases I have
encountered) and then translate that (during semantic analysis) to the
corresponding data structure (according to the info collected while
processing the declarations).
Any kind of comment/option/etc would be inmensely appreciated.
Regards,
nob.
Return to the
comp.compilers page.
Search the
comp.compilers archives again.