static void GenerateVBCodeForService(Uri metadataAddress, string outputFile) { MetadataExchangeClient mexClient = new MetadataExchangeClient(metadataAddress, MetadataExchangeClientMode.HttpGet); mexClient.ResolveMetadataReferences = true; MetadataSet metaDocs = mexClient.GetMetadata(); WsdlImporter importer = new WsdlImporter(metaDocs); ServiceContractGenerator generator = new ServiceContractGenerator(); System.Collections.ObjectModel.Collection<ContractDescription> contracts = importer.ImportAllContracts(); foreach (ContractDescription contract in contracts) { generator.GenerateServiceContractType(contract); } if (generator.Errors.Count != 0) throw new ApplicationException("There were errors during code compilation."); // Write the code dom. System.CodeDom.Compiler.CodeGeneratorOptions options = new System.CodeDom.Compiler.CodeGeneratorOptions(); options.BracingStyle = "C"; System.CodeDom.Compiler.CodeDomProvider codeDomProvider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("VB"); System.CodeDom.Compiler.IndentedTextWriter textWriter = new System.CodeDom.Compiler.IndentedTextWriter(new System.IO.StreamWriter(outputFile)); codeDomProvider.GenerateCodeFromCompileUnit(generator.TargetCompileUnit, textWriter, options); textWriter.Close(); }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("continue;"); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("Continue For"); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: if (_csStatement != null) using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromStatement(_csStatement, tw, opts); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: if (_vbStatement != null) using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromStatement(_vbStatement, tw, opts); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("var {0} = ", provider.CreateEscapedIdentifier(VariableName)); provider.GenerateCodeFromExpression(InitExpression, tw, opts); tw.Write(";"); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("Dim {0} = ", provider.CreateEscapedIdentifier(VariableName)); provider.GenerateCodeFromExpression(InitExpression, tw, opts); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.WriteLine("do"); tw.WriteLine("{"); tw.Indent++; if (Statements != null) foreach (CodeStatement statement in Statements) { provider.GenerateCodeFromStatement(statement, tw, opts); } tw.Indent--; tw.Write("} while ("); if (TestExpression != null) provider.GenerateCodeFromExpression(TestExpression, tw, opts); tw.WriteLine(");"); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.WriteLine("Do"); tw.Indent++; if (Statements != null) foreach (CodeStatement statement in Statements) { provider.GenerateCodeFromStatement(statement, tw, opts); } tw.Indent--; tw.Write("Loop Until "); if (TestExpression != null) provider.GenerateCodeFromExpression(TestExpression, tw, opts); tw.WriteLine(); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void WriteAsYAML(System.CodeDom.Compiler.IndentedTextWriter TW, bool showConstraints, bool showVariables) { TW.WriteLine("state_id: {0}", this.Id); TW.Write("status:"); if (Finished()) { // Nested dictionary TW.Indent += 1; TW.WriteLine(""); TW.WriteLine("message: \"{0}\"", this.TerminationType.GetMessage()); var exitLoc = this.TerminationType.ExitLocation; TW.WriteLine("line_num: {0}", exitLoc.LineNumber); TW.WriteLine("termination_type: \"{0}\"", this.TerminationType.GetType().ToString()); TW.Indent -= 1; } else { TW.WriteLine(" \"running\""); } TW.Write("created_at:"); if (CreatedAt == null) { TW.WriteLine(" null"); } else { TW.Indent += 1; TW.WriteLine(""); TW.WriteLine("line_num: {0}", CreatedAt.LineNumber); // FIXME: The line should be escaped to be YAML compatible TW.WriteLine("line: \"{0}\"", CreatedAt.Line); TW.Indent -= 1; } TW.WriteLine("explicit_branch_depth: {0}", this.ExplicitBranchDepth.ToString().ToLower()); TW.WriteLine("speculative: {0}", this.Speculative.ToString().ToLower()); // write memory TW.WriteLine("memory:"); TW.Indent += 1; Mem.WriteAsYAML(TW, showVariables); TW.Indent -= 1; // Write constraints TW.WriteLine("constraints:"); TW.Indent += 1; Constraints.WriteAsYAML(TW, showConstraints); TW.Indent -= 1; }
internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon) { var indent = writer.Indent; if (indent != 0) { writer.Indent--; } writer.WriteLine("default:"); if (indent != 0) { writer.Indent++; } }
public override string ToString() { string result; using (var SW = new StringWriter()) { using (var ITW = new System.CodeDom.Compiler.IndentedTextWriter(SW)) { WriteAsYAML(ITW); } result = SW.ToString(); } return(result); }
internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, JsFormatter formatter) { writer.Write("if"); writer.Write(formatter.Padding + "("); Condition.Write(writer, formatter); writer.Write(")" + formatter.Padding); Action.Write(writer, formatter); if (Else != null) { writer.Write("else"); writer.Write(Else is JsBlock ? formatter.Padding : " "); Else.Write(writer, formatter); } }
internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon) { writer.Write(string.Concat("switch", formatter.Padding, "(")); Expression.Write(writer, formatter); writer.WriteLine(")"); writer.WriteLine("{"); writer.Indent++; foreach (var stmt in Statements) { stmt.Write(writer, formatter); } writer.Indent--; writer.WriteLine("}"); }
static void Main() { string outputFile = "c:\\temp\\test"; //<Snippet0> EndpointAddress mexAddress = new EndpointAddress("http://localhost:8000/ServiceModelSamples/service/mex"); //</Snippet0> //<Snippet1> MetadataExchangeClient mexClient = new MetadataExchangeClient(mexAddress); mexClient.ResolveMetadataReferences = true; MetadataSet metaSet = mexClient.GetMetadata(); //</Snippet1> //<Snippet2> WsdlImporter importer = new WsdlImporter(metaSet); System.Collections.ObjectModel.Collection <ContractDescription> contracts = importer.ImportAllContracts(); //</Snippet2> //<Snippet3> ServiceContractGenerator generator = new ServiceContractGenerator(); foreach (ContractDescription contract in contracts) { generator.GenerateServiceContractType(contract); } if (generator.Errors.Count != 0) { throw new Exception("There were errors during code compilation."); } //</Snippet3> // Write the code dom //<Snippet4> System.CodeDom.Compiler.CodeGeneratorOptions options = new System.CodeDom.Compiler.CodeGeneratorOptions(); options.BracingStyle = "C"; System.CodeDom.Compiler.CodeDomProvider codeDomProvider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("C#"); System.CodeDom.Compiler.IndentedTextWriter textWriter = new System.CodeDom.Compiler.IndentedTextWriter(new System.IO.StreamWriter(outputFile)); codeDomProvider.GenerateCodeFromCompileUnit(generator.TargetCompileUnit, textWriter, options); textWriter.Close(); //</Snippet4> Console.WriteLine(); Console.WriteLine("Press <ENTER> to terminate client."); Console.ReadLine(); }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { if (!_eq) { tw.Write("!"); } tw.Write("ReferenceEquals("); provider.GenerateCodeFromExpression(_left, tw, opts); tw.Write(", "); provider.GenerateCodeFromExpression(_right, tw, opts); tw.Write(")"); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromExpression(_left, tw, opts); if (_eq) { tw.Write(" Is "); } else { tw.Write(" IsNot "); } provider.GenerateCodeFromExpression(_right, tw, opts); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("new "); provider.GenerateCodeFromExpression(new CodeTypeReferenceExpression(TypeReference.ArrayElementType), tw, opts); tw.Write("["); for (int i = 0; i < Dimensions.Count; i++) { if (i > 0) tw.Write(","); provider.GenerateCodeFromExpression(Dimensions[i], tw, opts); } tw.Write("]"); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("("); for (int i = 0; i < Dimensions.Count; i++) { if (i > 0) tw.Write(","); tw.Write("("); provider.GenerateCodeFromExpression(Dimensions[i], tw, opts); tw.Write(")-1"); } tw.Write(") as "); provider.GenerateCodeFromExpression(new CodeTypeReferenceExpression(TypeReference), tw, opts); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
protected virtual void BaseTrace(System.CodeDom.Compiler.IndentedTextWriter writer) { writer.Write("["); writer.Write("Id="); writer.Write(this.Id); writer.Write(","); writer.Write("Gender="); writer.Write(this.Gender); writer.Write(","); writer.Write("Day="); writer.Write(this.Day); writer.Write(", EntityState="); writer.Write(this.EntityState); writer.Write("]"); }
protected virtual void BaseTrace(System.CodeDom.Compiler.IndentedTextWriter writer) { writer.Write("["); writer.Write("Id="); writer.Write(this.Id); writer.Write(","); writer.Write("FirstName="); writer.Write(this.FirstName); writer.Write(","); writer.Write("LastName="); writer.Write(this.LastName); writer.Write(", EntityState="); writer.Write(this.EntityState); writer.Write("]"); }
protected virtual void BaseTrace(System.CodeDom.Compiler.IndentedTextWriter writer) { writer.Write("["); writer.Write("Id="); writer.Write(this.Id); writer.Write(","); writer.Write("Name="); writer.Write(this.Name); writer.Write(","); writer.Write("CardNumber="); writer.Write(this.CardNumber); writer.Write(", EntityState="); writer.Write(this.EntityState); writer.Write("]"); }
protected virtual void BaseTrace(System.CodeDom.Compiler.IndentedTextWriter writer) { writer.Write("["); writer.Write("Id="); writer.Write(this.Id); writer.Write(","); writer.Write("FullName="); writer.Write(this.FullName); writer.Write(","); writer.Write("DateOfBirth="); writer.Write(this.DateOfBirth); writer.Write(", EntityState="); writer.Write(this.EntityState); writer.Write("]"); }
internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon) { writer.Write(string.Concat("while", formatter.Padding, "(")); Expression.Write(writer, formatter); writer.WriteLine(")"); if (Body.Kind != StatementKind.Sequence) { writer.Indent++; } Body.Write(writer, formatter); if (Body.Kind != StatementKind.Sequence) { writer.Indent--; } }
protected virtual void BaseTrace(System.CodeDom.Compiler.IndentedTextWriter writer) { writer.Write("["); writer.Write("Id="); writer.Write(this.Id); writer.Write(","); writer.Write("Password="******","); writer.Write("UserName="******","); writer.Write("SecurityStamp="); writer.Write(this.SecurityStamp); writer.Write(","); writer.Write("Roles="); if ((this._roles != null)) { ((CodeFluent.Runtime.ICodeFluentObject)(this._roles)).Trace(writer); } else { writer.Write("<null>"); } writer.Write(","); writer.Write("ExternalLogins="); if ((this._externalLogins != null)) { ((CodeFluent.Runtime.ICodeFluentObject)(this._externalLogins)).Trace(writer); } else { writer.Write("<null>"); } writer.Write(","); writer.Write("Claims="); if ((this._claims != null)) { ((CodeFluent.Runtime.ICodeFluentObject)(this._claims)).Trace(writer); } else { writer.Write("<null>"); } writer.Write(", EntityState="); writer.Write(this.EntityState); writer.Write("]"); }
static void GenerateCSCodeForService(EndpointAddress metadataAddress, string outputFile) { MetadataExchangeClient mexClient = new MetadataExchangeClient(metadataAddress); mexClient.ResolveMetadataReferences = true; MetadataSet metaDocs = mexClient.GetMetadata(); WsdlImporter importer = new WsdlImporter(metaDocs); ServiceContractGenerator generator = new ServiceContractGenerator(); // Uncomment the following code if you are going to do your work programmatically rather than add // the WsdlDocumentationImporters through a configuration file. /* * // The following code inserts the custom WSDL programmatically adding the custom WsdlImporter without * // removing the other importers already in the collection. * System.Collections.Generic.IEnumerable<IWsdlImportExtension> exts = importer.WsdlExtensions; * System.Collections.Generic.List<IWsdlImportExtension> newExts = new System.Collections.Generic.List<IWsdlImportExtension>(); * foreach (IWsdlImportExtension ext in exts) * newExts.Add(ext); * newExts.Add(new WsdlDocumentationImporter()); * importer = new WsdlImporter(newExts.ToArray(), metaDocs.MetadataSections); */ System.Collections.ObjectModel.Collection <ContractDescription> contracts = importer.ImportAllContracts(); foreach (ContractDescription contract in contracts) { generator.GenerateServiceContractType(contract); } if (generator.Errors.Count != 0) { throw new ApplicationException("There were errors during code compilation."); } // Write the code dom System.CodeDom.Compiler.CodeGeneratorOptions options = new System.CodeDom.Compiler.CodeGeneratorOptions(); options.BracingStyle = "C"; System.CodeDom.Compiler.CodeDomProvider codeDomProvider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("C#"); System.CodeDom.Compiler.IndentedTextWriter textWriter = new System.CodeDom.Compiler.IndentedTextWriter(new System.IO.StreamWriter(outputFile)); codeDomProvider.GenerateCodeFromCompileUnit( generator.TargetCompileUnit, textWriter, options ); textWriter.Close(); }
public void WriteAsYAML(System.CodeDom.Compiler.IndentedTextWriter TW, bool showVariables) { TW.WriteLine("procedure: \"{0}\"", IsDummy? Proc.Name : Impl.Name); if (!IsDummy) { TW.WriteLine("current_block: \"{0}\"", CurrentBlock); TW.Write("current_instruction:"); if (CurrentInstruction.Current != null) { TW.WriteLine(""); TW.Indent += 1; // Should we mention the filename too? TW.WriteLine("line: {0}", CurrentInstruction.Current.tok.line); TW.WriteLine("instruction: \"{0}\"", CurrentInstruction.Current.ToString().TrimEnd('\n')); TW.Indent -= 1; } else { TW.WriteLine(" null"); } } TW.WriteLine("num_locals: {0}", Locals.Count); if (showVariables) { TW.WriteLine("locals:"); TW.Indent += 1; if (Locals.Count == 0) { TW.WriteLine("{}"); } else { foreach (var pair in Locals) { TW.WriteLine("\"{0}\":", pair.Key.ToString()); TW.Indent += 1; TW.WriteLine("type: \"{0}\"", pair.Key.TypedIdent.Type); TW.WriteLine("expr: \"{0}\"", pair.Value); TW.Indent -= 1; } } TW.Indent -= 1; } }
public static void FileOpen(System.CodeDom.Compiler.IndentedTextWriter inWriter, string import, string fileName, string genDateTime) { inWriter.WriteLine("using System;"); foreach (string s in import.Split(',')) { inWriter.WriteLine("using " + s.Trim() + ";"); } inWriter.WriteLine("/// <summary>"); inWriter.WriteLine("/// " + System.IO.Path.GetFileName(fileName)); inWriter.WriteLine("/// Last Generated on Date: " + genDateTime); inWriter.WriteLine("/// </summary>"); }
internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon) { var indent = writer.Indent; if (indent != 0) { writer.Indent--; } writer.Write("case "); Expression.Write(writer, formatter); writer.WriteLine(":"); if (indent != 0) { writer.Indent++; } }
protected override void RefreshValue() { using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("("); provider.GenerateCodeFromExpression(Expression, tw, opts); tw.Write(" is "); provider.GenerateCodeFromExpression(new CodeTypeReferenceExpression(TypeReference), tw, opts); tw.Write(")"); Value = tw.InnerWriter.ToString(); } } }
public void GenerateCode(CodeDomGenerator.Language language) { if (_left == null) { return; } switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromExpression(_left, tw, opts); if (_right != null) { tw.Write(_separator); provider.GenerateCodeFromExpression(_right, tw, opts); } Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromExpression(_left, tw, opts); if (_right != null) { tw.Write(_separator); provider.GenerateCodeFromExpression(_right, tw, opts); } Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromExpression(Parameter, tw, opts); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); StringBuilder sb = new StringBuilder(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(sb), opts.IndentString)) { provider.GenerateCodeFromExpression(Parameter, tw, opts); switch (Option) { case ParamOption.Optional: sb.Replace("ByVal " + Parameter.Name, "Optional ByVal " + Parameter.Name); break; case ParamOption.ParamArray: sb.Replace("ByVal " + Parameter.Name, "ByVal ParamArray " + Parameter.Name); break; default: throw new NotSupportedException(Option.ToString()); } Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void WriteAsYAML(System.CodeDom.Compiler.IndentedTextWriter TW) { double total = (ConstraintSetsReduced + ConstraintSetsLeftUnchanged); double reduceP = 100 * ((float)ConstraintSetsReduced) / total; double sameP = 100 * ((float)ConstraintSetsLeftUnchanged) / total; TW.WriteLine("{0}:", this.GetType().ToString()); TW.Indent += 1; TW.WriteLine("constraint_sets_reduced: {0} #({1}%)", ConstraintSetsReduced, reduceP); TW.WriteLine("constraint_sets_left_unchanged: {0} #({1}%)", ConstraintSetsLeftUnchanged, sameP); TW.WriteLine("constraint_set_reduction_time: {0}", TimeUsedToComputeReducedConstraintSet.TotalSeconds); TW.WriteLine("underlying_solver:"); TW.Indent += 1; UnderlyingSolverStats.WriteAsYAML(TW); TW.Indent -= 2; }
protected virtual void BaseTrace(System.CodeDom.Compiler.IndentedTextWriter writer) { writer.Write("["); writer.Write("Id="); writer.Write(this.Id); writer.Write(","); writer.Write("Line1="); writer.Write(this.Line1); writer.Write(","); writer.Write("Line2="); writer.Write(this.Line2); writer.Write(","); writer.Write("City="); writer.Write(this.City); writer.Write(","); writer.Write("Zip="); writer.Write(this.Zip); writer.Write(","); writer.Write("Country="); writer.Write(this.Country); writer.Write(","); writer.Write("Contact="); if ((this._contact != null)) { ((CodeFluent.Runtime.Diagnostics.ITraceable)(this._contact)).Trace(writer); } else { writer.Write("<null>"); } writer.Write(","); writer.Write("_contactId="); writer.Write(this._contactId); writer.Write(","); writer.Write("GoogleMapUrl="); writer.Write(this.GoogleMapUrl); writer.Write(","); writer.Write("LiveMapUrl="); writer.Write(this.LiveMapUrl); writer.Write(", EntityState="); writer.Write(this.EntityState); writer.Write("]"); }
internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, JsFormatter formatter) { writer.Write("function"); if (!string.IsNullOrEmpty(Name)) { writer.Write(string.Concat(" ", Name)); } writer.Write(formatter.Padding + "("); writer.Write(string.Join("," + formatter.Padding, Parameters)); writer.Write(")" + formatter.Padding); writer.WriteLine("{"); writer.Indent++; foreach (var js in Body) { js.Write(writer, formatter); } writer.Indent--; writer.Write("}"); }
public void XmlDocumentLoading() { string xml = "<customer id='1' pp:id='aba' xmlns='urn-kzu' xmlns:pp='urn-pepenamespace'><pp:order /><order id='1'>Chocolates</order></customer>"; XPathNavigator nav = new XPathDocument(new StringReader(xml)).CreateNavigator(); XmlReader reader = new XPathNavigatorReader(nav); //XmlReader reader = new XmlTextReader(new StringReader(xml)); //reader.MoveToContent(); //Console.WriteLine(reader.ReadOuterXml()); System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(Console.Out); while (reader.Read()) { tw.Indent = reader.Depth; tw.WriteLine("Name={0}, Type={1}", reader.Name, reader.NodeType); int count = reader.AttributeCount; //reader.MoveToFirstAttribute(); //for (int i = 0; i < count; i++) while (reader.MoveToNextAttribute()) { tw.Indent = reader.Depth; tw.Write("{0}=", reader.Name); reader.ReadAttributeValue(); tw.WriteLine(reader.Value); //reader.MoveToNextAttribute(); } } //reader = new DebuggingXmlTextReader(new XPathNavigatorReader(nav)); reader = new XPathNavigatorReader(nav); XmlDocument doc = new XmlDocument(nav.NameTable); doc.Load(reader); Assert.AreEqual("customer", doc.DocumentElement.LocalName); Assert.AreEqual("urn-kzu", doc.DocumentElement.NamespaceURI); Assert.AreEqual(4, doc.DocumentElement.Attributes.Count); Assert.AreEqual(2, doc.DocumentElement.ChildNodes.Count); }
internal override void Write(System.CodeDom.Compiler.IndentedTextWriter writer, GmlFormatter formatter, bool semicolon) { writer.Write(string.Concat("for", formatter.Padding, "(")); Initializer.Write(writer, formatter, false); writer.Write(";" + formatter.Padding); Test.Write(writer, formatter); writer.Write(";" + formatter.Padding); Iterator.Write(writer, formatter, false); writer.WriteLine(")"); if (Body.Kind != StatementKind.Sequence) { writer.Indent++; } Body.Write(writer, formatter); if (Body.Kind != StatementKind.Sequence) { writer.Indent--; } }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { if (!_eq) { tw.Write("!"); } tw.Write("ReferenceEquals("); provider.GenerateCodeFromExpression(_left, tw, opts); tw.Write(", "); provider.GenerateCodeFromExpression(_right, tw, opts); tw.Write(")"); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromExpression(_left, tw, opts); if (_eq) tw.Write(" Is "); else tw.Write(" IsNot "); provider.GenerateCodeFromExpression(_right, tw, opts); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromExpression(_condition, tw, opts); tw.Write("?"); provider.GenerateCodeFromExpression(_truePart, tw, opts); tw.Write(":"); provider.GenerateCodeFromExpression(_falsePart, tw, opts); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("If("); provider.GenerateCodeFromExpression(_condition, tw, opts); tw.Write(","); provider.GenerateCodeFromExpression(_truePart, tw, opts); tw.Write(","); provider.GenerateCodeFromExpression(_falsePart, tw, opts); tw.Write(")"); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void WriteAsYAML(System.CodeDom.Compiler.IndentedTextWriter TW, bool showVariables) { // Globals TW.WriteLine("num_globals: {0}", Globals.Count); if (showVariables) { TW.WriteLine("globals:"); TW.Indent += 1; if (Globals.Count == 0) { TW.WriteLine("{}"); // Emtpy dictionary } else { foreach (var pair in Globals) { TW.WriteLine("\"{0}\":", pair.Key.ToString()); TW.Indent += 1; TW.WriteLine("type: \"{0}\"", pair.Key.TypedIdent.Type); TW.WriteLine("expr: \"{0}\"", pair.Value); TW.Indent -= 1; } } TW.Indent -= 1; } // Stackframe int depth = Stack.Count; TW.WriteLine("stack_depth: {0}", depth); TW.WriteLine("stack:"); TW.Indent += 1; for (int index = depth - 1; index >= 0; --index) { TW.WriteLine("-"); TW.Indent += 1; Stack[index].WriteAsYAML(TW, showVariables); TW.Indent -= 1; } TW.Indent -= 1; }
public static void GenerateViaCodeDOM(string outputFileName, System.CodeDom.Compiler.CodeDomProvider provider, System.CodeDom.CodeCompileUnit compileunit) { System.CodeDom.Compiler.ICodeGenerator gen = provider.CreateGenerator(); System.CodeDom.Compiler.IndentedTextWriter tw; try { tw = new System.CodeDom.Compiler.IndentedTextWriter(new System.IO.StreamWriter(outputFileName, false), " "); gen.GenerateCodeFromCompileUnit(compileunit, tw, new System.CodeDom.Compiler.CodeGeneratorOptions()); tw.Flush(); tw.Close(); } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex); throw; } }
public static System.IO.Stream GenerateViaCodeDOM(Utility.OutputType outputType, System.CodeDom.CodeCompileUnit compileunit) { System.CodeDom.Compiler.CodeDomProvider provider = null; System.CodeDom.Compiler.ICodeGenerator gen; System.CodeDom.Compiler.IndentedTextWriter tw = null; System.IO.MemoryStream stream; System.IO.StreamWriter writer; switch (outputType) { case Utility.OutputType.VB: provider = new Microsoft.VisualBasic.VBCodeProvider(); break; case Utility.OutputType.CSharp: provider = new Microsoft.CSharp.CSharpCodeProvider(); break; } gen = provider.CreateGenerator(); try { stream = new System.IO.MemoryStream(); writer = new System.IO.StreamWriter(stream); tw = new System.CodeDom.Compiler.IndentedTextWriter(writer, " "); gen.GenerateCodeFromCompileUnit(compileunit, tw, new System.CodeDom.Compiler.CodeGeneratorOptions()); tw.Flush(); stream.Seek(0, System.IO.SeekOrigin.Begin); } catch (System.Exception ex) { System.Diagnostics.Debug.WriteLine(ex); if (tw != null) { tw.Flush(); tw.Close(); } throw; } return(stream); }
private static void ColumnMethods(System.CodeDom.Compiler.IndentedTextWriter inWriter, System.Xml.XmlNamespaceManager nsmgr, System.Xml.XmlNode node) { string netTypeName = Utility.Tools.GetAttributeOrEmpty(node, "NETType"); string name = Utility.Tools.GetAttributeOrEmpty(node, "Name"); if (netTypeName.Trim().Length == 0) { inWriter.WriteLine(""); inWriter.WriteLine("// Column " + name + " is not included because it uses"); inWriter.WriteLine("// a SQLType (" + netTypeName + ") that is not yet supported"); inWriter.WriteLine(""); } else { inWriter.WriteLine("public ColumnInfo " + name + "()"); Support.WriteLineAndIndent(inWriter, "{"); inWriter.WriteLine("ColumnInfo columnInfo = new ColumnInfo"); inWriter.WriteLine("columnInfo.FieldName = " + Support.DQ + name + Support.DQ); inWriter.WriteLine("columnInfo.FieldType = GetType(" + netTypeName + ")"); inWriter.WriteLine("columnInfo.SQLType = " + Support.DQ + Utility.Tools.GetAttributeOrEmpty(node, "SQLType") + Support.DQ); inWriter.WriteLine("columnInfo.Caption = " + Support.DQ + Utility.Tools.GetAttributeOrEmpty(node, "Caption") + Support.DQ); inWriter.WriteLine("columnInfo.Desc = " + Support.DQ + Utility.Tools.GetAttributeOrEmpty(node, "Desc") + Support.DQ); inWriter.WriteLine("return columnInfo"); Support.WriteLineAndOutdent(inWriter, "}"); inWriter.WriteLine(""); inWriter.WriteLine("public " + netTypeName + " " + name); Support.WriteLineAndIndent(inWriter, "{"); inWriter.WriteLine("get"); Support.WriteLineAndIndent(inWriter, "{"); inWriter.WriteLine("return m" + name + ";"); Support.WriteLineAndOutdent(inWriter, "}"); inWriter.WriteLine("set"); Support.WriteLineAndIndent(inWriter, "{"); inWriter.WriteLine("m" + name + " = value;"); Support.WriteLineAndOutdent(inWriter, "}"); Support.WriteLineAndOutdent(inWriter, "}"); } }
public void Dump() { System.CodeDom.Compiler.IndentedTextWriter indent = new System.CodeDom.Compiler.IndentedTextWriter(Console.Out); indent.WriteLine("--------"); foreach (IBlockLine line in (IEnumerable<IBlockLine>) lines) { if ((line is BlockInstruction) && ((BlockInstruction) line).Operation == BlockOperation.BeginScope) indent.Indent++; indent.WriteLine(line); if ((line is BlockInstruction) && ((BlockInstruction) line).Operation == BlockOperation.EndScope) indent.Indent--; } }
static void GenerateVBCodeForService(EndpointAddress metadataAddress, string outputFile) { MetadataExchangeClient mexClient = new MetadataExchangeClient(metadataAddress); mexClient.ResolveMetadataReferences = true; MetadataSet metaDocs = mexClient.GetMetadata(); WsdlImporter importer = new WsdlImporter(metaDocs); ServiceContractGenerator generator = new ServiceContractGenerator(); // Uncomment the following code if you are going to do your work programmatically rather than add // the WsdlDocumentationImporters through a configuration file. /* // The following code inserts the custom WSDL programmatically adding the custom WsdlImporter without // removing the other importers already in the collection. System.Collections.Generic.IEnumerable<IWsdlImportExtension> exts = importer.WsdlExtensions; System.Collections.Generic.List<IWsdlImportExtension> newExts = new System.Collections.Generic.List<IWsdlImportExtension>(); foreach (IWsdlImportExtension ext in exts) newExts.Add(ext); newExts.Add(new WsdlDocumentationImporter()); importer = new WsdlImporter(newExts.ToArray(), metaDocs.MetadataSections); */ System.Collections.ObjectModel.Collection<ContractDescription> contracts = importer.ImportAllContracts(); foreach (ContractDescription contract in contracts) { generator.GenerateServiceContractType(contract); } if (generator.Errors.Count != 0) throw new ApplicationException("There were errors during code compilation."); // Write the code dom. System.CodeDom.Compiler.CodeGeneratorOptions options = new System.CodeDom.Compiler.CodeGeneratorOptions(); options.BracingStyle = "C"; System.CodeDom.Compiler.CodeDomProvider codeDomProvider = System.CodeDom.Compiler.CodeDomProvider.CreateProvider("VB"); System.CodeDom.Compiler.IndentedTextWriter textWriter = new System.CodeDom.Compiler.IndentedTextWriter(new System.IO.StreamWriter(outputFile)); codeDomProvider.GenerateCodeFromCompileUnit(generator.TargetCompileUnit, textWriter, options); textWriter.Close(); }
/// <summary> /// Persists the artifact in a single file /// </summary> /// <param name="artifact"></param> /// <param name="productionContext"></param> private void PersistSingleFile(GeneratedArtifact artifact, ProductionContext productionContext) { string filePath = resolveTemplate(artifact.GroupFilePathTemplate, productionContext); Writer = Services.IOService.OpenIndentedTextWrite(filePath); // write begin file ArtifactBegin(); // write autogenerated infos AutogeneratedInfoBegin(); artifact.WriteAutogeneratedInfosTo(Writer); AutogeneratedInfoEnd(); // write artifact imports List<string> writtenImports = new List<string>(); artifact.WriteImportsTo(Writer, writtenImports); foreach (ArtifactDataItem artifactDataItem in artifact.ArtifactDataItems) { artifactDataItem.WriteImportsTo(Writer, writtenImports); } string ns = null; int baseIndent = 0; // namespace can be null if not required by target technology if (!string.IsNullOrEmpty(artifact.NamespaceTemplate)) { // open namespace ns = resolveTemplate(artifact.NamespaceTemplate, productionContext); baseIndent = OpenNamespace(ns); } // write artifact code lines foreach (ArtifactDataItem artifactDataItem in artifact.ArtifactDataItems) { artifactDataItem.WriteCodeLinesTo(Writer, baseIndent); } Writer.Indent = Math.Max(0, Writer.Indent - baseIndent); if (ns != null) { // close namespace CloseNamespace(ns); } // write end file ArtifactEnd(); Writer.Close(); }
public static void DumpSourceToStream(Node n, System.IO.TextWriter t) { Console.WriteLine("*** Begin Source dump: ["); System.CodeDom.Compiler.IndentedTextWriter i = new System.CodeDom.Compiler.IndentedTextWriter(t, " "); n.ToSource(i); Console.WriteLine("] *** End source dump"); i.Close(); i = null; }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("switch ("); if (SwitchExpression != null) provider.GenerateCodeFromExpression(SwitchExpression, tw, opts); tw.WriteLine(")"); tw.WriteLine("{"); tw.Indent++; foreach (CaseBlock c in m_cases) { if (c.Statements != null) { if (c.CaseExpression != null) { tw.Write("case "); provider.GenerateCodeFromExpression(c.CaseExpression, tw, opts); tw.WriteLine(":"); } else { tw.WriteLine("default:"); } tw.Indent++; foreach (CodeStatement stmt in c.Statements) { provider.GenerateCodeFromStatement(stmt, tw, opts); } tw.Indent--; } //else //{ // tw.Indent++; // tw.WriteLine("break;"); // tw.Indent--; //} } tw.Indent--; tw.WriteLine("}"); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("Select Case "); if (SwitchExpression != null) provider.GenerateCodeFromExpression(SwitchExpression, tw, opts); tw.WriteLine(); tw.Indent++; foreach (CaseBlock c in m_cases) { if (c.Statements != null) { if (c.CaseExpression != null) { tw.Write("Case "); provider.GenerateCodeFromExpression(c.CaseExpression, tw, opts); tw.WriteLine(); } else { tw.WriteLine("Case Else"); } tw.Indent++; for (int i = 0; i < c.Statements.Length; i++) { CodeStatement stmt = c.Statements[i]; if (!(stmt is CodeExitSelectStatement) || i < c.Statements.Length-1) provider.GenerateCodeFromStatement(stmt, tw, opts); } tw.Indent--; } //else if (i < m_cases.Count - 1) //{ // tw.Indent++; // tw.WriteLine("Exit Select"); // tw.Indent--; //} } tw.Indent--; tw.WriteLine("End Select"); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("foreach ("); provider.GenerateCodeFromExpression(new CodeTypeReferenceExpression(IterationItemType), tw, opts); tw.Write(" {0} in ", provider.CreateValidIdentifier(IterationItemName)); provider.GenerateCodeFromExpression(IterExpression, tw, opts); tw.WriteLine(")"); tw.WriteLine("{"); tw.Indent++; if (Statements != null) foreach (CodeStatement statement in Statements) { provider.GenerateCodeFromStatement(statement, tw, opts); } tw.Indent--; tw.WriteLine("}"); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("For Each {0} As ", provider.CreateValidIdentifier(IterationItemName)); provider.GenerateCodeFromExpression(new CodeTypeReferenceExpression(IterationItemType), tw, opts); tw.Write(" in "); provider.GenerateCodeFromExpression(IterExpression, tw, opts); tw.WriteLine(); tw.Indent++; if (Statements != null) foreach (CodeStatement statement in Statements) { provider.GenerateCodeFromStatement(statement, tw, opts); } tw.Indent--; tw.WriteLine("Next"); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
/// <summary> /// Generate proxy to the Web service. /// </summary> /// <param name="wsdlUrl"></param> /// <param name="generatedSourceFilename"></param> /// <param name="generatedNamespace"></param> /// <param name="username"></param> /// <param name="password"></param> /// <returns></returns> public bool GenerateWsdlProxyClass(string wsdlUrl, string generatedSourceFilename, string generatedNamespace, string username, string password) { // erase the source file if (File.Exists(generatedSourceFilename)) File.Delete(generatedSourceFilename); // download the WSDL content into a service description WebClient http = new WebClient(); System.Web.Services.Description.ServiceDescription sd = null; if (!string.IsNullOrEmpty(username)) http.Credentials = new NetworkCredential(username, password); try { sd = System.Web.Services.Description.ServiceDescription.Read(http.OpenRead(wsdlUrl)); } catch (Exception ex) { this.ErrorMessage = "Wsdl Download failed: " + ex.Message; return false; } // create an importer and associate with the ServiceDescription ServiceDescriptionImporter importer = new ServiceDescriptionImporter(); importer.ProtocolName = "SOAP"; importer.CodeGenerationOptions = CodeGenerationOptions.None; importer.AddServiceDescription(sd, null, null); // Download and inject any imported schemas (ie. WCF generated WSDL) foreach (XmlSchema wsdlSchema in sd.Types.Schemas) { // Loop through all detected imports in the main schema foreach (XmlSchemaObject externalSchema in wsdlSchema.Includes) { // Read each external schema into a schema object and add to importer if (externalSchema is XmlSchemaImport) { Uri baseUri = new Uri(wsdlUrl); Uri schemaUri = new Uri(baseUri, ((XmlSchemaExternal)externalSchema).SchemaLocation); Stream schemaStream = http.OpenRead(schemaUri); System.Xml.Schema.XmlSchema schema = XmlSchema.Read(schemaStream, null); importer.Schemas.Add(schema); } } } // set up for code generation by creating a namespace and adding to importer CodeNamespace ns = new CodeNamespace(generatedNamespace); CodeCompileUnit ccu = new CodeCompileUnit(); ccu.Namespaces.Add(ns); importer.Import(ns, ccu); // final code generation in specified language CSharpCodeProvider provider = new CSharpCodeProvider(); System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StreamWriter(generatedSourceFilename)); provider.GenerateCodeFromCompileUnit(ccu, tw, new System.CodeDom.Compiler.CodeGeneratorOptions()); tw.Close(); return File.Exists(generatedSourceFilename); }
static int Main(string[] args) { if (args == null || !args.Any()) { NConfiguration.NConfigurationManager.Initialize(); Console.WriteLine(NConfiguration.NConfigurationManager.GetEnvironment()); } else if (!_validSwitches.Contains(args[0])) { PrintUsage(); return 1; } else if (args[0].StartsWith("-a")) { if (args.Length < 2) { PrintUsage(); return 1; } NConfiguration.NConfigurationManager.Initialize(); var key = args[1]; Console.WriteLine(NConfiguration.NConfigurationManager.GetAppSetting(key)); } else if (args[0].StartsWith("-c")) { if (args.Length < 2) { PrintUsage(); return 1; } NConfiguration.NConfigurationManager.Initialize(); var key = args[1]; Console.WriteLine(NConfiguration.NConfigurationManager.GetConnectionString(key)); } else if (args[0].StartsWith("-l")) { if (args.Length >= 2) { PrintUsage(); return 1; } Console.WriteLine("Key candidates for this PC"); var candidates = NConfiguration.NConfigurationManager.GetKeyCandidates(); foreach(var key in candidates) { Console.WriteLine("\t - {0}", key); } } else if (args[0].StartsWith("-e")) { if (args.Length >= 2) { PrintUsage(); return 1; } NConfiguration.NConfigurationManager.Initialize(); Console.WriteLine(NConfiguration.NConfigurationManager.GetEnvironment()); } else if (args[0].StartsWith("-v")) { var validationResults = NConfiguration.NConfigurationManager.ValidateAllConfigurations(); if (!validationResults.Any()) { Console.WriteLine("All the configuration files are in sync"); return 0; } using (var writer = new System.CodeDom.Compiler.IndentedTextWriter(Console.Error, " ")) { foreach (var validationResult in validationResults) { var color = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; writer.WriteLine("{0} has the following misconfigurations:", validationResult.Key); Console.ForegroundColor = color; writer.Indent = 1; foreach (var validationMessage in validationResult.Value) { writer.WriteLine(validationMessage); } writer.Indent = 0; } } return 1; } return 0; }
public void GenerateCode(CodeDomGenerator.Language language) { if (_left == null) return; switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromExpression(_left, tw, opts); if (_right != null) { tw.Write(_separator); provider.GenerateCodeFromExpression(_right, tw, opts); } Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { provider.GenerateCodeFromExpression(_left, tw, opts); if (_right != null) { tw.Write(_separator); provider.GenerateCodeFromExpression(_right, tw, opts); } Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
/// <summary> /// Persist each <see cref="ArtifactDataItem"/> in its own file. /// </summary> /// <param name="artifact"></param> /// <param name="productionContext"></param> private void PersistMultiFile(GeneratedArtifact artifact, ProductionContext productionContext) { foreach (ArtifactDataItem artifactDataItem in artifact.ArtifactDataItems) { // create writer string filePath = resolveTemplate(artifact.ItemFilePathTemplate, productionContext); Writer = Services.IOService.OpenIndentedTextWrite(filePath); // write begin file ArtifactBegin(); // write autogenerated infos AutogeneratedInfoBegin(); artifact.WriteAutogeneratedInfosTo(Writer); AutogeneratedInfoEnd(); // write artifact imports List<string> writtenImports = new List<string>(); artifact.WriteImportsTo(Writer, writtenImports); // write artifact item imports artifactDataItem.WriteImportsTo(Writer, writtenImports); // resolve and open namespace string ns = resolveTemplate(artifact.NamespaceTemplate, productionContext); int baseIndent = OpenNamespace(ns); // write artifact item code lines artifactDataItem.WriteCodeLinesTo(Writer, baseIndent); // close namespace CloseNamespace(ns); // write end file ArtifactEnd(); Writer.Close(); } }
static void Main(string[] args) { if (!args.Any()) { Console.Error.WriteLine("Needs a file as an argument"); return; } Debug.WriteLine("Input file is \"{0}\"", args.First()); var file = new StreamReader(args.First()); var levelstack = new Stack<int>(); // Parse mlst file List<Function> functions = new List<Function>(); List<string> @using = new List<string>(); @using.Add("JsonApi.Client"); @using.Add("JsonApi.Client.Classes"); @using.Add("JsonApi.Client.DataTypes"); @using.Add("System"); @using.Add("System.Collections.Generic"); @using.Add("System.Linq"); @using.Add("System.Text"); string @namespace = "JsonApi.Client.Extensions"; string @class = "CustomRequests"; Debug.WriteLine("Default imported namespaces: {0}", @using.Count); Debug.WriteLine("Default namespace: {0}", @namespace, null); // Yep, laziness found here. Debug.WriteLine("Default class: {0}", @class, null); string line = file.ReadLine().TrimEnd(); while (!file.EndOfStream) { Debug.WriteLine("Current line, expecting new function or compiler directive: Level {1} => {0}", line.Trim(), GetLevel(line)); if (string.IsNullOrWhiteSpace(line) || string.IsNullOrEmpty(line)) { Debug.WriteLine("Ignoring because empty."); line = file.ReadLine().TrimEnd(); continue; } if (line.StartsWith(".")) { // compiler command var lspl = line.Split(' '); var argline = string.Join(" ", lspl.Skip(1)); var argarray = lspl.Skip(1); Debug.WriteLine("Compiler command being processed: {0} (with {1} arguments)", lspl[0].ToLower().Substring(1), argarray.Count()); line = file.ReadLine().TrimEnd(); // for next processing, we should ignore that from now on. switch (lspl[0].ToLower().Substring(1)) { case "using": if ([email protected](argline, StringComparer.OrdinalIgnoreCase)) { Debug.WriteLine("Importing {0}", argline); @using.Add(argline); } else Console.Error.WriteLine("Warning: Tried adding \"using {0}\", but namespace has already been imported.", argline, null); break; case "namespace": Debug.WriteLine("Changing to namespace {0}", argline, null); @namespace = argline; break; case "class": Debug.WriteLine("Changing to class {0}", argline, null); @class = argline; break; } continue; } var cFunction = new Function(); cFunction.Name = line.Trim(); Debug.WriteLine("Generating new function: {0}", cFunction.Name, null); levelstack.Push(GetLevel(line)); // root level push line = file.ReadLine().TrimEnd(); while (line != null && !(line.TrimEnd() == "") && GetLevel(line) > levelstack.Peek()) { Debug.WriteLine("Current line, expecting new descriptive keyword: Level {1} => {0}", line.Trim(), GetLevel(line)); switch (line.Trim().ToLower()) { default: { Console.Error.WriteLine("Warning: Found unknown descriptive keyword \"{0}\", ignoring", line.Trim().ToLower(), null); line = file.ReadLine().TrimEnd(); } break; case "description": { Debug.WriteLine("Found description for {0}", cFunction.Name, null); if (!string.IsNullOrEmpty(cFunction.Description)) { throw new Exception(string.Format("Function \"{0}\" already contains a description. Can't define twice.", cFunction.Name)); } StringBuilder descriptionBuilder = new StringBuilder(); levelstack.Push(GetLevel(line)); // command level push while (GetLevel(line = file.ReadLine()) > levelstack.Peek()) { Debug.WriteLine("Adding 1 line to description"); descriptionBuilder.AppendLine(line.Trim()); } levelstack.Pop(); // command level pop cFunction.Description = descriptionBuilder.ToString().Trim(); Debug.WriteLine("Description: {0}", cFunction.Description, null); } break; case "arguments": { Debug.WriteLine("Found arguments for {0}", cFunction.Name, null); levelstack.Push(GetLevel(line)); // command level push line = file.ReadLine().TrimEnd(); while (GetLevel(line) > levelstack.Peek()) { var spl = line.Trim().Split(' '); var type = new DataType() { TypeName = spl[0] }; var name = string.Empty; if (spl.Length > 1) name = spl.Last(); else { name = "arg" + cFunction.Arguments.Count; } Debug.WriteLine("Adding argument {0} of type {1}", name, type.TypeName); StringBuilder descriptionBuilder = new StringBuilder(); levelstack.Push(GetLevel(line)); // argument level push while (GetLevel(line = file.ReadLine()) > levelstack.Peek()) { Debug.WriteLine("Adding 1 line to description"); descriptionBuilder.AppendLine(line.Trim()); } levelstack.Pop(); // argument level pop type.Description = descriptionBuilder.ToString().Trim(); cFunction.Arguments.Add(name, type); } levelstack.Pop(); // command level pop } break; case "return": case "returns": { var type = new DataType() { TypeName = (line = file.ReadLine()).Trim() }; Debug.WriteLine("Found return type {0}", type.TypeName, null); StringBuilder descriptionBuilder = new StringBuilder(); levelstack.Push(GetLevel(line)); // command level push while (GetLevel(line = file.ReadLine()) > levelstack.Peek()) descriptionBuilder.AppendLine(line.Trim()); levelstack.Pop(); // command level pop type.Description = descriptionBuilder.ToString().Trim(); cFunction.ReturnType = type; } break; } } levelstack.Pop(); // root level pop functions.Add(cFunction); } // using directives var stream = Console.OpenStandardOutput(); var streamwriter = new System.CodeDom.Compiler.IndentedTextWriter(new StreamWriter(stream)); foreach (string importedNamespace in @using) streamwriter.WriteLine("using {0};", importedNamespace); // Start namespace streamwriter.WriteLine("namespace {0}", @namespace); streamwriter.WriteLine("{"); streamwriter.Indent++; // Start class streamwriter.WriteLine("public static class {0}", @class); streamwriter.WriteLine("{"); streamwriter.Indent++; // Functions foreach (var function in functions) { // Fix return type if (function.ReturnType == null) function.ReturnType = new DataType() { TypeName = "void" }; if (function.ReturnType.TypeName.Equals("boolean", StringComparison.OrdinalIgnoreCase)) function.ReturnType.TypeName = "bool"; // Fix argument types foreach (var aName in function.Arguments.Keys) { var aVal = function.Arguments[aName]; if (aVal.TypeName.Equals("boolean", StringComparison.OrdinalIgnoreCase)) aVal.TypeName = "bool"; } // Request generation function foreach (string l in function.GetMetadataXml().Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries)) streamwriter.WriteLine("/// {0}", l.Trim(), null); streamwriter.Flush(); streamwriter.WriteLine("public static StandardAPIRequest {0}({1})", function.NormalizedName, function.GetParameterSignature()); streamwriter.Write("{ "); streamwriter.Write("return new StandardAPIRequest(\"{0}\"{1});", function.Name, function.Arguments.Count > 0 ? ", " + function.GetParameterPass() : ""); streamwriter.WriteLine(" }"); streamwriter.WriteLine(); streamwriter.Flush(); // Actual standard API request function foreach (string l in function.GetMetadataXml().Split(new[] { '\n' }, StringSplitOptions.RemoveEmptyEntries)) streamwriter.WriteLine("/// {0}", l.Trim(), null); streamwriter.Flush(); streamwriter.WriteLine("public static {2} {0}(this Client client{1})", function.NormalizedName, function.Arguments.Count > 0 ? ", " + function.GetParameterSignature() : "", function.ReturnType == null ? "void" : function.ReturnType.TypeName); streamwriter.Write("{ "); if(function.ReturnType != null && function.ReturnType.TypeName != "void") streamwriter.Write("return client.Request<{2}>({0}({1}));", function.NormalizedName, function.GetParameterPass(), function.ReturnType.TypeName); else streamwriter.Write("client.Request({0}({1}));", function.NormalizedName, function.GetParameterPass()); streamwriter.WriteLine(" }"); streamwriter.WriteLine(); streamwriter.Flush(); } // End class streamwriter.Indent--; streamwriter.WriteLine("}"); // End namespace streamwriter.Indent--; streamwriter.WriteLine("}"); // Finalize streamwriter.Flush(); streamwriter.Close(); streamwriter.Dispose(); }
public void GenerateCode(CodeDomGenerator.Language language) { switch (language) { case CodeDomGenerator.Language.CSharp: using (Microsoft.CSharp.CSharpCodeProvider provider = new Microsoft.CSharp.CSharpCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { if (_params.Count != 1 || _params[0].Type != null) tw.Write("("); for (int i = 0; i < _params.Count; i++) { if (i > 0) tw.Write(", "); if (_params[i].Type != null) { provider.GenerateCodeFromExpression(new CodeTypeReferenceExpression(_params[i].Type), tw, opts); tw.Write(" "); } tw.Write(_params[i].Name); } if (_params.Count != 1 || _params[0].Type != null) tw.Write(")"); tw.Write(" => "); provider.GenerateCodeFromExpression(Expression, tw, opts); Value = tw.InnerWriter.ToString(); } } break; case CodeDomGenerator.Language.VB: using (Microsoft.VisualBasic.VBCodeProvider provider = new Microsoft.VisualBasic.VBCodeProvider()) { System.CodeDom.Compiler.CodeGeneratorOptions opts = new System.CodeDom.Compiler.CodeGeneratorOptions(); using (System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(new StringWriter(), opts.IndentString)) { tw.Write("Function("); for (int i = 0; i < _params.Count; i++) { if (i > 0) tw.Write(", "); tw.Write(_params[i].Name); if (_params[i].Type != null) { tw.Write(" As "); provider.GenerateCodeFromExpression(new CodeTypeReferenceExpression(_params[i].Type), tw, opts); } } tw.Write(") "); provider.GenerateCodeFromExpression(Expression, tw, opts); Value = tw.InnerWriter.ToString(); } } break; default: throw new NotImplementedException(language.ToString()); } }
public void XmlDocumentLoading() { string xml = "<customer id='1' pp:id='aba' xmlns='urn-kzu' xmlns:pp='urn-pepenamespace'><pp:order /><order id='1'>Chocolates</order></customer>"; XPathNavigator nav = new XPathDocument(new StringReader(xml)).CreateNavigator(); XmlReader reader = new XPathNavigatorReader(nav); //XmlReader reader = new XmlTextReader(new StringReader(xml)); //reader.MoveToContent(); //Console.WriteLine(reader.ReadOuterXml()); System.CodeDom.Compiler.IndentedTextWriter tw = new System.CodeDom.Compiler.IndentedTextWriter(Console.Out); while (reader.Read()) { tw.Indent = reader.Depth; tw.WriteLine("Name={0}, Type={1}", reader.Name, reader.NodeType); int count = reader.AttributeCount; //reader.MoveToFirstAttribute(); //for (int i = 0; i < count; i++) while (reader.MoveToNextAttribute()) { tw.Indent = reader.Depth; tw.Write("{0}=", reader.Name); reader.ReadAttributeValue(); tw.WriteLine(reader.Value); //reader.MoveToNextAttribute(); } } //reader = new DebuggingXmlTextReader(new XPathNavigatorReader(nav)); reader = new XPathNavigatorReader(nav); XmlDocument doc = new XmlDocument(nav.NameTable); doc.Load( reader ); Assert.AreEqual("customer", doc.DocumentElement.LocalName); Assert.AreEqual("urn-kzu", doc.DocumentElement.NamespaceURI); Assert.AreEqual(4, doc.DocumentElement.Attributes.Count); Assert.AreEqual(2, doc.DocumentElement.ChildNodes.Count); }