Skip to content

ASTTransformer - defining the AST metamodel without using the @dataclass decorator #32

@ivan-alfonso

Description

@ivan-alfonso

If the AST structure is defined without using the @dataclass decorator, that is, by defining (manually) the constructor method of the classes and the getter and setter methods of each attribute, then it will be necessary to define also all the attributes of the class as static attributes. In the following example, the books attribute, although defined in the constructor method, must also be defined as a static attribute.

class Library(Node):
    books: list["Book"]

    def __init__(self, books:list["Book"]):
        self.books: list("Book") = books

    @property
    def books(self) -> list["Book"]:
        return self.__books

    @books.setter
    def books(self, books: list["Book"]):
        self.__books = books

This is necessary for the ASTTransformer to correctly recognize the attributes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions