Now that basic symbol lookup is working, a type
evaluator is needed for overload resolution (etc.).
This may be done in a similar way as the const
evaluator, i.e. by means of a visitor that looks
up the types of atoms directly, and then tries
to find appropriate operator definitions taken
these as arguments. The type of this subexpression
is then simply the return type of the found
operator.
Question: Is this expression evaluator itself
dependent on overload resolution ? If so, should
expression evaluation and overload resolution
be done by the same module as both are
interdependent ? |