public static ILInstruction GetTypeInstruction(ITypeInstruction instruction) { return(instruction == null ? null : new ILInstruction() { TypeInstruction = new TypeInstruction() { InstructionType = instruction.InstructionType, Token = instruction.Token } }); }
public CodeNamespace GenerateCode(XmlReader reader) { CodeTypeDeclaration templateType = new CodeTypeDeclaration(defaultTypeName); templateType.Attributes = MemberAttributes.Family; templateType.IsPartial = true; CodeNamespace templateNamespace = new CodeNamespace(defaultTargetNamespace); templateNamespace.Types.Add(templateType); AddCommonImports(templateNamespace); CodeMemberMethod renderMethod = new CodeMemberMethod(); renderMethod.Name = "Render"; renderMethod.Attributes = MemberAttributes.Public | MemberAttributes.Final; renderMethod.Parameters.Add(new CodeParameterDeclarationExpression( typeof(XmlWriter), "writer")); CodeArgumentReferenceExpression writerExpression = new CodeArgumentReferenceExpression("writer"); templateType.Members.Add(renderMethod); templateType.Members.Add(BuildConverter()); while (reader.Read()) { if (reader.NodeType == XmlNodeType.ProcessingInstruction) { ThrowIfUnknownInstruction(reader); if (typeInstructions.ContainsKey(reader.LocalName)) { ITypeInstruction ti = typeInstructions[reader.LocalName]; ti.Process(reader.Value, templateNamespace, templateType, renderMethod); } if (inlineInstructions.ContainsKey(reader.LocalName)) { IInlineInstruction ii = inlineInstructions[reader.LocalName]; CodeStatementCollection col = ii.Process(reader.Value); renderMethod.Statements.AddRange(col); } } else { renderMethod.Statements.AddRange( generationFunctions[reader.NodeType](reader, writerExpression)); } } return(templateNamespace); }
public virtual void VisitStoreObjectInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitStoreArrayElementInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitSizeOfInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitNewArrayInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitLoadTypeReferenceInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitBoxInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitLoadArrayElementAddressInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitIsInstanceOfClassInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitInitializeObjectInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitConstrainedInstruction(ITypeInstruction instruction) { Visit(instruction); }
public virtual void VisitUnboxAnyInstruction(ITypeInstruction instruction) { Visit(instruction); }
public static void VisitTypeInstruction(ITypeInstruction typeInstruction, IILInstructionVisitor visitor) { typeInstructionVisitor[typeInstruction.InstructionType](visitor)(typeInstruction); }