m2isar.metamodel.code_info ========================== .. py:module:: m2isar.metamodel.code_info Attributes ---------- .. autoapisummary:: m2isar.metamodel.code_info.LineInfoFactory m2isar.metamodel.code_info.FunctionInfoFactory m2isar.metamodel.code_info.BranchEntryInfoFactory Classes ------- .. autoapisummary:: m2isar.metamodel.code_info.LineInfoPlacement m2isar.metamodel.code_info.CodeInfoBase m2isar.metamodel.code_info.LineInfo m2isar.metamodel.code_info.FunctionInfo m2isar.metamodel.code_info.BranchInfo m2isar.metamodel.code_info.BranchEntryInfo m2isar.metamodel.code_info.InfoFactory Module Contents --------------- .. py:class:: LineInfoPlacement Bases: :py:obj:`enum.Enum` .. autoapi-inheritance-diagram:: m2isar.metamodel.code_info.LineInfoPlacement :parts: 1 :private-bases: Generic enumeration. Derive from this class to define new enumerations. .. py:attribute:: AFTER .. py:attribute:: BEFORE .. py:class:: CodeInfoBase Base class for tracking code info. .. py:attribute:: file_path :type: str .. py:attribute:: start_chr :type: int .. py:attribute:: stop_chr :type: int .. py:attribute:: start_line_no :type: int .. py:attribute:: stop_line_no :type: int .. py:attribute:: id :type: int :value: None Automatically calculated unique ID for tracking purposes in consumer programs. .. py:attribute:: __id_counter :value: 0 .. py:attribute:: database A global database of all created CodeInfo objects. .. py:method:: __post_init__() .. py:method:: line_eq(other) .. py:method:: __hash__() -> int .. py:method:: line_hash() .. py:class:: LineInfo Bases: :py:obj:`CodeInfoBase` .. autoapi-inheritance-diagram:: m2isar.metamodel.code_info.LineInfo :parts: 1 :private-bases: Base class for tracking code info. .. py:attribute:: placement :type: LineInfoPlacement .. py:class:: FunctionInfo Bases: :py:obj:`CodeInfoBase` .. autoapi-inheritance-diagram:: m2isar.metamodel.code_info.FunctionInfo :parts: 1 :private-bases: Base class for tracking code info. .. py:attribute:: fn_name :type: str .. py:class:: BranchInfo Bases: :py:obj:`LineInfo` .. autoapi-inheritance-diagram:: m2isar.metamodel.code_info.BranchInfo :parts: 1 :private-bases: Base class for tracking code info. .. py:attribute:: branch_id :type: int :value: None .. py:class:: BranchEntryInfo Bases: :py:obj:`BranchInfo` .. autoapi-inheritance-diagram:: m2isar.metamodel.code_info.BranchEntryInfo :parts: 1 :private-bases: Base class for tracking code info. .. py:attribute:: placement :type: LineInfoPlacement .. py:method:: __post_init__() .. py:class:: InfoFactory(cls_to_use) .. py:attribute:: cls_to_use .. py:attribute:: tracker :type: dict[tuple[str, int, int], CodeInfoBase] .. py:method:: make(file_path, start_chr, stop_chr, start_line_no, stop_line_no, *args, **kwargs) .. py:data:: LineInfoFactory .. py:data:: FunctionInfoFactory .. py:data:: BranchEntryInfoFactory