本文整理汇总了C#中Mono.CSharp.CloneContext类的典型用法代码示例。如果您正苦于以下问题:C# CloneContext类的具体用法?C# CloneContext怎么用?C# CloneContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CloneContext类属于Mono.CSharp命名空间,在下文中一共展示了CloneContext类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CloneTo
protected override void CloneTo (CloneContext clonectx, Statement t)
{
Catch target = (Catch) t;
if (type_expr != null)
target.type_expr = (FullNamedExpression) type_expr.Clone (clonectx);
target.block = clonectx.LookupBlock (block);
}
示例2: CloneTo
protected override void CloneTo (CloneContext clonectx, Expression target)
{
throw new NotSupportedException ("should not be reached");
}
示例3: CloneTo
protected override void CloneTo (CloneContext clonectx, Expression t)
{
AnonymousMethodExpression target = (AnonymousMethodExpression) t;
target.Block = (ParametersBlock) clonectx.LookupBlock (Block);
}
示例4: CloneTo
protected override void CloneTo (CloneContext clonectx, Expression t)
{
// Nothing
}
示例5: CloneTo
protected override void CloneTo (CloneContext clonectx, Expression t)
{
CompoundAssign ctarget = (CompoundAssign) t;
ctarget.right = ctarget.source = source.Clone (clonectx);
ctarget.target = target.Clone (clonectx);
}
示例6: CloneTo
protected override void CloneTo(CloneContext clonectx, Statement t)
{
Yield target = (Yield) t;
target.expr = expr.Clone (clonectx);
}
示例7: Clone
public Argument Clone (CloneContext clonectx)
{
Argument a = (Argument) MemberwiseClone ();
a.Expr = Expr.Clone (clonectx);
return a;
}
示例8: Clone
public Statement Clone (CloneContext clonectx)
{
Statement s = (Statement) this.MemberwiseClone ();
CloneTo (clonectx, s);
return s;
}
示例9: PerformClone
public Statement PerformClone ()
{
CloneContext clonectx = new CloneContext ();
return Clone (clonectx);
}
示例10: Clone
public Argument Clone (CloneContext clonectx)
{
return Clone (Expr.Clone (clonectx));
}
示例11: Clone
public sealed override Expression Clone (CloneContext clonectx)
{
// No cloning is not needed for constants
return this;
}
示例12: DoResolve
protected override Expression DoResolve (ResolveContext ec)
{
CloneContext cc = new CloneContext ();
Expression clone = source.Clone (cc);
//
// A useful feature for the REPL: if we can resolve the expression
// as a type, Describe the type;
//
if (Evaluator.DescribeTypeExpressions){
var old_printer = Evaluator.SetPrinter (new StreamReportPrinter (TextWriter.Null));
clone = clone.Resolve (ec);
if (clone == null){
clone = source.Clone (cc);
clone = clone.Resolve (ec, ResolveFlags.Type);
if (clone == null){
Evaluator.SetPrinter (old_printer);
clone = source.Clone (cc);
clone = clone.Resolve (ec);
return null;
}
Arguments args = new Arguments (1);
args.Add (new Argument (new TypeOf ((TypeExpr) clone, Location)));
source = new Invocation (new SimpleName ("Describe", Location), args).Resolve (ec);
}
Evaluator.SetPrinter (old_printer);
} else {
clone = clone.Resolve (ec);
if (clone == null)
return null;
}
// This means its really a statement.
if (clone.Type == TypeManager.void_type){
source = source.Resolve (ec);
target = null;
type = TypeManager.void_type;
eclass = ExprClass.Value;
return this;
}
return base.DoResolve (ec);
}
示例13: CloneTo
protected override void CloneTo (CloneContext clonectx, Expression target)
{
// TODO: nothing ??
}