Hi Yu,

On Wed, 2009-07-15 at 10:30 +0800, Yu Feng wrote:
> I can see there is a 'check' method for each node which recursively
> checks the children of the node. It returns a false on error, and writes
> the error message to stderr. 
> 
> But how and why does the compiler exit when the method returns false?
> Why isn't this part using the throw/catch handling? 

The aborting is only done by the compiler driver, that is,
compiler/valacompiler.vala. The reason we do not use throw/catch for
that is that we want to be able to report more than one error at once
and not just abort at the first error we encounter.

> I am looking into this because I am evaluating the possibility of
> parsing and constructing the ast in valide with libvala. The IDE won't
> be happy if libvala reports to stderr and aborts for errors.

You can subclass Vala.Report, override the err and warn methods, and
then set the `report' property of the default context to an instance of
your report subclass.

Jürg

_______________________________________________
Vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to