summaryrefslogtreecommitdiff
path: root/scripts/lib/kdoc/kdoc_item.py
blob: f0b2b9082c56d92b7e359637665121d0feaf7bfb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# SPDX-License-Identifier: GPL-2.0
#
# A class that will, eventually, encapsulate all of the parsed data that we
# then pass into the output modules.
#

class KdocItem:
    def __init__(self, name, type, start_line, **other_stuff):
        self.name = name
        self.type = type
        self.declaration_start_line = start_line
        self.sections = {}
        self.sections_start_lines = {}
        #
        # Just save everything else into our own dict so that the output
        # side can grab it directly as before.  As we move things into more
        # structured data, this will, hopefully, fade away.
        #
        self.other_stuff = other_stuff

    def get(self, key, default = None):
        ret = self.other_stuff.get(key, default)
        if ret == default:
            return self.__dict__.get(key, default)
        return ret

    def __getitem__(self, key):
        return self.get(key)

    #
    # Tracking of section information.
    #
    def set_sections(self, sections, start_lines):
        self.sections = sections
        self.section_start_lines = start_lines