Related articles |
---|
The Eiffel Compiler tecomp version 0.16 has been released helmut.brandl@gmx.net (Helmut) (2009-04-27) |
From: | Helmut <helmut.brandl@gmx.net> |
Newsgroups: | comp.compilers |
Date: | Mon, 27 Apr 2009 07:56:30 -0700 (PDT) |
Organization: | Compilers Central |
Keywords: | Eiffel, available |
Posted-Date: | 28 Apr 2009 05:11:24 EDT |
... with the following new features:
- Underscore now allowed to improve the readability of
integer constants (e.g. 2_100_095). Grouping of 3 is
recommended but can be done arbitrarily. The integers have
to start with a digit. The underscore is allowed in hex,
octal and binary as well (e.g. 0x0fff_120a, 0c77_44,
0b1111_0000).
- Free operators implemented.
- Webpresence improved at [[http://tecomp.sourceforge.net]]
and language description improved.
- Exception objects implemented. To raise an exception
create an object of type DEVELOPER_EXCEPTION and call the
feature raise. The class which handles exception has to
inherit from EXCEPTION_MANAGER. The feature {{exception}}
returns the raised exception. Object test can be used to
check the type of the exception (see example below).
class MY_EXCEPTION inherit DEVELOPER_EXCEPTION end
class HANDLER inherit EXCEPTION_MANAGER feature
raise_my_exception
do
(create {MY_EXCEPTION}).raise
end
raise_precondition
require
False
do
end
test_exceptions
local
i:INTEGER
do
if i = 0 then
raise_my_exception
else if i = 1 then
raise_precondition
end
rescue
check i <= 1 end
check i = 0 implies {e1:MY_EXCEPTION} exception end
check i = 1 implies {e2:PRECONDITION_VIOLATION} exception
end
check i = 1 implies {e: ASSERTION_VIOLATION} exception end
i := i + 1
retry
end
end
Available exception classes in the kernel library
- EXCEPTION, EXCEPTION_MANAGER, DEVELOPER_EXCEPTION,
- ASSERTION_VIOLATION, CHECK_VIOLATION,
PRECONDITION_VIOLATION, POSTCONDITION_VIOLATION,
INVARIANT_VIOLATION, LOOP_INVARIANT_VIOLATION,
VARIANT_VIOLATION
- BAD_INSPECT_VALUE, IO_EXCEPTION
Return to the
comp.compilers page.
Search the
comp.compilers archives again.