コード例 #1
0
ファイル: LightProcessor.cs プロジェクト: ashmind/light
        public IAstElement Process(IAstElement element, ProcessingOptions options = null)
        {
            options = options ?? new ProcessingOptions();

            var context = new ProcessingContext(options);
            foreach (var source in topLevelNameSources) {
                context.Scope.Add(source);
            }
            var steps = this.allSteps.Where(s => options.Stages.Contains(s.Stage)).ToArray();
            return Process(element, context, steps);
        }
コード例 #2
0
ファイル: ProcessingContext.cs プロジェクト: ashmind/light
        public ProcessingContext(ProcessingOptions options)
        {
            Argument.RequireNotNull("options", options);

            this.Options = options;
            this.FreeData = new Dictionary<object, object>();

            this.ElementStack = new Stack<IAstElement>();

            this.ScopeStack = new Stack<Scope>();
            this.ScopeStack.Push(new Scope());
        }