internal CSharpCodeVisitor( TextWriter writer, CodeEmiterConfig config, CSharpDefine define) { _writer = new IndentWriter(writer, 0); _config = config; _define = define; }
public Result Emit(string source, TextWriter writer, CodeEmiterConfig config) { var ais = new AntlrInputStream(source); var lexer = new SdmapLexer(ais); var cts = new CommonTokenStream(lexer); var parser = new SdmapParser(cts); var visitor = new CSharpCodeVisitor(writer, config, new CSharpDefine()); return(visitor.StartVisit(parser.root())); }
protected Result <string> GetEmitText(string source, CodeEmiterConfig config = null) { var emiter = new CSharpCodeEmiter(); config = config ?? new CodeEmiterConfig { }; using (var ms = new MemoryStream()) using (var writer = new StreamWriter(ms)) { return(emiter.Emit(source, writer, config) .OnSuccess(() => ms.ToArray()) .OnSuccess(Encoding.UTF8.GetString)); } }
protected Result <string> GetEmiterText(string source, Func <SdmapParser, IParseTree> partAccessor, CodeEmiterConfig config = null) { var ais = new AntlrInputStream(source); var lexer = new SdmapLexer(ais); var cts = new CommonTokenStream(lexer); var parser = new SdmapParser(cts); using (var ms = new MemoryStream()) using (var writer = new StreamWriter(ms)) { config = config ?? new CodeEmiterConfig(); var visitor = new CSharpCodeVisitor(writer, config, new CSharpDefine()); return(visitor.Visit(partAccessor(parser)) .OnSuccess(() => writer.Flush()) .OnSuccess(() => ms.ToArray()) .OnSuccess(Encoding.UTF8.GetString)); } }
public Result Emit( string source, TextWriter writer, CodeEmiterConfig config, CodeEmiterProvider codeEmiterProvider) { return(codeEmiterProvider.Emit(source, writer, config)); }