2 * Copyright(c) 2022 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 using System.Collections.Generic;
25 namespace Tizen.NUI.Xaml.Build.Tasks
29 public ILContext(ILProcessor il, MethodBody body, List<Instruction> insOfAddEvent, ModuleDefinition module, FieldDefinition parentContextValues = null)
33 InsOfAddEvent = insOfAddEvent;
34 Values = new Dictionary<INode, object>();
35 Variables = new Dictionary<IElementNode, VariableDefinition>();
36 Scopes = new Dictionary<INode, Tuple<VariableDefinition, IList<string>>>();
37 TypeExtensions = new Dictionary<INode, TypeReference>();
38 ParentContextValues = parentContextValues;
42 public Dictionary<INode, object> Values { get; private set; }
44 public Dictionary<IElementNode, VariableDefinition> Variables { get; private set; }
46 public Dictionary<INode, Tuple<VariableDefinition, IList<string>>> Scopes { get; private set; }
48 public Dictionary<INode, TypeReference> TypeExtensions { get; }
50 public FieldDefinition ParentContextValues { get; private set; }
52 public object Root { get; set; } //FieldDefinition or VariableDefinition
54 public ILProcessor IL { get; private set; }
56 public MethodBody Body { get; private set; }
58 public List<Instruction> InsOfAddEvent { get; private set; }
60 public ModuleDefinition Module { get; private set; }