summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Build.Tasks/ILContext.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Build.Tasks/ILContext.cs')
-rw-r--r--Xamarin.Forms.Build.Tasks/ILContext.cs37
1 files changed, 37 insertions, 0 deletions
diff --git a/Xamarin.Forms.Build.Tasks/ILContext.cs b/Xamarin.Forms.Build.Tasks/ILContext.cs
new file mode 100644
index 00000000..14ade391
--- /dev/null
+++ b/Xamarin.Forms.Build.Tasks/ILContext.cs
@@ -0,0 +1,37 @@
+using System.Collections.Generic;
+using Mono.Cecil;
+using Mono.Cecil.Cil;
+using Xamarin.Forms.Xaml;
+
+namespace Xamarin.Forms.Build.Tasks
+{
+ class ILContext
+ {
+ public ILContext(ILProcessor il, MethodBody body, FieldDefinition parentContextValues = null)
+ {
+ IL = il;
+ Body = body;
+ Values = new Dictionary<IValueNode, object>();
+ Variables = new Dictionary<IElementNode, VariableDefinition>();
+ Scopes = new Dictionary<INode, VariableDefinition>();
+ TypeExtensions = new Dictionary<INode, TypeReference>();
+ ParentContextValues = parentContextValues;
+ }
+
+ public Dictionary<IValueNode, object> Values { get; private set; }
+
+ public Dictionary<IElementNode, VariableDefinition> Variables { get; private set; }
+
+ public Dictionary<INode, VariableDefinition> Scopes { get; private set; }
+
+ public Dictionary<INode, TypeReference> TypeExtensions { get; }
+
+ public FieldDefinition ParentContextValues { get; private set; }
+
+ public object Root { get; set; } //FieldDefinition or VariableDefinition
+
+ public ILProcessor IL { get; private set; }
+
+ public MethodBody Body { get; private set; }
+ }
+} \ No newline at end of file