public override newObjectClass newObject(newObjectClass context) { List <BaseAHKNode> parameterList = null; switch (context.className) { case functionCallClass o: parameterList = o.functionParameterList; break; case dotUnwrapClass o: parameterList = ((functionCallClass)o.variableOrFunction).functionParameterList; break; } for (int i = 0; i < parameterList.Count; i++) { parameterList[i] = traverser.objectDispatcher(parameterList[i]); } var scope = scopeChain(context.chain, indexed); BaseAHKNode retVal = null; switch (context.className) { case functionCallClass o: o.extraInfo = scope; retVal = createNewInstance(o); break; case dotUnwrapClass o: o.variableOrFunction.extraInfo = scope; retVal = createNewInstance((functionCallClass)o.variableOrFunction); break; } if (retVal == null) { return(null); } // var retVal = scopeAndVariableOrFunction(context); context.extraInfo = retVal is VariableValue v? v.Value : retVal.extraInfo; return(context); }
public override newObjectClass newObject(newObjectClass context) { return(visitor.newObject(context)); }