public MonadicOperationStructure(TypeStructure rt, ExpressionStructure exp, BuilderStructure call)
     : base(rt)
 {
     Expression = exp;
     Call = call;
     AppendChild(Expression);
 }
 public void Initialize(BuilderStructure inst, IReadOnlyList<TypeStructure> prms, TypeStructure di, MethodInfo info = null)
 {
     BaseInstance = inst;
     GenericParameter = prms;
     DeclaringInstance = di;
     Info = info;
 }
Exemplo n.º 3
0
 public BlockStructure(TypeStructure rt, IReadOnlyList<CilStructure> exps, bool isInline)
     : base(rt)
 {
     Expressions = exps;
     IsInline = isInline;
     AppendChild(exps);
 }
Exemplo n.º 4
0
 internal void Initialize(string name, TypeAttributes attr, IReadOnlyList<GenericParameterStructure> gnr, TypeStructure bt, IReadOnlyList<TypeStructure> imp, BlockStructure block = null, Type info = null)
 {
     Generics = gnr;
     BaseType = bt;
     Implements = imp;
     AppendChild(Generics);
     base.Initialize(name, attr, block, info);
 }
Exemplo n.º 5
0
 public CacheStructure(TypeStructure rt, ExpressionStructure exp)
     : base(rt)
 {
     Expression = exp;
     Cache = new LocalStructure(Expression.ResultType);
     AppendChild(Expression);
     AppendChild(Cache);
 }
Exemplo n.º 6
0
 public ParameterStructure(string name, ParameterAttributes attr, TypeStructure pt, CilStructure def)
 {
     Name = name;
     Attributes = attr;
     ParamType = pt;
     DefaultValue = def;
     AppendChild(DefaultValue);
 }
Exemplo n.º 7
0
 public ParameterStructure(TypeStructure pt)
 {
     Name = "this";
     IsThis = true;
     Attributes = ParameterAttributes.None;
     ParamType = pt;
     DefaultValue = null;
     AppendChild(DefaultValue);
 }
Exemplo n.º 8
0
 public FieldStructure(string name, FieldAttributes attr, TypeStructure dt, object def, bool isEnumField, FieldInfo info = null)
 {
     Name = name;
     Attributes = attr;
     DataType = dt;
     DefaultValue = def;
     IsEnumField = isEnumField;
     Info = info;
 }
Exemplo n.º 9
0
 public void Initialize(string name, bool isInstance, MethodAttributes attr, IReadOnlyList<GenericParameterStructure> gnr, IReadOnlyList<ParameterStructure> arg, TypeStructure ret, BlockStructure block = null, bool isDtr = false, MethodInfo info = null)
 {
     Name = name;
     Generics = gnr;
     ReturnType = ret;
     IsDefaultThisReturn = isDtr;
     AppendChild(Generics);
     Info = info;
     base.Initialize(isInstance, attr, arg, block);
 }
Exemplo n.º 10
0
 public LoopStructure(TypeStructure rt)
     : base(rt)
 {
     BreakLabel = new LabelStructure();
     ContinueLabel = new LabelStructure();
     PlungeLabel = new LabelStructure();
     AppendChild(BreakLabel);
     AppendChild(ContinueLabel);
     AppendChild(PlungeLabel);
 }
Exemplo n.º 11
0
 public LoopLocalStructure(string name, TypeStructure dt, CilStructure def)
     : base(dt)
 {
     Name = name;
     DataType = dt;
     DefaultValue = def;
     Local = new LocalStructure(name, dt);
     AppendChild(DefaultValue);
     AppendChild(Local);
 }
Exemplo n.º 12
0
 public LogicalStructure(TypeStructure rt, ExpressionStructure left, ExpressionStructure right, bool isOr)
     : base(rt)
 {
     Left = left;
     Right = right;
     IsOr = isOr;
     Exit = new LabelStructure();
     AppendChild(Left);
     AppendChild(Right);
     AppendChild(Exit);
 }
 public DyadicOperationStructure(TypeStructure rt, ExpressionStructure left, ExpressionStructure right, BuilderStructure call, ExpressionStructure next = null)
     : base(rt)
 {
     Left = left;
     Right = right;
     Call = call;
     Next = next;
     AppendChild(Left);
     if (Next == null)
     {
         AppendChild(Right);
     }
     else
     {
         AppendChild(Next);
     }
 }
Exemplo n.º 14
0
 public CallStructure(TypeStructure rt, BuilderStructure call, ExpressionStructure pre, CilStructure variant)
     : base(rt)
 {
     Call = call;
     Pre = pre;
     Access = pre;
     Variant = variant;
     Arguments = new List<ExpressionStructure>();
     Converters = new List<BuilderStructure>();
     if (Access != null)
     {
         AppendChild(Access);
     }
     if (Arguments != null)
     {
         AppendChild(Arguments);
     }
 }
Exemplo n.º 15
0
 public CallStructure(TypeStructure rt, BuilderStructure call, ExpressionStructure pre, CilStructure access, CilStructure variant, IReadOnlyList<ExpressionStructure> args, IReadOnlyList<BuilderStructure> convs, bool isVariadic = false)
     : base(rt)
 {
     Call = call;
     Pre = pre;
     Access = access;
     Variant = variant;
     Arguments = args;
     Converters = convs;
     IsVariadic = isVariadic;
     if (Access != null)
     {
         AppendChild(Access);
     }
     if (Arguments != null)
     {
         AppendChild(Arguments);
     }
 }
Exemplo n.º 16
0
 public LocalStructure(string name, TypeStructure dt)
 {
     Name = name;
     DataType = dt;
 }
Exemplo n.º 17
0
 public LocalStructure(TypeStructure dt)
 {
     DataType = dt;
 }
Exemplo n.º 18
0
 internal LocalBuilder CreateLocal(TypeStructure dt)
 {
     return Generator.DeclareLocal(dt.GainType());
 }
Exemplo n.º 19
0
 public void Initialize(TypeStructure baseType, IReadOnlyList<TypeStructure> prms, Type info = null)
 {
     BaseType = baseType;
     GenericParameter = prms;
     Info = info;
 }
Exemplo n.º 20
0
 public GotoStructure(TypeStructure rt, LabelStructure label)
     : base(rt)
 {
     Label = label;
 }
Exemplo n.º 21
0
 internal override BuilderStructure RenewInstance(TypeStructure type)
 {
     var ret = new ConstructorStructure();
     ret.Info = type.RenewConstructor(this);
     return ret;
 }
Exemplo n.º 22
0
 internal void GenerateArray(int length, TypeStructure type)
 {
     GeneratePrimitive(length);
     Generator.Emit(OpCodes.Newarr, type.GainType());
 }
Exemplo n.º 23
0
 internal void GenerateList(TypeStructure type, IReadOnlyList<CilStructure> values)
 {
     var lt = type.GainType();
     var lc = lt.GetConstructor(Type.EmptyTypes);
     var ladd = lt.GetMethod("Add");
     var local = Generator.DeclareLocal(lt);
     Generator.Emit(OpCodes.Newobj, lc);
     Generator.Emit(OpCodes.Stloc, local);
     foreach (var v in values)
     {
         Generator.Emit(OpCodes.Ldloc, local);
         var exp = (ExpressionStructure)v;
         exp.BuildCode();
         Generator.Emit(OpCodes.Call, ladd);
     }
     Generator.Emit(OpCodes.Ldloc, local);
 }
Exemplo n.º 24
0
 public ValueStructure(TypeStructure rt, dynamic value)
     : base(rt)
 {
     Value = value;
 }
Exemplo n.º 25
0
 public LocalStructure(TypeStructure dt, CodeGenerator cg)
 {
     DataType = dt;
     Builder = cg.CreateLocal(DataType);
 }
Exemplo n.º 26
0
 public ReturnStructure(TypeStructure rt, ExpressionStructure exp)
     : base(rt)
 {
     Expression = exp;
     AppendChild(Expression);
 }
Exemplo n.º 27
0
 internal override BuilderStructure RenewInstance(TypeStructure type)
 {
     var ret = new LoadStoreStructure(IsStore);
     ret.BaseInstance = type;
     return this;
 }
Exemplo n.º 28
0
 internal virtual BuilderStructure RenewInstance(TypeStructure type)
 {
     throw new NotSupportedException();
 }
Exemplo n.º 29
0
 public ExpressionStructure(TypeStructure rt)
 {
     ResultType = rt;
 }
Exemplo n.º 30
0
 public StringStructure(TypeStructure rt, IReadOnlyList<ExpressionStructure> exps)
     : base(rt)
 {
     AppendChild(exps);
 }