2012-10-23 19 views
6

Sto sviluppando e astratto meta-modello Syntax Tree per un smalltalk e in questo momento ho problemi con la modellazione di un blocco. Sono una specie di letterali, ma d'altra parte sono entità comportamentali come i metodi. I blocchi sono una specie di funzioni lambda, quindi forse qualcuno ha una migliore pratica di lavorare con loro.Rappresentazione Ast della funzione lambda

Sarò grato per qualsiasi consiglio.

risposta

8

Il browser di refactoring ha un AST molto bello, dai un'occhiata alla sua implementazione.

Riguardo alla domanda: il Browser di refactoring estrae le parti condivise di blocchi e metodi in un tipo di nodo separato chiamato SequenceNode. Il nodo di sequenza modella i temp e la sequenza di istruzioni. Il nodo blocco quindi avvolge il nodo della sequenza, aggiunge gli argomenti ed eredita il comportamento condiviso dei nodi valore. Il nodo del metodo avvolge il nodo della sequenza e aggiunge nome del metodo, argomenti, direttive, ecc.

Problemi correlati