Class ShallowCopyTransform
A transform which produces a copy where subtrees from the original are reused if they do not change.
Any empty containers are removed.
Inheritance
ShallowCopyTransform
Assembly: Microsoft.ML.Probabilistic.Compiler.dll
public class ShallowCopyTransform : ICodeTransform, IExpressionTransform
Fields
Declaration
protected Stack<List<IStatement>> afterStack
Field Value
Declaration
protected Stack<ICollection<IStatement>> beforeStack
Field Value
Helps build class declarations
Declaration
protected static CodeBuilder Builder
Field Value
context
Holds contextual information about the state of the transform which may be used
to affect the transform.
Declaration
protected BasicTransformContext context
Field Value
Helps recognize code patterns
Declaration
protected static CodeRecognizer Recognizer
Field Value
If true, statements will be shallow copied even if they do not change. Child statements need not be copied.
Declaration
Field Value
Properties
Context
Declaration
public virtual ICodeTransformContext Context { get; set; }
Property Value
Declaration
public virtual string Name { get; }
Property Value
Methods
Declaration
public static string CheckIdentifier(string mname)
Parameters
| Type |
Name |
Description |
| String |
mname |
|
Returns
Declaration
protected void CloseOutputBlock()
Declaration
protected virtual IExpression ConvertAddressDereference(IAddressDereferenceExpression iade)
Parameters
Returns
Declaration
protected virtual IExpression ConvertAddressOut(IAddressOutExpression iaoe)
Parameters
Returns
Declaration
protected virtual IExpression ConvertAnonymousMethodExpression(IAnonymousMethodExpression iame)
Parameters
Returns
Declaration
protected virtual IExpression ConvertArgumentRef(IArgumentReferenceExpression iare)
Parameters
Returns
Declaration
protected virtual IExpression ConvertArrayCreate(IArrayCreateExpression iace)
Parameters
Returns
Declaration
protected virtual IExpression ConvertArrayIndexer(IArrayIndexerExpression iaie)
Parameters
Returns
Declaration
protected virtual IExpression ConvertAssign(IAssignExpression iae)
Parameters
Returns
Declaration
protected virtual IExpression ConvertBaseRef(IBaseReferenceExpression ibre)
Parameters
Returns
Declaration
protected virtual ITypeReference ConvertBaseType(ITypeReference itr)
Parameters
Returns
Declaration
protected virtual IExpression ConvertBinary(IBinaryExpression ibe)
Parameters
Returns
Declaration
protected virtual IBlockStatement ConvertBlock(IBlockStatement inputBlock)
Parameters
Returns
Shallow copy of BlockStatement
Declaration
protected virtual IBlockStatement ConvertBlockAlreadyOpen(IBlockStatement inputBlock)
Parameters
Returns
Declaration
protected virtual IExpression ConvertBlockExpr(IBlockExpression ibe)
Parameters
Returns
Declaration
protected virtual IStatement ConvertBreak(IBreakStatement ibs)
Parameters
Returns
Declaration
protected virtual IExpression ConvertCastExpr(ICastExpression ice)
Parameters
Returns
Declaration
protected virtual IExpression ConvertCheckedExpr(ICheckedExpression ice)
Parameters
Returns
Declaration
protected virtual IList<IExpression> ConvertCollection(IList<IExpression> exprColl)
Parameters
Returns
Declaration
protected virtual void ConvertCollection(IList<IExpression> outputs, IList<IExpression> inputs)
Parameters
Declaration
protected virtual IStatement ConvertComment(ICommentStatement ics)
Parameters
Returns
Declaration
protected virtual IStatement ConvertCondition(IConditionStatement ics)
Parameters
Returns
Declaration
protected virtual IExpression ConvertConditionExpr(IConditionExpression ice)
Parameters
Returns
Declaration
protected virtual IExpression ConvertDefaultExpr(IDefaultExpression ide)
Parameters
Returns
Declaration
protected virtual IExpression ConvertDelegateInvoke(IDelegateInvokeExpression imie)
Parameters
Returns
Declaration
protected virtual IEventDeclaration ConvertEvent(ITypeDeclaration td, IEventDeclaration ifd)
Parameters
Returns
Declaration
protected virtual IExpression ConvertEventRefExpr(IEventReferenceExpression iere)
Parameters
Returns
Declaration
protected virtual void ConvertEvents(ITypeDeclaration td, ITypeDeclaration itd)
Parameters
Declaration
public virtual IExpression ConvertExpression(IExpression expr)
Parameters
Returns
Declaration
protected virtual IStatement ConvertExpressionStatement(IExpressionStatement ies)
Parameters
Returns
Declaration
protected virtual IFieldDeclaration ConvertField(ITypeDeclaration td, IFieldDeclaration ifd)
Parameters
Returns
Declaration
protected virtual IExpression ConvertFieldRefExpr(IFieldReferenceExpression ifre)
Parameters
Returns
Declaration
protected virtual void ConvertFields(ITypeDeclaration td, ITypeDeclaration itd)
Parameters
Declaration
protected virtual IStatement ConvertFor(IForStatement ifs)
Parameters
Returns
Declaration
protected virtual IForEachStatement ConvertForEach(IForEachStatement ifs)
Parameters
Returns
Declaration
protected virtual ITypeReference ConvertInterface(ITypeReference itr)
Parameters
Returns
Declaration
protected virtual IExpression ConvertLiteral(ILiteralExpression ile)
Parameters
Returns
Declaration
protected virtual IMethodDeclaration ConvertMethod(IMethodDeclaration imd)
Parameters
Returns
Declaration
protected virtual IMethodReference ConvertMethodInstanceReference(IMethodReference imr)
Parameters
Returns
Declaration
protected virtual IExpression ConvertMethodInvoke(IMethodInvokeExpression imie)
Parameters
Returns
Declaration
protected virtual IParameterDeclaration ConvertMethodParameter(IParameterDeclaration ipd, int index)
Parameters
Returns
Declaration
protected virtual IMethodReference ConvertMethodReference(IMethodReference imr)
Parameters
Returns
Declaration
protected virtual IExpression ConvertMethodRefExpr(IMethodReferenceExpression imre)
Parameters
Returns
Declaration
protected virtual void ConvertMethods(ITypeDeclaration td, ITypeDeclaration itd)
Parameters
Declaration
protected virtual void ConvertNestedTypes(ITypeDeclaration td, ITypeDeclaration itd)
Parameters
Declaration
protected virtual IExpression ConvertObjectCreate(IObjectCreateExpression ioce)
Parameters
Returns
Declaration
protected virtual void ConvertProperties(ITypeDeclaration td, ITypeDeclaration itd)
Parameters
Declaration
protected virtual IPropertyDeclaration ConvertProperty(ITypeDeclaration td, IPropertyDeclaration ipd, bool convertGetterAndSetter = true)
Parameters
Returns
Declaration
protected virtual IExpression ConvertPropertyIndexerExpr(IPropertyIndexerExpression ipie)
Parameters
Returns
Declaration
protected virtual IExpression ConvertPropertyRefExpr(IPropertyReferenceExpression ipre)
Parameters
Returns
Declaration
protected virtual IStatement ConvertRepeat(IRepeatStatement irs)
Parameters
Returns
Declaration
protected virtual IStatement ConvertReturnStatement(IMethodReturnStatement imrs)
Parameters
Returns
Declaration
protected virtual IStatement ConvertStatement(IStatement ist)
Parameters
Returns
Declaration
protected virtual void ConvertStatements(IList<IStatement> outputs, IEnumerable<IStatement> inputs)
Parameters
Declaration
protected virtual IStatement ConvertSwitch(ISwitchStatement iss)
Parameters
Returns
Declaration
protected virtual void ConvertSwitchCase(IList<ISwitchCase> cases, ISwitchCase isc)
Parameters
Declaration
protected virtual IExpression ConvertThis(IThisReferenceExpression itre)
Parameters
Returns
Declaration
protected virtual IStatement ConvertThrow(IThrowExceptionStatement its)
Parameters
Returns
Convert a type declaration
Declaration
public virtual ITypeDeclaration ConvertType(ITypeDeclaration itd)
Parameters
Returns
Declaration
protected virtual IExpression ConvertTypeOfExpr(ITypeOfExpression itoe)
Parameters
Returns
Declaration
public virtual void ConvertTypeProperties(ITypeDeclaration td, ITypeDeclaration itd)
Parameters
Declaration
protected virtual ITypeReference ConvertTypeReference(ITypeReference itr)
Parameters
Returns
Declaration
protected virtual IExpression ConvertTypeRefExpr(ITypeReferenceExpression itre)
Parameters
Returns
Declaration
protected virtual IExpression ConvertUnary(IUnaryExpression iue)
Parameters
Returns
Declaration
protected virtual IStatement ConvertUsing(IUsingStatement ius)
Parameters
Returns
Declaration
protected virtual IVariableDeclaration ConvertVariableDecl(IVariableDeclaration ivd)
Parameters
Returns
Declaration
protected virtual IExpression ConvertVariableDeclExpr(IVariableDeclarationExpression ivde)
Parameters
Returns
Declaration
protected virtual IExpression ConvertVariableRefExpr(IVariableReferenceExpression ivre)
Parameters
Returns
Declaration
protected virtual IStatement ConvertWhile(IWhileStatement iws)
Parameters
Returns
Declaration
protected virtual IMethodDeclaration DoConvertConstructor(IConstructorDeclaration cd, IConstructorDeclaration icd)
Parameters
Returns
Declaration
protected virtual IExpression DoConvertExpression(IExpression expr)
Parameters
Returns
Declaration
protected virtual IMethodDeclaration DoConvertMethod(IMethodDeclaration md, IMethodDeclaration imd)
Parameters
Returns
DoConvertMethodBody(IList<IStatement>, IList<IStatement>)
Declaration
protected virtual void DoConvertMethodBody(IList<IStatement> outputs, IList<IStatement> inputs)
Parameters
Declaration
protected virtual IStatement DoConvertStatement(IStatement ist)
Parameters
Returns
Declaration
protected void Error(string msg)
Parameters
| Type |
Name |
Description |
| String |
msg |
|
Declaration
protected void Error(string msg, Exception ex)
Parameters
When using OpenOutputBlock, this must be called after converting each statement.
Declaration
protected void FinishConvertStatement()
Declaration
protected virtual void Initialise()
Declaration
protected void OpenOutputBlock(ICollection<IStatement> outputs)
Parameters
Declaration
protected void RegisterUnchangedStatement(IStatement st)
Parameters
Declaration
protected void RegisterUnchangedStatements(IEnumerable<IStatement> stmts)
Parameters
Declaration
public virtual ITypeDeclaration Transform(ITypeDeclaration itd)
Parameters
Returns
Declaration
protected void Warning(string msg)
Parameters
| Type |
Name |
Description |
| String |
msg |
|
Declaration
protected void Warning(string msg, Exception ex)
Parameters
Implements