Ejemplo n.º 1
0
 internal CSharpCodeVisitor(
     TextWriter writer,
     CodeEmiterConfig config,
     CSharpDefine define)
 {
     _writer = new IndentWriter(writer, 0);
     _config = config;
     _define = define;
 }
Ejemplo n.º 2
0
        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()));
        }
Ejemplo n.º 3
0
        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));
                }
        }
Ejemplo n.º 4
0
        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));
                }
        }
Ejemplo n.º 5
0
 public Result Emit(
     string source, TextWriter writer, CodeEmiterConfig config, CodeEmiterProvider codeEmiterProvider)
 {
     return(codeEmiterProvider.Emit(source, writer, config));
 }