struct _scope{ procedure[char[]] descriptions; _scope* parent; procedure getFunc(char[] operator){ if(procedure* func = operator.isIn()) return *func; else{ if(!(operator in boxen)){ if(operator.isNumeric()) boxen[operator] = boxToDelegate(box(operator.toInt())); else boxen[operator] = boxToDelegate(box(operator)); }//Could fix return &boxen[operator].execute; } } procedure* isIn(char[] operator){ if(procedure* func = operator in descriptions) return func; else{ if(parent) return parent.isIn(operator); else return null; } } void add(char[] operator, procedure procedure){ descriptions[operator] = procedure; } }