protected SdmapLexer BuildLexer(string sourceCode) { var inputStream = new AntlrInputStream(sourceCode); var lexer = new SdmapLexer(inputStream); return(lexer); }
public void ErrorCurlyInMacro() { var code = "sql v1{#test<sql{}}>}"; var ats = new AntlrInputStream(code); var lexer = new SdmapLexer(ats); var tokens = lexer.GetAllTokens(); }
public void ErrorCurlyBraceWillStillWork() { var code = "sql v1{}} sql v2{}"; var ats = new AntlrInputStream(code); var lexer = new SdmapLexer(ats); var tokens = lexer.GetAllTokens(); }
public void DoubleCurlyBraceWontThrow() { var code = "sql v1{}}"; var ats = new AntlrInputStream(code); var lexer = new SdmapLexer(ats); var tokens = lexer.GetAllTokens(); }
protected SdmapParser GetParser(string sourceCode) { var inputStream = new AntlrInputStream(sourceCode); var lexer = new SdmapLexer(inputStream); var tokenStream = new CommonTokenStream(lexer); return(new SdmapParser(tokenStream)); }
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())); }
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)); }
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)); }
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> 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)); } }