bool available; // true when more specials are available public SpecialNodesInserter(IEnumerable<ISpecial> specials, SpecialOutputVisitor visitor) { if (specials == null) throw new ArgumentNullException("specials"); if (visitor == null) throw new ArgumentNullException("visitor"); enumerator = specials.GetEnumerator(); this.visitor = visitor; available = enumerator.MoveNext(); }
bool available; // true when more specials are available public SpecialNodesInserter(IEnumerable <ISpecial> specials, SpecialOutputVisitor visitor) { if (specials == null) { throw new ArgumentNullException("specials"); } if (visitor == null) { throw new ArgumentNullException("visitor"); } enumerator = specials.GetEnumerator(); this.visitor = visitor; available = enumerator.MoveNext(); }
public string Convert(string source, SupportedLanguage language) { CompilationUnit compilationUnit = this.GenerateCompilationUnit(source, language); SpecialOutputVisitor specialOutputVisitor = new SpecialOutputVisitor(this); this.specialNodesInserter = new SpecialNodesInserter(compilationUnit.UserData as List<ISpecial>, specialOutputVisitor); this.entryPointMethods = new List<MethodDeclaration>(); this.codeBuilder = new PythonCodeBuilder() { IndentString = this.indentString }; compilationUnit.AcceptVisitor(this, null); return this.codeBuilder.ToString().Trim(); }
/// <summary> /// Converts the source code to Python. /// </summary> public string Convert(string source, SupportedLanguage language) { // Convert to NRefactory code DOM. CompilationUnit unit = GenerateCompilationUnit(source, language); SpecialOutputVisitor specialOutputVisitor = new SpecialOutputVisitor(this); specialNodesInserter = new SpecialNodesInserter(unit.UserData as List<ISpecial>, specialOutputVisitor); // Convert to Python code. entryPointMethods = new List<MethodDeclaration>(); codeBuilder = new PythonCodeBuilder(); codeBuilder.IndentString = indentString; unit.AcceptVisitor(this, null); return codeBuilder.ToString().Trim(); }