Esempio n. 1
0
        protected SdmapLexer BuildLexer(string sourceCode)
        {
            var inputStream = new AntlrInputStream(sourceCode);
            var lexer       = new SdmapLexer(inputStream);

            return(lexer);
        }
Esempio n. 2
0
 public void ErrorCurlyInMacro()
 {
     var code   = "sql v1{#test<sql{}}>}";
     var ats    = new AntlrInputStream(code);
     var lexer  = new SdmapLexer(ats);
     var tokens = lexer.GetAllTokens();
 }
Esempio n. 3
0
 public void ErrorCurlyBraceWillStillWork()
 {
     var code   = "sql v1{}} sql v2{}";
     var ats    = new AntlrInputStream(code);
     var lexer  = new SdmapLexer(ats);
     var tokens = lexer.GetAllTokens();
 }
Esempio n. 4
0
 public void DoubleCurlyBraceWontThrow()
 {
     var code   = "sql v1{}}";
     var ats    = new AntlrInputStream(code);
     var lexer  = new SdmapLexer(ats);
     var tokens = lexer.GetAllTokens();
 }
Esempio n. 5
0
        protected SdmapParser GetParser(string sourceCode)
        {
            var inputStream = new AntlrInputStream(sourceCode);
            var lexer       = new SdmapLexer(inputStream);
            var tokenStream = new CommonTokenStream(lexer);

            return(new SdmapParser(tokenStream));
        }
Esempio n. 6
0
        public Result AddSourceCode(string sourceCode)
        {
            var inputStream = new AntlrInputStream(sourceCode);
            var lexer       = new SdmapLexer(inputStream);
            var tokenStream = new CommonTokenStream(lexer);
            var parser      = new SdmapParser(tokenStream);

            var visitor = SqlItemVisitor.Create(_context);

            return(visitor.Visit(parser.root()));
        }
Esempio n. 7
0
        public void SingleHashIsMacro()
        {
            var code   = "sql v1{#}";
            var ats    = new AntlrInputStream(code);
            var lexer  = new SdmapLexer(ats);
            var tokens = lexer.GetAllTokens();

            Assert.Equal(
                new[] { KSql, SYNTAX, OpenCurlyBrace, Hash, CloseCurlyBrace },
                tokens.Select(x => x.Type));
        }
Esempio n. 8
0
        public void DoubleHashIsHash()
        {
            var code   = "sql v1{\\#}";
            var ats    = new AntlrInputStream(code);
            var lexer  = new SdmapLexer(ats);
            var tokens = lexer.GetAllTokens();

            Assert.Equal(
                new[] { KSql, SYNTAX, OpenCurlyBrace, SQLText, CloseSql },
                tokens.Select(x => x.Type));
        }
Esempio n. 9
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()));
        }
Esempio n. 10
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));
                }
        }