Je travaille sur un DSL assez simple et j'aimerais déclarer et allouer des variables plus naturellement.Comment créer une allocation variable naturelle
GlobalMemory.init {
val1 5
val2 "some string"
}
Ceci est pour une machine virtuelle simple qui exécute le DSL. Cela fonctionne très bien pour ce code
class GlobalMemory
include Singleton
def self.init &blk
GlobalMemory.instance.allocate &blk
end
def method_missing sym,*args, &blk
@segments[sym]=args[0]
end
def allocate &blk
self.instance_eval &blk
end
end
Y at-il un moyen de permettre val1=5(and val1 = 5)
? Lorsque j'essaie cela, method_missing
ne se déclenche pas et aucun message d'erreur ne se produit.