Introduction to the Erl-G |
What is Erl-G?
Erl-G is the Eiffel Reflection Library Generator. With Erl-G you can make an arbitrary Eiffel system reflectable.
- Eiffel Reflection Library Generator
- The Earl Gray of Reflection Libraries
- Why write libraries when you can generate them?
- Tea time for reflection
Erl-G is split into two parts:
- The generator 'erl_g'
- The runtime library (located in ${ERL_G}/library/runtime)
To make a system reflectable 'erl_g' has to be invoked on the system prior to the normal compilation. It will generate a set of classes that together with the Erl-G runtime library will become part of the system. The reflection API can then be accesses from within your system by inheriting from class ERL_G_SHARED_UNIVERSE.
Requirements
- ISE Eiffel 6.0 or greater
- Gobo 3.5
- Any platform supported by the above
Current Limitations
- Only features exported to ANY are introspectable.
- Preconditions and postconditions are not introspectable.
- Expanded types other than the basic types are not fully supported.
- Only a finite number of types can be made creatable.
- Infix and prefix features are currently not supported
- Value of unique constants is always reported to by `0'.
Acknowledgements
Erl-G is based on the Eiffel parser from Gobo and includes a modified version of the Eiffel Reflection Library (ERL) created by Beat Fluri.
Contact
- www: http://se.inf.ethz.ch/people/leitner/erl_g/
- email: Andreas Leitner (andreas.leitner@inf.ethz.ch)