41 lines
No EOL
1.5 KiB
Markdown
41 lines
No EOL
1.5 KiB
Markdown
## Node Module
|
|
|
|
Defines the abstract base Node class for graph-based structures. Each Node is assigned
|
|
a unique identifier via an external IdGenerator. The class provides an interface for
|
|
managing execution state and generating DOT graph representations using Jinja2 templates.
|
|
|
|
### Class: `Node`
|
|
|
|
- **Attributes**
|
|
- `id: int`: A unique identifier assigned to each instance upon initialization.
|
|
|
|
- **Methods**
|
|
- `get_id`
|
|
- returns: `int`, The unique node ID
|
|
|
|
Retrieves the unique identifier of the node.
|
|
|
|
- `generate_stack_frame`
|
|
- exec_id: `int`, The ID of the execution context.
|
|
- returns: `None`
|
|
|
|
Initializes a new state frame for a specific execution context.
|
|
Designed to be overridden in subclasses that use execution state.
|
|
|
|
- `delete_stack_frame`
|
|
- exec_id: `int`, The ID of the execution context.
|
|
- returns: `None`
|
|
|
|
Deletes the state frame for a specific execution context.
|
|
Designed to be overridden in subclasses that use execution state.
|
|
|
|
- `generate_dot`
|
|
- nodes: `list[str]`, A list to append DOT node definitions to.
|
|
- edges: `list[str]`, A list to append DOT edges definitions to.
|
|
- visited: `set[str]`, A set of already visited node IDs to avoid duplicates or recursion.
|
|
- template: `list[str]`, A Jinja2 template used to format the node's DOT representation.
|
|
- returns: `None`
|
|
|
|
Generates the DOT graph representation for this node and its relationships.
|
|
Must be implemented in subclasses.
|
|
|