コード例 #1
0
        public void BeginAnonymousFunctionBlock(ParameterDefinition[] parameters)
        {
            // this.CurrentFunctionName
            InsideAnonymousFunctionCount++;
            var depth = (CurrentAnonymousFunctionScope?.Depth ?? 0) + 1;

            CurrentAnonymousFunctionScope = new AnonymousFunctionScope(this, CurrentAnonymousFunctionScope, parameters, depth);
        }
コード例 #2
0
        public void EndAnonymousFunctionBlock()
        {
            if (CurrentAnonymousFunctionScope == null)
            {
                return;
            }

            CurrentAnonymousFunctionScope = CurrentAnonymousFunctionScope.Parent;
            InsideAnonymousFunctionCount--;
        }
コード例 #3
0
 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;
     }
 }