public void BeginAnonymousFunctionBlock(ParameterDefinition[] parameters) { // this.CurrentFunctionName InsideAnonymousFunctionCount++; var depth = (CurrentAnonymousFunctionScope?.Depth ?? 0) + 1; CurrentAnonymousFunctionScope = new AnonymousFunctionScope(this, CurrentAnonymousFunctionScope, parameters, depth); }
public void EndAnonymousFunctionBlock() { if (CurrentAnonymousFunctionScope == null) { return; } CurrentAnonymousFunctionScope = CurrentAnonymousFunctionScope.Parent; InsideAnonymousFunctionCount--; }
public AnonymousFunctionScope(ScriptCompilerContext ctx, AnonymousFunctionScope parent, ParameterDefinition[] parameters, int depth) { this.ctx = ctx; this.Instructions = new CompilerInstructionCollection(ctx); Parent = parent; Depth = depth; Parameters = new Dictionary <string, ParameterDefinition>(); foreach (var param in parameters) { Parameters[param.Name] = param; } }