本文整理匯總了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 ??
}