public OneCallContext(SdmapCompilerContext compilerContext, object obj) { Compiler = compilerContext; Obj = obj; Defs = new List <SegmentDef>(); Deps = new HashSet <string>(); }
private static Result <EmitFunction> CompileCore( SdmapCompilerContext context, CoreSqlContext coreSql) { var fullName = NameUtil.GetFunctionName(coreSql); return(CoreSqlVisitor.CompileCore( coreSql, context, fullName)); }
public OneCallContext(SdmapCompilerContext compilerContext, object obj, List <SegmentDef> defs, HashSet <string> deps, List <object> fragments) { Compiler = compilerContext; Obj = obj; Defs = defs; Deps = deps; Fragments = fragments; }
public static Result <EmitFunction> CompileNamed( SdmapCompilerContext context, NamedSqlContext parseTree) { var id = parseTree.GetToken(SYNTAX, 0).GetText(); var fullName = context.GetFullNameInCurrentNs(id); var core = new CoreSqlVisitor(context); return(core.Process(parseTree.coreSql(), fullName) .OnSuccess(() => core.Function)); }
public Result EnsureCompiled(SdmapCompilerContext context) { if (Emiter != null) { return(Result.Ok()); } return(CompileInternal(context) .OnSuccess(v => { Emiter = v; _parseTree = null; })); }
private Result <EmitFunction> CompileInternal(SdmapCompilerContext context) { if (_ns != "") { context.NsStack.Push(_ns); } var result = _compiler(context); if (_ns != "") { context.NsStack.Pop(); } return(result); }
internal static OneCallContext CreateByObj(object obj) { return(new OneCallContext(SdmapCompilerContext.CreateEmpty(), obj)); }
public static OneCallContext CreateEmpty() { return(new OneCallContext(SdmapCompilerContext.CreateEmpty(), null)); }
public static EmitFunction EmiterFromId(SdmapCompilerContext context, string id, string ns) { return(context.GetEmiter(id, ns) .Emiter); }
private static Result <EmitFunction> CompileUnnamed( SdmapCompilerContext context, UnnamedSqlContext unnamedSql) { return(CompileCore(context, unnamedSql.coreSql())); }
public string Emit(object v, SdmapCompilerContext context) { return(TryEmit(v, context).Value); }
public Result <string> TryEmit(object v, SdmapCompilerContext context) { return(EnsureCompiled(context) .OnSuccess(() => Emiter(context, v)) .Unwrap()); }
internal SdmapCompiler(SdmapCompilerContext context) { _context = context; }
public SdmapCompiler() { _context = SdmapCompilerContext.CreateEmpty(); }