module Nydp class ContextSymbol def self.build depth, name, binding_index cname = "ContextSymbol_#{depth}_#{binding_index}" existing = const_get(cname) rescue nil return existing.new(name) if existing getctx = ([".parent"] * depth).join at_index = if binding_index < 10 "at_#{binding_index}" else "at_index(#{binding_index})" end set_index = if binding_index < 10 "at_#{binding_index}= value" else "set_index(#{binding_index}, value)" end klass = <