Sto creando un AST e attualmente sto introducendo il concetto di "ambito". Implementando un ambito, ovunque venga utilizzato un identificatore (nome variabile), sono in grado di determinare la sua dichiarazione originale.
Per l'oggetto scope, stavo per implementare un dizionario come struttura dati sottostante. Il dizionario verrebbe codificato con l'oggetto identificatore, con il valore come oggetto dichiarazione. L'oggetto dichiarazione contiene anche un riferimento allo stesso identificatore. Quindi, qualcosa come:
class Identifier() {
string name;
}
class Declaration() {
Type type;
Identifier ident;
}
class Scope() {
Dictionary<Identifier,Declaration> identifiers;
}
Quello che voglio sapere è, è la chiave di un dizionario con una proprietà della cattiva pratica del valore corrispondente della chiave? C'è un modo migliore per farlo?