Узел AST для доступа к членам структуры данных - PullRequest
1 голос
/ 30 апреля 2020

Я только что добавил C -style struct к своему игрушечному языку, и я не уверен, как представить доступ к элементам данных в моем AST. Я рассматриваю что-то вроде

class StructProperty : public Expr {
    std::unique_ptr<Expr> parent_;
    std::string property_;
};

, чтобы getParent().data.foo = 42; было проанализировано как

AssignStmt:
-> rhs: IntegerLiteral
        -> value: 42
-> lvalue: StructProperty
           -> name: foo
           -> parent: StructProperty
                      -> name: data
                      -> parent: FuncCall
                                 -> name: getParent
                                 -> args: none 

Имеет ли это какой-то смысл? Это как struct члены данных обычно представлены в AST? Есть ли лучший способ?

...