Single-văn

Giả Node là một lớp giao diện và hai lớp phụ là triển khai cụ thể của giao diện.
Nếu bạn gọi phương thức GenerateCode()
trên phiên bản nút, thao tác thực tế sẽ được thực thi tùy thuộc vào loại loại của nút. Nó có thể là phương pháp trong VariableRefNode
hoặc AssignmentNode
. Nó giống nhau nếu bạn gọi PrettyPrint()
. Vì vậy, hoạt động thực tế được thực hiện tùy thuộc vào tên của phương thức bạn đang gọi và loại của nút.
đúp văn

Lần này Node
là cho phép bạn vượt qua một tham số có kiểu NodeVisitor
phương pháp của nó được gọi là Accept
.Trong chương trình của bạn nếu bạn gọi Accept
về một trường hợp nút, các hoạt động thực tế nhận được thực hiện bây giờ phụ thuộc vào loại của nút (VariableRefNode
hoặc AssignmentNode
) VÀ loại trường hợp khách truy cập bạn thông qua vào Accept
(TypeCheckingVisitor
hoặc CodeGeneratingVisitor
) .
Bạn có thể cụ thể hơn về những gì bạn không hiểu không? – jzd
Imho bạn nên suy nghĩ để đôi công văn như là một quá tải chức năng tại thời gian chạy thay vì biên dịch thời gian. – dierre