API reference - Class MacroExecutionContext

Notation used in Ruby API documentation

Description: Support for various debugger features

This class implements some features that allow customization of the debugger behavior, specifically the generation of back traces and the handling of exception. These functions are particular useful for implementing DSL interpreters and providing proper error locations in the back traces or to suppress exceptions when reraising them.

Public constructors

MacroExecutionContextnewCreates a new object of this class

Public methods

[const]voidassign(const MacroExecutionContext other)Assign the contents of another object to self
voidcreateEnsures the C++ object is created
voiddestroyExplicitly destroy the object
[const]booldestroyed?Returns a value indicating whether the object was already destroyed
[const]MacroExecutionContextdupCreates a copy of self
[const]boolis_const_object?Returns a value indicating whether the reference is a const reference

Public static methods and constants

voidignore_next_exceptionIgnores the next exception in the debugger
voidremove_debugger_scopeRemoves a debugger scope previously set with set_debugger_scope
voidset_debugger_scope(string filename)Sets a debugger scope (file level which shall appear in the debugger)

Detailed description

[const] void assign(const MacroExecutionContext other)

Description: Assign the contents of another object to self

This method assigns the contents of another object to self. This is a deep copy that does not only copy the reference but the actual content.

void create

Description: Ensures the C++ object is created

Use this method to ensure the C++ object is created, for example to ensure that resources are allocated. Usually C++ objects are created on demand and not necessarily when the script object is created.

void destroy

Description: Explicitly destroy the object

Explicitly destroy the object on C++ side if it was owned by the Ruby interpreter. Subsequent access to this object will throw an exception. If the object is not owned by Ruby, this method will do nothing.

[const] bool destroyed?

Description: Returns a value indicating whether the object was already destroyed

This method returns true, if the object was destroyed, either explicitly or by the C++ side. The latter may happen, if the object is owned by a C++ object which got destroyed itself.

[const] MacroExecutionContext dup

Description: Creates a copy of self

[static] void ignore_next_exception

Description: Ignores the next exception in the debugger

The next exception thrown will be ignored in the debugger. That feature is useful when reraising exceptions if those new exception shall not appear in the debugger.

[const] bool is_const_object?

Description: Returns a value indicating whether the reference is a const reference

This method returns true, if self is a const reference. In that case, only const methods may be called on self.

[static] MacroExecutionContext new

Description: Creates a new object of this class

[static] void remove_debugger_scope

Description: Removes a debugger scope previously set with set_debugger_scope

[static] void set_debugger_scope(string filename)

Description: Sets a debugger scope (file level which shall appear in the debugger)

If a debugger scope is set, back traces will be produced starting from that scope. Setting a scope is useful for implementing DSL interpreters and giving a proper hint about the original location of an error.